Azure
Mastra 中的 AzureVoice 类使用 Microsoft Azure Cognitive Services 提供文本转语音和语音转文本能力。
用法示例用法示例的直接链接
这需要 Azure Speech Services 凭据,可通过环境变量提供,也可直接在配置中提供:
import { AzureVoice } from '@mastra/voice-azure'
// Initialize with configuration
const voice = new AzureVoice({
speechModel: {
apiKey: 'your-azure-speech-api-key', // Or use AZURE_API_KEY env var
region: 'eastus', // Or use AZURE_REGION env var
voiceName: 'en-US-AriaNeural', // Optional: specific voice for TTS
},
listeningModel: {
apiKey: 'your-azure-speech-api-key', // Or use AZURE_API_KEY env var
region: 'eastus', // Or use AZURE_REGION env var
language: 'en-US', // Optional: recognition language for STT
},
speaker: 'en-US-JennyNeural', // Optional: default voice
})
// Convert text to speech
const audioStream = await voice.speak('Hello, how can I help you?', {
speaker: 'en-US-GuyNeural', // Optional: override default voice
})
// Convert speech to text
const text = await voice.listen(audioStream)
配置配置的直接链接
构造函数选项构造函数选项的直接链接
speechModel?:
AzureSpeechConfig
文本转语音合成配置。
AzureSpeechConfig
apiKey?:
string
Azure Speech Services API key(不是 Azure OpenAI key)。未提供时回退到 AZURE_API_KEY 环境变量。
region?:
string
Azure 区域(例如 'eastus'、'westeurope')。未提供时回退到 AZURE_REGION 环境变量。
voiceName?:
string
语音合成的语音 ID(例如 'en-US-AriaNeural'、'en-US-JennyNeural')。仅用于 speechModel。请参阅下方语音列表。
language?:
string
识别语言代码(例如 'en-US'、'fr-FR')。仅用于 listeningModel。
listeningModel?:
AzureSpeechConfig
语音转文本识别配置。
AzureSpeechConfig
apiKey?:
string
Azure Speech Services API key(不是 Azure OpenAI key)。未提供时回退到 AZURE_API_KEY 环境变量。
region?:
string
Azure 区域(例如 'eastus'、'westeurope')。未提供时回退到 AZURE_REGION 环境变量。
voiceName?:
string
语音合成的语音 ID(例如 'en-US-AriaNeural'、'en-US-JennyNeural')。仅用于 speechModel。请参阅下方语音列表。
language?:
string
识别语言代码(例如 'en-US'、'fr-FR')。仅用于 listeningModel。
speaker?:
string
用于语音合成的默认语音 ID。
方法方法的直接链接
speak()speak的直接链接
使用 Azure 的神经文本转语音服务将文本转换为语音。
input:
string | NodeJS.ReadableStream
要转换为语音的文本或文本 stream。
options?:
Options
配置选项。
Options
speaker?:
string
用于语音合成的语音 ID(例如 'en-US-JennyNeural')。会覆盖默认语音。
返回:Promise<NodeJS.ReadableStream> - WAV 格式的音频 stream
listen()listen的直接链接
使用 Azure 的语音转文本服务转录音频。
audioStream:
NodeJS.ReadableStream
要转录的音频 stream。必须采用 WAV 格式。
返回:Promise<string> - 从音频识别出的文本
语言和识别设置在初始化期间通过 listeningModel 配置,而不是作为选项传递给此方法。
getSpeakers()getspeakers的直接链接
返回可用语音选项数组(200 多种语音),其中每个节点包含:
voiceId:
string
语音的唯一标识符(例如 'en-US-JennyNeural'、'fr-FR-DeniseNeural')
language:
string
从语音 ID 中提取的语言代码(例如 'en'、'fr')
region:
string
从语音 ID 中提取的区域代码(例如 'US'、'GB'、'FR')
返回:Promise<Array<{ voiceId: string; language: string; region: string; }>>
重要说明重要说明的直接链接
Azure Speech Services 与 Azure OpenAIAzure Speech Services 与 Azure OpenAI的直接链接
**⚠️ 重要:**此包使用 Azure Speech Services,它与 Azure OpenAI Services 不同。
- 不要为此包使用
AZURE_OPENAI_API_KEY - 请使用 Azure Speech Services 订阅 key(可在 Azure Portal 的“Speech Services”下获取)
- 它们是不同的 Azure 资源,使用不同的 API key 和 endpoint
环境变量环境变量的直接链接
可通过构造函数选项或环境变量提供 API key 和区域:
AZURE_API_KEY- 你的 Azure Speech Services 订阅 keyAZURE_REGION- 你的 Azure 区域(例如 'eastus'、'westeurope')
语音能力语音能力的直接链接
- Azure 提供覆盖 50 多种语言的 200 多种神经语音
- 每个语音 ID 都遵循
{language}-{region}-{name}Neural格式(例如 'en-US-JennyNeural') - 部分语音支持多语言或提供 HD 高质量变体
- 音频输出采用 WAV 格式
- 用于识别的音频输入必须采用 WAV 格式
可用语音可用语音的直接链接
Azure 提供覆盖多种语言的 200 多种神经语音。部分常用英语语音包括:
-
美国英语:
en-US-AriaNeural(女性,默认)en-US-JennyNeural(女性)en-US-GuyNeural(男性)en-US-DavisNeural(男性)en-US-AvaNeural(女性)en-US-AndrewNeural(男性)
-
英国英语:
en-GB-SoniaNeural(女性)en-GB-RyanNeural(男性)en-GB-LibbyNeural(女性)
-
澳大利亚英语:
en-AU-NatashaNeural(女性)en-AU-WilliamNeural(男性)
要获取全部 200 多种语音的完整列表:
const voices = await voice.getSpeakers()
console.log(voices) // Array of { voiceId, language, region }
有关更多信息,请参阅 Azure Neural TTS 文档。