This example app demonstrates how to use the Deepgram Text-to-Speech API over WebSockets with Go.
The flow of this sample is:
- A websocket is opened from the UI to the backend Go component
- Text is sent over a websocket to the backend component
- If a connection has not been established to Deepgram, create a websocket connection using the Python SDK and send the text to convert to audio
- An audio byte response with synthesized text-to-speech is returned and forward back through the WebSocket created by the UI
- Those audio bytes are then played by the media device contained within your browser
Deepgram is a voice AI company providing speech-to-text and language understanding capabilities to make data readable and actionable by human or machines.
Before you start, it's essential to generate a Deepgram API key to use in this project. Sign-up now for Deepgram and create an API key.
Follow these steps to get started with this starter application.
Go to GitHub and clone the repository.
Install the project dependencies.
go mod tidy
If using bash, this can be done in your ~/.bash_profile
like so:
export DEEPGRAM_API_KEY="YOUR_DEEPGRAM_API_KEY"
If you have set your DEEPGRAM_API_KEY
environment variable, start the Backend go application using this command:
go run main.go
If you haven't, this could also be done by a simple export before executing your Go application:
DEEPGRAM_API_KEY="YOUR_DEEPGRAM_API_KEY" go run main.go
To open the Frontend UI, just navigate to http://localhost:3000
in Chrome.
If you have found a bug or if you have a feature request, please report them at this repository issues section. Please do not report security vulnerabilities on the public GitHub issue tracker. The Security Policy details the procedure for contacting Deepgram.
We love to hear from you so if you have questions, comments or find a bug in the project, let us know! You can either:
- Open an issue in this repository
- Join the Deepgram Github Discussions Community
- Join the Deepgram Discord Community
This project is licensed under the MIT license. See the LICENSE file for more info.