百度API语音识别 | 您所在的位置:网站首页 › 神奇语音音频百度云提取码是什么 › 百度API语音识别 |
今天开补迟到的工作室大作业… 主要介绍百度API调用的方法,以语音识别为例 目录 1)前往AI开放平台创建应用2)代码及注意事项3)python调用API1.识别本地文件2.录音识别 4)报错信息 1)前往AI开放平台创建应用首先,先进入百度API开发的网址https://ai.baidu.com/ 进入后点击右上角控制台,注册自己的账号 我们首先要导入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参数对应下表 调用接口 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的具体输出结果 本地文件由于文件格式蛮难改的,导致结果不准确,我们来试一下录音识别, 在网上嫖了个录音的代码,将参数改成我们需要的参数 直接将整个源码附下 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 实验室设备网 版权所有 |