Skip to content
Speech transcription on the browser using WebRTC and Google Speech
Go JavaScript HTML Other
Branch: master
Clone or download

WebRTC speech to text server


The speech to text server only depends on Go 1.12.


This project is only a proof of concept and SHOULDN'T be deployed on a production environment as it lacks even the most basic security measures.

Build the project

The project includes a Makefile, to build execute:


This should generate a transcribe-server binary.

Running the server

The server receives the following flags through the command line:

--google.cred (Required)

Path to a Google Cloud credential's file. The project must have Google Speech activated.

--http.port (Optional)

Specifies the port where the HTTP server should listen, by default the port 9000 is used.

--stun.server (Optional)

Allows to speficy a different STUN server, by default a Google STUN server is used.

Demo page

The demo works on Chrome 75, Firefox 67 and Safari 12.1.1

Demo screenshot

To run the demo execute the server and navigate to http://localhost:9000.

After pressing the Start button a dialog asking for permission to access the microphone should appear. After grating access a WebRTC connection is made to the local server, where audio data is decoded and streamed to Google Speech (streaming recognition).

Say something and press the Stop button, the results (if any) should appear on screen.


Architecture and data flow

Coming soon

  • Unit tests.
  • Be able to specify the desired language.
  • Support for interim results.


MIT - see LICENSE for the full text.

You can’t perform that action at this time.