跳至主要內容

PlayAI

Mastra 的 PlayAI 語音實作透過 PlayAI API 提供文字轉語音功能。

用法範例
「用法範例」的直接連結

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
= { name: 'PlayDialog' }
文字轉語音功能的設定
PlayAIConfig

name?:

'PlayDialog' | 'Play3.0-mini'
要使用的 PlayAI 模型

apiKey?:

string
PlayAI API 金鑰。若未提供,則使用 PLAYAI_API_KEY 環境變數

userId?:

string
PlayAI 使用者 ID。若未提供,則使用 PLAYAI_USER_ID 環境變數

speaker?:

string
= 第一個可用的語音 ID
語音合成所使用的預設語音 ID

方法
「方法」的直接連結

speak()
「speak」的直接連結

使用設定的語音模型與語音,將文字轉換成語音。

input:

string | NodeJS.ReadableStream
要轉換成語音的文字。若提供串流,會先將其轉換成文字。

options?:

Options
設定選項。
Options

speaker?:

string
覆寫這次請求的預設 speaker

回傳:Promise<NodeJS.ReadableStream>

getSpeakers()
「getspeakers」的直接連結

回傳可用語音選項的陣列,其中每個節點包含:

name:

string
語音名稱

accent:

string
語音的口音(例如 'US'、'British'、'Australian')

gender:

'M' | 'F'
語音的性別

age:

'Young' | 'Middle' | 'Old'
語音的年齡類別

style:

'Conversational' | 'Narrative'
語音的說話風格

voiceId:

string
語音的唯一識別碼

listen()
「listen」的直接連結

PlayAI 不支援此方法,呼叫時會擲回錯誤。PlayAI 不提供語音轉文字功能。

注意事項
「注意事項」的直接連結

  • PlayAI 驗證需要 API 金鑰與使用者 ID
  • 此服務提供兩種模型:'PlayDialog' 與 'Play3.0-mini'
  • 每個語音都有唯一的 S3 manifest ID,發出 API 呼叫時必須使用此 ID