Using the power of ffmpeg/flac/Google and ruby here is a simple interface to play with to convert speech to text.
Using a new undocumentd speech API from Google with the help of this article: mikepultz.com/2011/03/accessing-google-speech-api-chrome-11/
We’re able to provide a very simple API in Ruby to decode simple audio to text.
The API from Google is not yet public and so may change. It also seems to be very fragile as more times than not it will return a 500, so the library has retry code built in - for larger audio files 10+ failures may return before a successful result is retrieved…
It also appears that the API only likes smaller audio files so there is a built in chunker that allows us to split the audio up into smaller chunks.
Add this line to your application’s Gemfile:
gem 'speech2text'
And then execute:
$ bundle
Or install it yourself as:
$ gem install speech2text
You must also install the ffmpeg utility on your local machine. If you are using OS X, the easiest way to do this is to install brew. You may need to instal XQuartz before installing ffmpeg:
$ ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)" # You may be prompted to install XQuartz. Get it at https://xquartz.macosforge.org $ brew install ffmpeg
require 'speech' audio = Speech::AudioToText.new("i-like-pickles.wav") puts audio.to_text.inspect => {"captured_json"=>[["I like pickles", 0.92731786]], "confidence"=>0.92731786}
speech2text i-like-pickles.wav cat i-like-pickles.json {"captured_json"=>[["I like pickles", 0.92731786]], "confidence"=>0.92731786}