11Labs流体语音综合
这个包给一个代理商一个使用 11Labs WebSocket API 的流式语音合成提供者 ws。它发送文本符并发送 MP3 音频块.
安装
npm install @framers/agentos-ext-streaming-tts-elevenlabs
同伴依赖 : @framers/agentos (单位:千美元)>=0.10.40) (中文(简体) ).
使用量
import { AgentOS } from '@framers/agentos';
const agentos = await AgentOS.create({
extensionManifest: {
packs: [
{
package: '@framers/agentos-ext-streaming-tts-elevenlabs',
options: { voiceId: '21m00Tcm4TlvDq8ikWAM' },
},
],
},
extensionSecrets: {
ELEVENLABS_API_KEY: process.env.ELEVENLABS_API_KEY!,
},
});
配置
语音设置 startSession({ providerOptions: ... }) 覆盖包选项 .
| 选项 | 秘密编号 | 环境变量 | 需求 | 默认 |
|---|---|---|---|---|
apiKey (提供者配置; 选项在运行时也接受) | ELEVENLABS_API_KEY | 无 | 是, 提供者接口 | 包厂空字符串 |
voiceId | 无 | 无 | 没有 | '21m00Tcm4TlvDq8ikWAM' |
modelId | 无 | 无 | 没有 | 'eleven_turbo_v2' |
stability | 无 | 无 | 没有 | 0.5 |
similarityBoost | 无 | 无 | 没有 | 0.75 |
style | 无 | 无 | 没有 | 0.0 |
useSpeakerBoost | 无 | 无 | 没有 | true |
页:1
包注册一个已启用 streaming-tts-provider 有提供者 id elevenlabs-streaming-tts。 。 。 . createElevenLabsStreamingTTS 也从 API 密钥和可选语音设置中创建一个独立的提供者.
startSession 打开一个 WebSocket。 开幕时,一个活会话发送API密钥和语音设置,然后排出队列中的消息. 每个符号发送一次; 标点后加 flush: true 不重发早期的符号 . flush 队列 EOS 并解析而不等待远程完成 .
JSON Base64并保留了二进制消息发出核心和遗留的MP3音频. 远程最后发射完成一次。 持续时间字段仍为估计数,对齐数据没有被消耗.
cancel 关闭套接字并发送 cancelled 页:1. close 关闭套接字并发送 close。套接字出错 error正如不是JSON对象的短信一样 error 字段或持有 audio 值不是以 8,388,608 为字符的基数64 字符串。 一般性会议 language 未转发字段。 没有执行重新连接或明确暂停.
工厂在密钥缺失时使用空密钥, 除非运行时选项扩展覆盖 apiKey它不验证证书或读取环境变量.
核心事件兼容性
会话解码 Base64 JSON 音频信封并保留二进制 MP3 兼容性. 每个被解码的块出 audio 遗产 audio_chunk 以电线顺序。 订阅一个音频名称。 文本片段发送一次,包括当平分请求合成时.
为了兼容性, flush() 在 EOS 排队后解决。 远程最后事件释放 flush_complete 遗产 utterance_complete 一次 一次吗 EOS 组合和套接字关闭没有完成合成. 取消删除已队列的文本并屏蔽随后的套接字打开事件 。 期限值仍为估计数。 这个只事件适配器没有等待输出槽,而这些别名也没有确定范围托管资格.
许可证
阿帕奇 - 2.0