Skip to main content
Mastra 1.0 is available 🎉 Read announcement

Deepgram

The Deepgram voice implementation in Mastra provides text-to-speech (TTS) and speech-to-text (STT) capabilities using Deepgram's API. It supports multiple voice models and languages, with configurable options for both speech synthesis and transcription.

Usage Example
Direct link to Usage Example

import { DeepgramVoice } from '@mastra/voice-deepgram'

// Initialize with default configuration (uses DEEPGRAM_API_KEY environment variable)
const voice = new DeepgramVoice()

// Initialize with custom configuration
const voice = new DeepgramVoice({
speechModel: {
name: 'aura',
apiKey: 'your-api-key',
},
listeningModel: {
name: 'nova-2',
apiKey: 'your-api-key',
},
speaker: 'asteria-en',
})

// Text-to-Speech
const audioStream = await voice.speak('Hello, world!')

// Speech-to-Text
const transcript = await voice.listen(audioStream)

Constructor Parameters
Direct link to Constructor Parameters

speechModel?:

DeepgramVoiceConfig
= { name: 'aura' }
Configuration for text-to-speech functionality.

listeningModel?:

DeepgramVoiceConfig
= { name: 'nova' }
Configuration for speech-to-text functionality.

speaker?:

DeepgramVoiceId
= 'asteria-en'
Default voice to use for text-to-speech

DeepgramVoiceConfig
Direct link to DeepgramVoiceConfig

name?:

DeepgramModel
The Deepgram model to use

apiKey?:

string
Deepgram API key. Falls back to DEEPGRAM_API_KEY environment variable

properties?:

Record<string, any>
Additional properties to pass to the Deepgram API

language?:

string
Language code for the model

Methods
Direct link to Methods

speak()
Direct link to speak()

Converts text to speech using the configured speech model and voice.

input:

string | NodeJS.ReadableStream
Text to convert to speech. If a stream is provided, it will be converted to text first.

options?:

object
Additional options for speech synthesis

options.speaker?:

string
Override the default speaker for this request

Returns: Promise<NodeJS.ReadableStream>

listen()
Direct link to listen()

Converts speech to text using the configured listening model.

audioStream:

NodeJS.ReadableStream
Audio stream to transcribe

options?:

object
Additional options to pass to the Deepgram API

Returns: Promise<string>

getSpeakers()
Direct link to getSpeakers()

Returns a list of available voice options.

voiceId:

string
Unique identifier for the voice