Skip to content

An example application to help you get started with Deepgram text-to-speech using WebSockets

License

Notifications You must be signed in to change notification settings

deepgram-starters/flask-chatgpt-live-text-to-speech

Repository files navigation

Text-to-Speech WebSocket Starter for Flask

This example app demonstrates how to use the Deepgram Text-to-Speech API over WebSockets with Flask/Python + OpenAI.

The flow of this sample is:

  1. A websocket is opened from the UI to the backend Flask component
  2. Text is sent over a websocket to the backend component
  3. 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
  4. Take the input provided and pass the text along to OpenAI. Stream the LLM's resposne back to the backend component.
  5. An audio byte response with synthesized text-to-speech is returned and forward back through the WebSocket created by the UI
  6. Those audio bytes are then played by the media device contained within your browser

A preview of the app

What is Deepgram?

Deepgram is a voice AI company providing speech-to-text and language understanding capabilities to make data readable and actionable by human or machines.

Sign-up to Deepgram

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.

Quickstart

Manual

Follow these steps to get started with this starter application.

Clone the repository

Go to GitHub and clone the repository.

Install dependencies

Install the project dependencies.

pip install -r requirements.txt

Set your Deepgram API key

If using bash, this can be done in your ~/.bash_profile like so:

export DEEPGRAM_API_KEY="YOUR_DEEPGRAM_API_KEY"

Set your OpenAI API key

If using bash, this can be done in your ~/.bash_profile like so:

export OPENAI_API_KEY="YOUR_OPENAI_API_KEY"

Run the Flask Application

If you have set your DEEPGRAM_API_KEY environment variable, start the Backend go application using this command:

python app.py

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" OPENAI_API_KEY="YOUR_OPENAI_API_KEY" python app.py

This will start both the Frontend UI and Backend Component. You should see output like this:

 * Serving Flask app 'app'
 * Debug mode: on
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
 * Running on http://127.0.0.1:5000
Press CTRL+C to quit

Copy and paste the URL with port (ie http://127.0.0.1:5000) into your web browser to start converting text into audio!

Issue Reporting

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.

Getting Help

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:

Author

Deepgram

License

This project is licensed under the MIT license. See the LICENSE file for more info.

About

An example application to help you get started with Deepgram text-to-speech using WebSockets

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Languages