> Discover all available pages from the documentation index: https://mastra.zisheng.pro/zh-HK/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 金鑰。如未提供,則使用 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 金鑰。如未提供,則使用 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 金鑰 - `tts-1-hd` 模型提供質素更高的音訊,但處理時間可能較長 - 語音辨識支援多種音訊格式,包括 mp3、wav 和 webm