> Discover all available pages from the documentation index: https://mastra.zisheng.pro/zh-TW/llms.txt # PlayAI Mastra 的 PlayAI 語音實作透過 PlayAI API 提供文字轉語音功能。 ## 用法範例 ```typescript import { PlayAIVoice } from '@mastra/voice-playai' // Initialize with default configuration (uses PLAYAI_API_KEY environment variable and PLAYAI_USER_ID environment variable) const voice = new PlayAIVoice() // Initialize with default configuration const voice = new PlayAIVoice({ speechModel: { name: 'PlayDialog', apiKey: process.env.PLAYAI_API_KEY, userId: process.env.PLAYAI_USER_ID, }, speaker: 'Angelo', // Default voice }) // Convert text to speech with a specific voice const audioStream = await voice.speak('Hello, world!', { speaker: 's3://voice-cloning-zero-shot/b27bc13e-996f-4841-b584-4d35801aea98/original/manifest.json', // Dexter voice }) ``` ## 建構函式參數 **speechModel** (`PlayAIConfig`): 文字轉語音功能的設定 (Default: `{ name: 'PlayDialog' }`) **speechModel.name** (`'PlayDialog' | 'Play3.0-mini'`): 要使用的 PlayAI 模型 **speechModel.apiKey** (`string`): PlayAI API 金鑰。若未提供,則使用 PLAYAI\_API\_KEY 環境變數 **speechModel.userId** (`string`): PlayAI 使用者 ID。若未提供,則使用 PLAYAI\_USER\_ID 環境變數 **speaker** (`string`): 語音合成所使用的預設語音 ID (Default: `第一個可用的語音 ID`) ## 方法 ### `speak()` 使用設定的語音模型與語音,將文字轉換成語音。 **input** (`string | NodeJS.ReadableStream`): 要轉換成語音的文字。若提供串流,會先將其轉換成文字。 **options** (`Options`): 設定選項。 **options.speaker** (`string`): 覆寫這次請求的預設 speaker 回傳:`Promise`。 ### `getSpeakers()` 回傳可用語音選項的陣列,其中每個節點包含: **name** (`string`): 語音名稱 **accent** (`string`): 語音的口音(例如 'US'、'British'、'Australian') **gender** (`'M' | 'F'`): 語音的性別 **age** (`'Young' | 'Middle' | 'Old'`): 語音的年齡類別 **style** (`'Conversational' | 'Narrative'`): 語音的說話風格 **voiceId** (`string`): 語音的唯一識別碼 ### `listen()` PlayAI 不支援此方法,呼叫時會擲回錯誤。PlayAI 不提供語音轉文字功能。 ## 注意事項 - PlayAI 驗證需要 API 金鑰與使用者 ID - 此服務提供兩種模型:'PlayDialog' 與 'Play3.0-mini' - 每個語音都有唯一的 S3 manifest ID,發出 API 呼叫時必須使用此 ID