AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


llm+funasr+tts,diy大模型语音助手,一个自己控制的siri,保姆教程
发布日期:2024-07-15 09:54:31 浏览次数: 2217


 突发奇想,想结合目前的一些所学知识搞一个项目出来,于是乎结合目前的语言大模型搞了一个语音助手,哈哈,好玩多于实用,可以根据你的语音输入回复你的问题,并且自动语音播报出来,本着开源激发更多想法的原则,开源本项目的代码,文末可以获取。


下面介绍一下整个项目,便于大家理解

先来看看项目演示吧

哈哈不错吧


项目技术总揽

本项目的三大核心技术是:语音转文本,语言大模型根据问题产生答案,文本合成语音。三大技术用的都是开源项目,方便多少复现使用.语音转文字是用的funasr阿里开源的;大模型使用基于ollama的qwen2:7b,当然你也可以选择其他的比如gemma2,glm4等;文本合成语音有很多可选方案,比如chattts,fishspeeh,edge-tts,本次基于时间和效果的考虑,选择了edgetts,速度快,效果好,声音可选


技术代码简介


1、语音转文本funasr

model = AutoModel(model="paraformer-zh", vad_model="fsmn-vad", punc_model="ct-punc")def get_spk_txt(file):res = model.generate(input=file, batch_size_s=300, hotword='魔搭')return res[0]["text"]

这里使用paraformer-zh 模型,第一使用会下载模型,可能会慢一点,这个函数可以直接将语音文件转成文本,当然还有许多其他模型大家可以去官网看看


2、大模型调用

def get_resp(input):prompt = "用相对简练的句子回答我的问题,最好不要超过80字:我的问题是{0}".format(input)resp = llm.invoke(prompt)return resp

大模型这里使用ollama作为大模型的支持,方便快捷,目前很多模型支持ollama部署,大家可以去ollama官网去看;这里我设置了prompt,主要是为了让生成快一点,大家可以自行修改


3、文本合成语音

async def get_voice(text):"""Main function"""VOICE = "zh-CN-XiaoxiaoNeural"output_file = "response"+str(time.time())+".mp3"communicate = edge_tts.Communicate(text, VOICE)await communicate.save(output_file)return output_file

这里使用的 edge-tts 项目,这个新项目可以直接 pip安装使用,包含很多声音,你可以去 官网看看

或者执行下边命令获取 VOICE

edge-tts --list-voicesName: Microsoft Server Speech Text to Speech Voice (af-ZA, AdriNeural)ShortName: af-ZA-AdriNeuralGender: FemaleLocale: af-ZA
Name: Microsoft Server Speech Text to Speech Voice (am-ET, MekdesNeural)ShortName: am-ET-MekdesNeuralGender: FemaleLocale: am-ET
Name: Microsoft Server Speech Text to Speech Voice (ar-EG, SalmaNeural)ShortName: ar-EG-SalmaNeuralGender: FemaleLocale: ar-EG
Name: Microsoft Server Speech Text to Speech Voice (ar-SA, ZariyahNeural)ShortName: ar-SA-ZariyahNeuralGender: FemaleLocale: ar-SA

选择你喜欢的声音,替换 VOICE = "zh-CN-XiaoxiaoNeural" 即可


使用注意点

启动项目后,可以把生成的公网链接发到手机,手机浏览器打开,提示使用麦克风,点击【允许】


点击【录音】,说出你的问题,点击【停止】,注意点击停止后,不要立即点击【submit】,等2s,你的录音转成了 文件后,再点击 【submit】,因为 录音完成到转成文件 需要时间,你也可以先试听一下你的问题


结果返回可能需要等待几秒,后台要进行 语音转文本、文本调用llm,结果合成语音,结果返回后,会直接播放,完美


整体其实不是很难,主要是一个思考过程



53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询