Skip to main content

Creates audio supercuts

Project description

Audiogrep
=========

Audiogrep transcribes audio files and then creates "audio supercuts" based on search phrases. It uses [CMU Pocketsphinx](http://cmusphinx.sourceforge.net/) for speech-to-text and [pydub](http://pydub.com/) to stitch things together.

Here's some [sample output](http://lav.io/2015/02/audiogrep-automatic-audio-supercuts/).

## Requirements
Install using pip
```
pip install audiogrep
```
Install [ffmpeg](http://ffmpeg.org/) with Ogg/Vorbis support. If you're on a mac with [homebrew](http://brew.sh/) you can install ffmpeg with:
```
brew install ffmpeg --with-libvpx --with-libvorbis
```
Finally, install [CMU Pocketsphinx](http://cmusphinx.sourceforge.net/). For mac
users I followed [these instructions](https://github.com/watsonbox/homebrew-cmu-sphinx) 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.

Source Distribution

audiogrep-0.1.5.tar.gz (7.6 kB view details)

Uploaded Source

Built Distribution

audiogrep-0.1.5-py3-none-any.whl (9.0 kB view details)

Uploaded Python 3

File details

Details for the file audiogrep-0.1.5.tar.gz.

File metadata

  • Download URL: audiogrep-0.1.5.tar.gz
  • Upload date:
  • Size: 7.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for audiogrep-0.1.5.tar.gz
Algorithm Hash digest
SHA256 2f1d4142a5f09ede52432c772631de11285b7f651ee8747311380092824a208a
MD5 cac13a7df5eb1f4808e48f9f13d5a548
BLAKE2b-256 e8aff6ec8b523e78fc00d2bc17a2a8f0129518588e77c17773cfac558731e281

See more details on using hashes here.

File details

Details for the file audiogrep-0.1.5-py3-none-any.whl.

File metadata

File hashes

Hashes for audiogrep-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 c4583cee07adf421ec38dbf4b60efb733e58694b2918e34e325e6a1abffbf077
MD5 d8d9636175d2e886d71c2b0515c0f7c3
BLAKE2b-256 f2a9d4a17342d8e6ecb4ddd72e9da5b7b437abbbfcfc0c25b18c0ebd77fb1aa9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page