第14章-Python-人工智能-语言识别-调用百度语音识别

        百度语音识别API是可以免费试用的,通过百度账号登录到百度智能云,在语音技术页面创建的应用,生成一个语音识别的应用,这个应用会给你一个APIKey和一个Secret Key,如图14.1所示。

 我们在自己的程序中用 API Key 和 Secret Key 这两个值获取 Koken,然后再通过 Token 调用语音识别接口,因此需要经过两次URL请求才能实现语音识别功能,第一次请求获得 Token,第二次请求调用语音识别功能。

1、创建语音操作类(create_audio.py)

为了使得音频操作代码可以通用和复用,新建一个文件create_audio.py,在文件中生成一个音频操作类TestAudio,这个类实现对音频参数的初始化,录音和保存音频文件等功能。样例代码如下所示。

# 调用百度语音识别

import wave
import pyaudio
class TestAudio:
    # 初始化
    def __init__(self,fname):
        self.chunk=2048
        self.samepling_rate=16000
        self.sampwidth=2
        self.channels=1
        self.record_time=6
        self.filename=fname

    # 把音频保存到文件,这里data为列表类型
    def save_file(self,data):
        wf=wave.open(self.filename,'wb')
        wf.setnchannels(self.channels)
        wf.setsampwidth(self.sampwidth)
        wf.setframerate(self.samepling_rate)
        wf.writeframes(b"".join(data))
        wf.close()

    # 进行录音的函数
    def record(self):
        pa=pyaudio.PyAudio()
        stream=pa.open(format=pyaudio.paInt16,channels=self.channels,rate=self.samepling_rate,input=True,frames_per_buffer=self.chunk)
        print("开始录音,请讲话。。。")
        mybuf=[]
        for i in range(0,int(self.samepling_rate/self.chunk*self.record_time)):
            data =stream.read(self.chunk)
            mybuf.append(data)
        stream.stop_stream()
        stream.close()
        pa.terminate()
        print("录音结束")
        self.save_file(mybuf)

if __name__=="__main__":
    test=TestAudio('test.wav')
    test.record()

2、语音识别函数(主函数)

注意:更改APIKey 和 SecretKey 值

# 调用百度语音识别
import requests
import base64

import CreateTestAudio
vhttp="https:// "
vurl="openapi.baidu.com/oauth/2.0/token?grant_type=client_credentials&client_id=%s&client_secret=%s"
APIKey="xx"
SecretKey="xxx"
base_url=vhttp+vurl%(APIKey,SecretKey)

# 获取token
def getToken(base_url):
    res=requests.post(base_url)
    return res.json()['access_token']

#
def SpeechTOText(speech_data,token,dev_pid=1537):
    FILETYPE='wav'
    RATE=16000
    CHANNEL=1
    CUID='12345678PYTHON12345678'
    SPEECH=base64.b64decode(speech_data).decode('utf-8')
    data={'format':FILETYPE,'rate':RATE,'channel':CHANNEL,'cuid':CUID,'len':len(speech_data),'speech':SPEECH,'token':token,'dev_pid':dev_pid}
    # 拼接URL地址
    url=vhttp+'vop.baidu.com/server_api'
    headers={'Content-Type':'application/json'}
    print('正在识别。。。')
    r=requests.post(url,json=data,headers=headers)
    Result=r.json()
    if 'result' in Result:
        return Result['result'][0]
    else:
        return Result

def get_audio(file):
    with open(file,'rb') as f:
        data=f.read()
    return data

#主函数
if __name__=='__main__':
    message=input("按任意键开始录入")
    test =CreateTestAudio('test.wav')
    test.record()
    TOKEN =getToken(base_url)
    speech =get_audio('test.wav')
    result=SpeechTOText(speech,TOKEN,1537)
    print(result)

2、测试

在命令行终端启动程序,根据提示说一段话,等待程序执行,程序返回这段话的内容,说明语音识别程序运行成功,如下所示。

 

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要使用百度语音识别Python版,首先需要安装百度语音sdk。可以使用以下命令进行安装: ``` pip install baidu-aip ``` 安装完成后,可以使用百度API的语音识别功能,将音频文件转为文字并保存到word文档中。可以参考以下步骤: 1. 导入必要的模块: ``` from aip import AipSpeech ``` 2. 初始化AipSpeech对象,传入你的App ID、API Key和Secret Key: ``` client = AipSpeech(APP_ID, API_KEY, SECRET_KEY) ``` 3. 读取音频文件并转为语音识别的可识别格式: ``` with open('audio.wav', 'rb') as fp: speech = fp.read() ``` 4. 调用语音识别接口将音频转为文字: ``` result = client.asr(speech, 'wav', 16000, { 'dev_pid': '1537', }) ``` 5. 将识别结果保存到word文档中: ``` with open('result.txt', 'w') as fp: fp.write('\n'.join(result['result'])) ``` 这样就可以将音频文件中的语音转为文字,并保存到word文档中了。请根据实际情况调整参数,例如音频文件路径、语音格式和采样率等。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Python调用百度API实现语音识别](https://blog.csdn.net/qq_15821487/article/details/119206606)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lijun_xiao2009

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值