本人小白,因为毕设项目需要用的语音交互,便查网上的资料利用百度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换成你自己在百度智能云的语音技术中申请的就行,(别忘了开通计费服务)
import librosa
import soundfile as sf
import speech_recognition as sr
import requests
import json
import base64
# API配置
API_KEY = "YxkeQS64jILPN51*********"
SECRET_KEY = "viepyIPbZxkm9uiSy*********"
# 获取Token
def fetch_token():
TOKEN_URL = 'https://aip.baidubce.com/oauth/2.0/token'
params = {'grant_type': 'client_credentials', 'client_id': API_KEY, 'client_secret': SECRET_KEY}
response = requests.post(TOKEN_URL, params=params).json()
return response['access_token']
def speech_text(au