Skip to main content

peruse

Explore a waveform with slang

To install: pip install peruse

Example

from numpy import *
from hum import disp_wf, plot_wf
import soundfile as sf
from peruse.single_wf_snip_analysis import TaggedWaveformAnalysisExtended
import os
import pickle

try:
    from slang.util_data import displayable_unichr
    unichr_code_of_snip = array(displayable_unichr
                                + list(unique(list(set(range(33, 20000)).difference(displayable_unichr)))))
    snip_of_unichr_code = (nan * empty(unichr_code_of_snip.max() + 1)).astype(int)
    snip_of_unichr_code[unichr_code_of_snip] = arange(len(unichr_code_of_snip))

    def snip_to_str(snip):
        return chr(unichr_code_of_snip[snip])
except ImportError as e:
    def snip_to_str(snip):
        return chr(33 + snip)

def string_of_snips(snips):
    return "".join(map(snip_to_str, snips))
filepath = "Enter audio filepath here"
wf, sr = sf.read(filepath)
disp_wf(wf, sr)

Unsupervised

Perhaps you just want to get a perspective on your sound, without specifying annotations.

Perhaps you don't know what to annotate and you want snips to help you find patterns to annotate.

Fit the snipper

from peruse.single_wf_snip_analysis import TaggedWaveformAnalysisExtended

tw = TaggedWaveformAnalysisExtended(sr=sr, 
                                    tile_size_frm=2048, 
                                    chk_size_frm=43008, 
                                    prior_count=1)
tw.fit(wf)

Get the snips of a waveform (here the same as fit with, but could be another)

snips = tw.snips_of_wf(wf)
len(snips), len(unique(snips))

View them as characters

print(string_of_snips(snips))
annkncckkobbjhihjacjcjeneijaeofgibiecikjjkdnhajekachbobchoadkjjjjknkkkjofglmijaiinieajdccnkjnollil
hjhkokejkeacdkcofgaldikljnekdijekkjieoboocinchjadannadnnjofgiiielaekheiccnkkeejlbbllichckkinojaeoa
aofgllllnadkdkcneian

Plot (inverse of) snip probabilities (says how rare they are (outliers) from the perspective of the wf that was used to fit, and gives SOME view of the sound)

tw.plot_tiles(1 / array(list(map(tw.prob_of_snip.get, snips))));
tw.plot_tiles(log(1 / array(list(map(tw.prob_of_snip.get, snips)))));

Metadata

Release files for peruse 0.0.13

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for peruse 0.0.13
File Size Uploaded
peruse-0.0.13.tar.gz 12.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for peruse 0.0.13
File Interpreter ABI Platform
peruse-0.0.13-py3-none-any.whl Python 3 none any Details

Total release size: 31.9 kB

Release files / peruse-0.0.13.tar.gz

Download URL peruse-0.0.13.tar.gz
Size 12.9 kB
Tags Source
SHA-256 checksum
How to use checksums
00765f7ecba32b70509778468007ea5536d0c9bd14baf0a560cf0d8ead8adcd0
BLAKE2b-256 checksum
How to use checksums
49fe24069655228ad758b5392412093739320f1c9114de3a014b2c6f0eeb2e93
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.8.6

Release files / peruse-0.0.13-py3-none-any.whl

Download URL peruse-0.0.13-py3-none-any.whl
Size 18.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c2074de154260a9a901bab3d17e5d3345a8c5d654bfa14b5a5d82fef0fde7f39
BLAKE2b-256 checksum
How to use checksums
2838f1b84a43b21e56104e7bcf47c8b51eea59affac22382a74a50daf4a1076a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.8.6

Release history Release notifications | RSS feed

This release

0.0.13 This release

2 release files

0.0.12

2 release files

0.0.11

2 release files

0.0.10

2 release files

0.0.9

2 release files

0.0.8

2 release files

0.0.7

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page