跳到主要内容

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 最新的 streaming 模型,延迟最低、表现力最丰富,也是推荐用于英语的模型
  • '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 参数传递其他音频流选项