跳到主要内容

OpenAI

Mastra 中的 OpenAIVoice 类使用 OpenAI 模型提供文本转语音和语音转文本功能。

使用示例
使用示例的直接链接

import { OpenAIVoice } from '@mastra/voice-openai'

// Initialize with default configuration using environment variables
const voice = new OpenAIVoice()

// Or initialize with specific configuration
const voiceWithConfig = new OpenAIVoice({
speechModel: {
name: 'tts-1-hd',
apiKey: 'your-openai-api-key',
},
listeningModel: {
name: 'whisper-1',
apiKey: 'your-openai-api-key',
},
speaker: 'alloy', // Default voice
})

// Convert text to speech
const audioStream = await voice.speak('Hello, how can I help you?', {
speaker: 'nova', // Override default voice
speed: 1.2, // Adjust speech speed
})

// Convert speech to text
const text = await voice.listen(audioStream, {
filetype: 'mp3',
})

配置
配置的直接链接

构造函数选项
构造函数选项的直接链接

speechModel?:

OpenAIConfig
= { name: 'tts-1' }
文本转语音合成配置。
OpenAIConfig

name?:

'tts-1' | 'tts-1-hd' | 'whisper-1'
模型名称。使用 tts-1-hd 可获得更高质量的音频。

apiKey?:

string
OpenAI API key。未提供时使用 OPENAI_API_KEY 环境变量。

listeningModel?:

OpenAIConfig
= { name: 'whisper-1' }
语音转文本识别配置。
OpenAIConfig

name?:

'tts-1' | 'tts-1-hd' | 'whisper-1'
模型名称。使用 tts-1-hd 可获得更高质量的音频。

apiKey?:

string
OpenAI API key。未提供时使用 OPENAI_API_KEY 环境变量。

speaker?:

OpenAIVoiceId
= 'alloy'
用于语音合成的默认音色 ID。

方法
方法的直接链接

speak()
speak的直接链接

使用 OpenAI 的文本转语音模型将文本转换为语音。

input:

string | NodeJS.ReadableStream
要转换为语音的文本或文本流。

options?:

Options
配置选项。
Options

speaker?:

OpenAIVoiceId
用于语音合成的音色 ID。

speed?:

number
语速倍数。

返回: Promise<NodeJS.ReadableStream>

listen()
listen的直接链接

使用 OpenAI 的 Whisper 模型转写音频。

audioStream:

NodeJS.ReadableStream
要转写的音频流。

options?:

Options
配置选项。
Options

filetype?:

string
输入流的音频格式。

返回: Promise<string>

getSpeakers()
getspeakers的直接链接

返回可用音色选项数组,其中每个节点包含:

voiceId:

string
音色的唯一标识符

注意事项
注意事项的直接链接

  • 可以通过构造函数选项或 OPENAI_API_KEY 环境变量提供 API key
  • tts-1-hd 模型可提供更高质量的音频,但处理速度可能较慢
  • 语音识别支持多种音频格式,包括 mp3、wav 和 webm