A realtime audio/text translation prototype
apt-get install nodejs npm
cd nodejs
npm install
node app.js
- Google Web Speech API
- Free
- Only Chrome has support
- Demo
- Introduction
- Bing
- Free up to 2 million characters
- End User Site
- Using the API
- Google Translate
- $20 per 1 million characters
- Microsoft/Bing
- Free version
- eSpeak
- FOSS Local Server
- Output could be better
- AT&T
- HTML 5 API?
- Dragon Speech API
- Might have a free API trial
- Voice RSS
- Free version has a 100KB response max
- Google Web Speech
- Free version ?
What's up with the nodejs folder? Once we write the JavaScript that connects the speech-to-text, translations, and text-to-speech services together and runs on a single user's computer, we'll want to move that connecting JavaScript to a central server so we can have multiple user computers output the translation. Node.JS is a framework for running JavaScript on a server instead of in a browser, and will allow us to write a server application that coordinates the clients and connects the services.
- A few Hello World examples
- Node.JS API Docs(Pretty Cryptic)
Node.JS is already installed on our Ignite server. In case we need to install it again, or you want to install it on your own computer, here are instructions on how to install Node.JS on a variety of platforms.
Babble will use Socket.io to allow multiple users to connect to a single server and talk to each other across languages. This functionality, it turns out, is very similar to a simple chatroom client/server. Fortunately for us, Socket.io provides an example chatroom server/client, with source code, that guide our development.
Tuts+ has a great article on using Mocha and Chai for testing in Node.js, as well as general Test Driven Development in Node.js.
And here's an article on testing the client side of Socket.io.
Travis-CI provides contineous integration. Awesome.
cd nodejs
make test
In order to allow both developers and Travis-CI to access needed secret keys, the utils/getSecrets module was created that contains the getSecret(secret_name) function. This function will return the value of secret_name from either a secret.js file found in the utils folder, or from environmental variables if Babble is running on Travis-CI.
Example of using getSecrets:
var secerts = require('utils/getSecrets');
var our_little_secret = secerts.getSecret('our_little_secret');
See these instructions.