Murf
Mastra 中的 Murf 语音实现使用 Murf 的 AI 语音服务提供文本转语音(TTS)功能。它支持多种语言的多种音色。
使用示例使用示例的直接链接
import { MurfVoice } from '@mastra/voice-murf'
// Initialize with default configuration (uses MURF_API_KEY environment variable)
const voice = new MurfVoice()
// Initialize with custom configuration
const voice = new MurfVoice({
speechModel: {
name: 'GEN2',
apiKey: 'your-api-key',
properties: {
format: 'MP3',
rate: 1.0,
pitch: 1.0,
sampleRate: 48000,
channelType: 'STEREO',
},
},
speaker: 'en-US-cooper',
})
// Text-to-Speech with default settings
const audioStream = await voice.speak('Hello, world!')
// Text-to-Speech with custom properties
const audioStream = await voice.speak('Hello, world!', {
speaker: 'en-UK-hazel',
properties: {
format: 'WAV',
rate: 1.2,
style: 'casual',
},
})
// Get available voices
const voices = await voice.getSpeakers()
构造函数参数构造函数参数的直接链接
speechModel?:
MurfConfig
= { name: 'GEN2' }
文本转语音功能的配置
MurfConfig
name:
'GEN1' | 'GEN2'
要使用的 Murf 模型代次
apiKey?:
string
Murf API key。未提供时使用 MURF_API_KEY 环境变量
properties?:
object
所有语音合成请求的默认属性
object
style?:
string
音色的说话风格
rate?:
number
语速倍数
pitch?:
number
音高调整
sampleRate?:
8000 | 24000 | 44100 | 48000
音频采样率(Hz)
format?:
'MP3' | 'WAV' | 'FLAC' | 'ALAW' | 'ULAW'
输出音频格式
channelType?:
'STEREO' | 'MONO'
音频声道配置
pronunciationDictionary?:
Record<string, string>
自定义发音映射
encodeAsBase64?:
boolean
是否将音频编码为 Base64
variation?:
number
音色变化参数
audioDuration?:
number
目标音频时长(秒)
multiNativeLocale?:
string
多语言支持所使用的 locale
speaker?:
string
= 'en-UK-hazel'
用于文本转语音的默认音色 ID
方法方法的直接链接
speak()speak的直接链接
使用 Murf API 将文本转换为语音。
input:
string | NodeJS.ReadableStream
要转换为语音的文本。如果提供流,会先将其转换为文本。
options?:
object
语音合成选项
object
speaker?:
string
为本次请求覆盖默认 speaker
properties?:
object
为本次请求覆盖默认语音属性
返回: Promise<NodeJS.ReadableStream>
getSpeakers()getspeakers的直接链接
返回可用音色选项数组,其中每个节点包含:
voiceId:
string
音色的唯一标识符
name:
string
音色的显示名称
language:
string
音色的语言代码
gender:
string
音色的性别
listen()listen的直接链接
Murf 不支持此方法,调用时会抛出错误。Murf 不提供语音转文本功能。
重要说明重要说明的直接链接
- 必须提供 Murf API key。请通过
MURF_API_KEY环境变量设置,或在构造函数中传入。 - 该服务默认使用 GEN2 模型版本。
- 可以在构造函数层级设置语音属性,并在每次请求中覆盖。
- 该服务可通过格式、采样率和声道类型等属性对音频进行广泛自定义。
- 不支持语音转文本功能。