跳至主要內容

Speechify

Mastra 的 Speechify 語音實作使用 Speechify API 提供文字轉語音功能。

使用範例
使用範例 的直接連結

import { SpeechifyVoice } from '@mastra/voice-speechify'

// Initialize with default configuration (uses SPEECHIFY_API_KEY environment variable)
const voice = new SpeechifyVoice()

// Initialize with custom configuration
const voice = new SpeechifyVoice({
speechModel: {
name: 'simba-3.2',
apiKey: 'your-api-key',
},
speaker: 'harper_32', // Default voice (simba-3.2 serves the curated Simba 3 voices only)
})

// Convert text to speech
const audioStream = await voice.speak('Hello, world!', {
speaker: 'imogen_32', // Override default voice
})

建構函式參數
建構函式參數 的直接連結

speechModel?:

SpeechifyConfig
= { name: 'simba-english' }
文字轉語音功能的設定
SpeechifyConfig

name?:

SpeechifyModel
要使用的 Speechify 模型('simba-3.2'、'simba-3.0'、'simba-english' 或 'simba-multilingual')

apiKey?:

string
Speechify API key。未提供時會改用 SPEECHIFY_API_KEY 環境變數

speaker?:

SpeechifyVoiceId
= Simba 3 模型為 'harper_32',其他模型則為 'george'
語音合成所使用的預設語音 ID。Simba 3 模型只提供精選語音組合(harper_32、imogen_32 等);傳統目錄中的語音(george、henry 等)可用於 simba-english 和 simba-multilingual

方法
方法 的直接連結

speak()
speak 的直接連結

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

input:

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

options?:

Options
設定選項。
Options

speaker?:

string
為此請求覆寫預設 speaker

model?:

SpeechifyModel
為此請求覆寫預設模型

傳回:Promise<NodeJS.ReadableStream>

getSpeakers()
getspeakers 的直接連結

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

voiceId:

string
語音的唯一識別碼

name:

string
語音的顯示名稱

language:

string
語音的語言代碼

gender:

string
語音的性別

listen()
listen 的直接連結

Speechify 不支援此方法,呼叫時會拋出錯誤。Speechify 不提供語音轉文字功能。

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

  • Speechify 需要 API key 以進行驗證
  • 預設模型是 'simba-english'
  • 'simba-3.2' 是 Speechify 最新的串流模型,延遲最低且表達力最豐富,也是英文的建議模型
  • 'simba-3.2' 和 'simba-3.0' 目前只支援英文;如輸入非英文或混合語言,請使用 'simba-multilingual'
  • 'simba-3.2' 和 'simba-3.0' 只提供精選語音組合:'beatrice_32'、'dominic_32'、'edmund_32'、'geffen_32'、'harper_32'、'hugh_32'、'imogen_32'、'wyatt_32'。在這些模型中使用 'george' 等傳統目錄語音會傳回錯誤
  • 預設 speaker 取決於已設定的模型:Simba 3 模型使用 'harper_32',其他模型則使用 'george'
  • 不支援語音轉文字功能
  • 可透過 speak() 方法的 options 參數傳入其他音訊串流選項