Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/antiboredom/audiogrep
Creates audio supercuts.
https://github.com/antiboredom/audiogrep
Last synced: 16 days ago
JSON representation
Creates audio supercuts.
- Host: GitHub
- URL: https://github.com/antiboredom/audiogrep
- Owner: antiboredom
- License: mit
- Archived: true
- Created: 2015-02-21T22:54:57.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2024-03-27T04:37:44.000Z (8 months ago)
- Last Synced: 2024-10-01T07:26:26.922Z (about 1 month ago)
- Language: Python
- Homepage: http://antiboredom.github.io/audiogrep
- Size: 38.1 KB
- Stars: 961
- Watchers: 33
- Forks: 63
- Open Issues: 18
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-github-repos - antiboredom/audiogrep - Creates audio supercuts. (Python)
README
Audiogrep
=========## alert! this package is no longer being updated! use [videogrep](https://github.com/antiboredom/videogrep) instead (which now supports audio).
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 --extractExporting 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### Troubleshooting
If you receive the error "ERROR: "cmd_ln.c", line 942: Unknown argument: -alignctl", uninstalling and reinstalling cmu-sphinxbase and cmu-pocketsphinx may solve the issue.