8 Misterwang 7小时前 131次点击
众所周知,就在小半年以前,科技圈里发生了一件不大不小的事:小米悄咪咪地上线了它的第一个基于大语言模型(LLM)的 TTS 语音合成模型——mimotts。当时官方可是信誓旦旦地宣称,这个模型只免费开放一周体验,后续就要正式收费,全面进入 token plan 套餐模式。然而,现在看来,小米的工程师们似乎有点“出尔反尔”了。为什么我敢这么说呢?因为时至今日,他们不仅没有如期收费,反而还在继续免费开放,并且连语音克隆和语音设计这些高级功能也都是完全免费的!这就相当于,你一分钱没花,就白嫖到了一个可以自由表达细腻情绪、说话无限接近真人发音,并且支持海量方言、各种语气、语调、情绪,甚至还有各种特殊模式的顶级 TTS 语音合成模型。对于开发者和普通用户来说,这可真是赚大了,简直是天上掉馅饼的好事。
并且,除了功能强大,它还有一个极其显著的速度优势。与其他传统的 TTS 模型相比,mimotts 支持真正的流式调用。也就是说,它会以数据流的形式实时返回音频数据。当你的播放器接收到第一个数据块的时候,就可以立刻开始播放了,而不需要像传统模型那样,必须把原始的 PCM 音频数据完整捞完、拼接好以后再来播放。这种机制使得首包延迟自然就比其他的模型要低很多。如果播放器端再稍微做一点缓冲和播放优化,它作为读屏软件的语音库都勉强可以胜任了,因为对于人类听觉感知来说,这种级别的延迟已经几乎可以忽略不计,体验极其丝滑。怎么样?听到这里,是不是觉得这模型已经diǎo炸天了?
但别急,更diǎo、更硬核的功能还在后面。它不仅可以支持基于自然语言的情绪描述,还允许你在需要合成的文本前面加上一对尖括号,在尖括号里用自然语言详细描述你想要表达的具体情绪。你要知道,在如此短的时间内,模型需要在后台进行深度的语义理解、精准的情绪分析、复杂的声码器向量映射,最终才能输出带有对应情感的语音。这足以可见它的底层推理速度有多么之强悍,算力优化做得有多么极致。
说了这么多,它的调用方式其实也很简单,对开发者非常友好。首先,你需要去小米开放平台注册一个账号。如果你之前已经注册过小米账号,也可以直接使用小米账号直接快捷登录。登录成功以后,来到控制台首页,在此处点击API 密钥,先新建一个密钥,然后将其复制下来,接着再去你要调用的 TTS 引擎代码中去进行配置和调用。
具体的调用方法也很简单,详细的参数和示例可以直接参考它的 API 文档。如果你选择使用 HTTP 协议进行调用,需要先在请求头中携带你的 Authorization 头,并附上你的 API 密钥。请求体中则需要携带语速、音量、语调、发音人等详细参数信息,把这些打包成一个统一的数据包,POST 请求发送到这个 API 端点。
如果你追求极致的低延迟,选择 WebSocket 进行调用,则需要先写一个 sendmessage 函数,然后以 user 和 assistant 的消息格式发送到同样的端点。其中,user 的消息中需要携带 API 密钥、语速、音量、语调、文本以及各种附加参数。Assistant 的响应则会包含音频流和状态标记。需要特别注意的是,如果响应标记为 done,就表示音频流已经关闭,此时如果再去读取就会报错了。WebSocket 的端点和 HTTP 是一样的,只是把 chat completions 路径去除,再把 HTTPS 协议改成 WSS 协议。
这里要划个重点:Websocket 端点是流式输出端点,而 HTTPS 是非流式端点。其中,Websocket 端点最终会输出带有文件头的 WAV 音频格式;而 HTTP 端点则更加灵活,可以请求它实现不同的音频格式,例如 MP3、FLAC、OPUS 等,但相应的,它的整体速度会比 WS 慢一些。
顺便提一嘴,在小米文档中心里,你还能看到关于 token plan 的请求端点说明。它的请求端点是随用户所在区域的不同而有所不同的。例如,当你在中国境内,想调用中国境内的节点时,对应的端点就是 token-plan-CN.xiaomimimo.com/v1。而目前 Token Plan 的套餐价格显示为零X,相当于是完全免费的,在计费逻辑上和按量付费是一样的,大家尽可以放心大胆地去调用。
请问这个TTS外语发音人种类多不多?效果怎么样?想作为读屏的旁白,怎么操作?