百度API语音识别 您所在的位置:网站首页 神奇语音音频百度云提取码是什么 百度API语音识别

百度API语音识别

2024-07-10 02:54| 来源: 网络整理| 查看: 265

今天开补迟到的工作室大作业… 主要介绍百度API调用的方法,以语音识别为例

目录 1)前往AI开放平台创建应用2)代码及注意事项3)python调用API1.识别本地文件2.录音识别 4)报错信息

1)前往AI开放平台创建应用

首先,先进入百度API开发的网址https://ai.baidu.com/ 进入后点击右上角控制台,注册自己的账号 在这里插入图片描述 注册完毕后在产品服务—人工智能中找到自己需要的API,我们以语音识别为例,点击语音技术 在这里插入图片描述 之后点击创建应用,进行必要的信息填写 在这里插入图片描述 创建完毕后百度会给你一个应用列表,使用这里的AppID,API Key及Secret Key便可以进行API的调用啦!调用的注意事项及具体操作在后文进行介绍 在这里插入图片描述

2)代码及注意事项

我们首先要导入baidu-aip这个包 pip install baidu-aip

对接口进行请求

from aip import AipSpeech # 读取文件 def get_file_content(filePath): with open(filePath, 'rb') as fp: return fp.read() # 识别本地文件 client.asr(get_file_content('audio.pcm'), 'pcm', 16000, { 'dev_pid': 1537, })

这里根据情况需要调整参数,如文件名,文件类型(pcm wav或amr);rate采样率,固定为16000或8000;dev_pid参数对应下表 在这里插入图片描述 一定要注意调用时音频有固定的格式,文件类型必须为pcm wav或amr,16位深,时长30s内,16000或8000的采样率,单声道,否则会报错或识别不准确

调用接口

client = AipSpeech(APP_ID, API_KEY, SECRET_KEY) result = client.asr(get_file_content('test.wav'), 'wav',16000,{'dev_pid': 1537,})

这里的APP_ID, API_KEY, SECRET_KEY分别对应上文你自己的AppID,API Key及Secret Key

3)python调用API 1.识别本地文件

识别本地文件时使用上述代码基本就可以了,识别不准确一般是由于文件格式未完全按照上述要求所致

print(result)

我们看看result的具体输出结果 在这里插入图片描述 返回值是一个字典,result中的值即为识别出的结果

2.录音识别

本地文件由于文件格式蛮难改的,导致结果不准确,我们来试一下录音识别, 在网上嫖了个录音的代码,将参数改成我们需要的参数 直接将整个源码附下

import wave import pyaudio from aip import AipSpeech APP_ID = '' API_KEY = '' SECRET_KEY = '' CHUNK = 1024 FORMAT = pyaudio.paInt16 # 16位深 CHANNELS = 1 #1是单声道,2是双声道。 RATE = 16000 # 采样率,调用API一般为8000或16000 RECORD_SECONDS = 10 # 录制时间10s def save_wave_file(pa, filepath, data): wf = wave.open(filepath, 'wb') wf.setnchannels(CHANNELS) wf.setsampwidth(pa.get_sample_size(FORMAT)) wf.setframerate(RATE) wf.writeframes(b"".join(data)) wf.close() def get_audio(filepath): isstart = input("是否开始录音?(0为退出 1为开始)") if isstart == "1": pa = pyaudio.PyAudio() stream = pa.open(format=FORMAT, channels=CHANNELS, rate=RATE, input=True, frames_per_buffer=CHUNK) print("*" * 10, "开始录音:请在10秒内输入语音") frames = [] for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)): data = stream.read(CHUNK) # 读取chunk个字节 保存到data中 frames.append(data) # 向列表frames中添加数据data print("*" * 10, "录音结束\n") stream.stop_stream() stream.close() # 停止数据流 pa.terminate() # 关闭PyAudio #写入录音文件 save_wave_file(pa, filepath, frames) elif isstart == "0": exit() else: print("无效输入,请重新选择") get_audio(filepath) def get_file_content(filePath): with open(filePath, 'rb') as fp: return fp.read() if __name__ == '__main__': filepath = 'test.wav' get_audio(filepath) print('over!!!') client = AipSpeech(APP_ID, API_KEY, SECRET_KEY) result = client.asr(get_file_content('audio3.wav'), 'wav',16000,{'dev_pid': 1537,}) print(result)

嗯嗯,结果还是满准确的

4)报错信息

调用失败报错时会产生一些信息,可对应下表进行查错 在这里插入图片描述 参考文档



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有