本人小白,因为毕设项目需要用的语音交互,便查网上的资料利用百度api实现,比较简单的过程,供大家借鉴批判。
项目框架大致分为3步:(1)百度语音识别可以将我们输入的语音转化为文本输入到文心一言大模型;(2)文心一言大模型根据输入以输出响应文本;(3)百度语音合成将文本转化为语音并播放。至此一套完整的语音交互便实现了。
实现条件:
(1)开通百度智能云官方中千帆大模型和语音技术的api应用并获得API_KEY、SECRET_KEY,并且开通付费服务(如语音生产要开通音库付费服务)开通过程网上的教程非常多,很简单,我就不多赘述了。
(2)有Python环境即可
实现成本:百度的千帆大模型(也就是大语言模型)有20元的抵用券,好像是自动发放的,能用很久。并且语音技术方面可以领取免费资源,如下图中右上角就可以领。
并且其实不用这些免费资源,完全自费,一次完整的语音交互的成本也大概只有元,这个量级,很便宜。
实现步骤非常简单,大家把下面三段代码分别复制到自己的Python的IDE中,并且安装每段代码所需的第三方库,然后将自己在百度智能云的申请的API_KEY、SECRET_KEY,就可以运行实现了。
接下来就是实现步骤,一共三段代码(基本都是我复制整合了一下),很简单:
第一步:
百度语音识别可以将我们输入的语音转化为文本,此段代码Python文件命名“speech_to_text.py”,导入文件开头所需的第三方Python库。并且将API_KEY、SECRET_KEY换成你自己在百度智能云的语音技术中申请的就行,(别忘了开通计费服务)
第二步:
百度语音合成将文本转化为语音并播放,此段代码Python文件命名“text_to_speech.py”,导入文件开头所需的第三方Python库。并且也将API_KEY、SECRET_KEY换成你自己在百度智能云的语音技术中申请的就行,注意,语音识别和语音合成都属于语音技术,所以API_KEY、SECRET_KEY可以是一样的(也别忘了开通计费服务)。
语音合成可以合成不同的声音,音色,音调等都是可以通过设置参数接口进行设置的,可以看下列代码的备注,也可以参考官方文档。(注意要用精品音库的话,别忘了开通精品音库的计费服务或者领取免费额度,要不然就用不了,个人感觉精品音库确实比基础音库感觉更拟人化)
第三步:
调用“speech_to_text.py”语音识别获得文本,输入到文心一言大模型响应并且输出文本,然后在调用“text_to_speech.py”语音合成将文心一言的输出合成语音,以完成整个流程。此段代码Python文件命名“voice_interation.py”(这个文件名因为不再调用,所以大家可以随意命名),导入文件开头所需的第三方Python库和我们之前写的“speech_to_text.py”、“text_to_speech.py”。并且将API_KEY、SECRET_KEY换成你自己在百度智能云的千帆大模型中申请的就行,(别忘了开通计费服务),我创立了一个dialogue_history以储存每次的交互数据以达到多轮连续对话的目的。