之前给大家分享关于语音大模型讯飞星火、天工等等,但都是必源的。最近发现一个超酷开源的语音转文本ChatTTS项目,生成的语音文本效果逼真,支持中文和英文。结合kimi api,我给大家手搓一个语音AI助手,让大模型自然流畅地说出来!下面我给大家详细介绍,文末有实测对应的效果展示哦~
ChatTTS开源语音天花板
ChatTTS项目介绍
效果展示: 利用ChatTTS实现中文文本转语音
效果展示: 利用ChatTTS实现英文语音转文本
kimi api接口介绍
为什么要用api的方式来调用大模型?
kimi大模型介绍
kimi api相关限速介绍
如何配置自己的api
查看目前免费api的用量限制:
充值来提高api接口的限制:
kimi api+ChatTTS打造个人语音AI助手
配置对应的库
kimi大模型验证
将其封装成函数
问答对话语音展示
参考文档
ChatTTS开源语音天花板
ChatTTS项目介绍
ChatTTS 文本转语音项目在github爆火出圈,引来大家极大的关注。短短三天时间,在 GitHub 上已经斩获了15.8k的Star量。
ChatTTS是专门为对话场景设计的文本转语音模型,例如LLM助手对话任务。它支持英文和中文两种语言。
作者本人也在 x (原推特)上表示,ChatTTS 突破了开源天花板。不过,目前开源的只是基础大模型,没有经过 SFT 监督微调。
项目github地址: https://github.com/2noise/ChatTTS

对话式 TTS: ChatTTS针对对话式任务进行了优化,实现了自然流畅的语音合成,同时支持多说话人。 细粒度控制: 该模型能够预测和控制细粒度的韵律特征,包括笑声、停顿和插入词等。 更好的韵律: ChatTTS在韵律方面超越了大部分开源TTS模型。同时提供预训练模型,支持进一步的研究。
效果展示: 利用ChatTTS实现中文文本转语音
配置对应的运行环境
from IPython.display import clear_output!git clone https://github.com/2noise/ChatTTS%cd ChatTTS!pip install -r requirements.txt!pip install openai==1.30.1!pip install pynini==2.1.5 Cython WeTextProcessing torchaudioclear_output()
下载模型权重
import ChatTTS
import torch
torch._dynamo.config.cache_size_limit = 64
torch._dynamo.config.suppress_errors = True
torch.set_float32_matmul_precision(&39;high&39;)
from IPython.display import Audio
chat = ChatTTS.Chat()
chat.load_models()

进行模型推理实现中文文本转语音

输出的语音效果展示:
效果展示: 利用ChatTTS实现英文语音转文本

效果是不是很惊艳,下面我将结合大模型来搭建个人语音AI助手~
kimi api接口介绍
为什么要用api的方式来调用大模型?
部分大模型未开源: 即没有开放模型参数权重,所以没法实现本地加载。 本地设备无法支持大模型推理: 大模型的参数量高达几百元甚至千亿的参数量,光是参数文件就高达几十G设置上百G的参数,更何况本地没有大型显卡推理,即使下载下来权重也无法运行。大模型推理是费钱费力。 易用、高效、定制化强: 通过api接口的方式,易用高效便于用户定制,用户只需要几行代码就可以定制自己的AI助手。环境只需要CPU就行,不需要昂贵的GPU,网络通畅就行。还能通过api的并发等来限制来收取会员费用。
kimi大模型介绍
目前kimi大模型有:
moonshot-v1-8k: 它是一个长度为 8k 的模型,适用于生成短文本。 moonshot-v1-32k: 它是一个长度为 32k 的模型,适用于生成长文本。 moonshot-v1-128k: 它是一个长度为 128k 的模型,适用于生成超长文本。以上模型的区别在于它们的最大上下文长度,这个长度包括了输入消息和生成的输出,在效果上并没有什么区别。这个主要是为了方便用户选择合适的模型。
kimi api相关限速介绍

对应就是并发为1 RPM( request per minute)指一分钟内您最多向我们发起的请求数只有3次, TPM( token per minute)指一分钟内您最多和我们交互的token数只有32000个token数, TPD(token per day)指一天内您最多和我们交互的token数交互1.5M;
如何配置自己的api
首先你需要打开https://platform.moonshot.cn/console/info,进行登录注册,成功后进入下面界面

查看目前免费api的用量限制:

充值来提高api接口的限制:

账号界面预览

下面我将手把手给大家介绍如何利用kimi api+ ChatTTS来打造个人语音AI助手。
kimi api+chatTTS打造个人语音AI助手
配置对应的库
from IPython.display import clear_output!git clone https://github.com/2noise/ChatTTS%cd ChatTTS!pip install -r requirements.txt!pip install openai==1.30.1!pip install pynini==2.1.5 Cython WeTextProcessing torchaudioclear_output() 配置kimi大模型的apifrom openai import OpenAIclient = OpenAI( api_key = &39;kimiapi密钥&39;, base_url = &39;https://api.moonshot.cn/v1&39;,)
kimi大模型验证
query=&39;请问长江和嘉陵江相汇在什么地方&39;
completion = client.chat.completions.create(
model = &39;moonshot-v1-128k&39;,
messages = [
{&39;role&39;: &39;system&39;, &39;content&39;: &39;你是 Kimi,由 Moonshot AI 提供的人工智能助手,你更擅长中文和英文的对话。你会为用户提供安全,有帮助,准确的回答。同时,你会拒绝一切涉及恐怖主义,种族歧视,黄色暴力等问题的回答。Moonshot AI 为专有名词,不可翻译成其他语言。&39;},
{&39;role&39;: &39;user&39;, &39;content&39;: query}
],
temperature = 0.3,
)
print(completion.choices[0].message.content)
长江和嘉陵江相汇的地方位于中国重庆市。嘉陵江在重庆市渝中区的朝天门码头汇入长江,形成了重庆独特的两江交汇景观。
将其封装成函数
def kimi_chat_speak(user_query,history):
history.append({
&39;role&39;: &39;user&39;,
&39;content&39;: user_query
})
completion = client.chat.completions.create(
model=&39;moonshot-v1-128k&39;,
messages=history,
temperature=0.3,
)
result = completion.choices[0].message.content
history.append({
&39;role&39;: &39;assistant&39;,
&39;content&39;: result
})
print(&39;kimi: &39;, result)
params_infer_code = {&39;prompt&39;:&39;[speed_5]&39;, &39;temperature&39;:.3}
params_refine_text = {&39;prompt&39;:&39;[oral_2][laugh_0][break_6]&39;}
texts = [result]
wavs = chat.infer(texts,
do_text_normalization=True,
params_refine_text=params_refine_text,
params_infer_code=params_infer_code)
return wavs
问答对话语音展示
对话案例1效果展示:

对话案例2效果展示:

对话案例3效果展示:

怎么样,是不是很哇塞,快去尝试吧!
参考文档
https://kimi.moonshot.cn/ https://github.com/2noise/ChatTTS
不管大模型怎么发展,终究只是一个工具,如何利用好它来提高我们的效率,这个才是最重要的!