Skip to main content

Creates audio supercuts

Project description


Audiogrep transcribes audio files and then creates "audio supercuts" based on search phrases. It uses [CMU Pocketsphinx]( for speech-to-text and [pydub]( to stitch things together.

Here's some [sample output](

## Requirements
Install using pip
pip install audiogrep
Install [ffmpeg]( with Ogg/Vorbis support. If you're on a mac with [homebrew]( you can install ffmpeg with:
brew install ffmpeg --with-libvpx --with-libvorbis
Finally, install [CMU Pocketsphinx]( For mac
users I followed [these instructions]( to get it working:
brew tap watsonbox/cmu-sphinx
brew install --HEAD watsonbox/cmu-sphinx/cmu-sphinxbase
brew install --HEAD watsonbox/cmu-sphinx/cmu-sphinxtrain # optional
brew install --HEAD watsonbox/cmu-sphinx/cmu-pocketsphinx

## How to use it
First, transcribe the audio (you'll only need to do this once per audio track, but it can take some time)
# transcribes all mp3s in the selected folder
audiogrep --input path/to/*.mp3 --transcribe
Then, basic use:
# returns all phrases with the word 'word' in them
audiogrep --input path/to/*.mp3 --search 'word'
The previous example will extract phrase chunks containing the search term, but you can also just get individual words:
audiogrep --input path/to/*.mp3 --search 'word' --output-mode word
If you add the '--regex' flag you can use regular expressions. For example:
# creates a supercut of every instance of the words "spectre", "haunting" and "europe"
audiogrep --input path/to/*.mp3 --search 'spectre|haunting|europe' --output-mode word --regex
You can also construct 'frankenstein' sentences (mileage may vary):
# stupid joke
audiogrep --input path/to/*.mp3 --search 'my voice is my passport' --output-mode franken
Or you can just extract individual words into files.
# extracts each individual word into its own file in a directory called 'extracted_words'
audiogrep --input path/to/*.mp3 --extract

Exporting to: extracted_words/i.mp3
Exporting to: extracted_words/am.mp3
Exporting to: extracted_words/the.mp3
Exporting to: extracted_words/key.mp3
Exporting to: extracted_words/master.mp3

### Options

audiogrep can take a number of options:

#### --input / -i
mp3 file or pattern for input

#### --output / -o
Name of the file to generate. By default this is "supercut.mp3"

#### --search / -s
Search term

#### --output-mode / -m
Splice together phrases, single words, fragments with wildcards, or "frankenstein" sentences.
Options are:
* sentence: (this is the default)
* word
* fragment
* franken

#### --padding / -p
Time in milliseconds to add between audio segments. Default is 0.

#### --crossfade / -c
Time in milliseconds to crossfade audio segments. Default is 0.

#### --extract / -x

#### --demo / -d
Show the results of the search without outputing a file

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for audiogrep, version 0.1.5
Filename, size File type Python version Upload date Hashes
Filename, size audiogrep-0.1.5-py3-none-any.whl (9.0 kB) File type Wheel Python version 3.6 Upload date Hashes View
Filename, size audiogrep-0.1.5.tar.gz (7.6 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page