> Discover all available pages from the documentation index: https://mastra.zisheng.pro/llms.txt # OpenAI Mastra 中的 OpenAIVoice 类使用 OpenAI 模型提供文本转语音和语音转文本功能。 ## 使用示例 ```typescript 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`): 文本转语音合成配置。 (Default: `{ name: 'tts-1' }`) **speechModel.name** (`'tts-1' | 'tts-1-hd' | 'whisper-1'`): 模型名称。使用 tts-1-hd 可获得更高质量的音频。 **speechModel.apiKey** (`string`): OpenAI API key。未提供时使用 OPENAI\_API\_KEY 环境变量。 **listeningModel** (`OpenAIConfig`): 语音转文本识别配置。 (Default: `{ name: 'whisper-1' }`) **listeningModel.name** (`'tts-1' | 'tts-1-hd' | 'whisper-1'`): 模型名称。使用 tts-1-hd 可获得更高质量的音频。 **listeningModel.apiKey** (`string`): OpenAI API key。未提供时使用 OPENAI\_API\_KEY 环境变量。 **speaker** (`OpenAIVoiceId`): 用于语音合成的默认音色 ID。 (Default: `'alloy'`) ## 方法 ### `speak()` 使用 OpenAI 的文本转语音模型将文本转换为语音。 **input** (`string | NodeJS.ReadableStream`): 要转换为语音的文本或文本流。 **options** (`Options`): 配置选项。 **options.speaker** (`OpenAIVoiceId`): 用于语音合成的音色 ID。 **options.speed** (`number`): 语速倍数。 返回: `Promise` ### `listen()` 使用 OpenAI 的 Whisper 模型转写音频。 **audioStream** (`NodeJS.ReadableStream`): 要转写的音频流。 **options** (`Options`): 配置选项。 **options.filetype** (`string`): 输入流的音频格式。 返回: `Promise` ### `getSpeakers()` 返回可用音色选项数组,其中每个节点包含: **voiceId** (`string`): 音色的唯一标识符 ## 注意事项 - 可以通过构造函数选项或 `OPENAI_API_KEY` 环境变量提供 API key - `tts-1-hd` 模型可提供更高质量的音频,但处理速度可能较慢 - 语音识别支持多种音频格式,包括 mp3、wav 和 webm