python通过调用百度api实现语音识别(超详细) 您所在的位置:网站首页 微软在线语音识别要关闭吗知乎 python通过调用百度api实现语音识别(超详细)

python通过调用百度api实现语音识别(超详细)

2024-05-31 05:50| 来源: 网络整理| 查看: 265

python通过调用百度api实现语音识别(超详细)

2021.04.18:该文章是在18年,初学Python时写的,所以功能仅限于当时可用,至于现在(貌似依然可用)和以后就不确定了。完整的demo也在本文末尾,但偶尔还是有人私信我索要完整的代码(CSDN看的比较少,不能及时回复抱歉),这让我觉得很奇怪,所以再次强调一下,完整的demo在本文末尾,如果能帮到初学编程时还有些迷茫的你,甚感荣幸,祝你学习愉快!

以下是原文:

最近在学习python,做一些python练习题 github上几年前的练习题 有一题是这样的:

使用 Python 实现:对着电脑吼一声,自动打开浏览器中的默认网站。 例如,对着笔记本电脑吼一声“百度”,浏览器自动打开百度首页。

然后开始search相应的功能需要的模块(windows10),理一下思路:

本地录音上传录音,获得返回结果组一个map,根据结果打开相应的网页

所需模块:

PyAudio:录音接口wave:打开录音文件并设置音频参数requests:GET/POST

为什么要用百度语音识别api呢?因为免费试用。。 在这里插入图片描述 不多说,登录百度云,创建应用 在这里插入图片描述 查看文档REST API文档 文档写的蛮详细的,简单概括就是

可以下载使用SDK在这里插入图片描述不需要下载使用SDK

选择2.

根据文档组装url获取token处理本地音频以JSON格式POST到百度语音识别服务器,获得返回结果

语音格式 格式支持:pcm(不压缩)、wav(不压缩,pcm编码)、amr(压缩格式)。推荐pcm 采样率 :16000 固定值。 编码:16bit 位深的单声道。 百度服务端会将非pcm格式,转为pcm格式,因此使用wav、amr会有额外的转换耗时。

保存为pcm格式可以识别,只是windows自带播放器识别不了pcm格式的,所以改用wav格式,毕竟用的模块是wave?

首先是本地录音

import wave from pyaudio import PyAudio, paInt16 framerate = 16000 # 采样率 num_samples = 2000 # 采样点 channels = 1 # 声道 sampwidth = 2 # 采样宽度2bytes FILEPATH = 'speech.wav' def save_wave_file(filepath, data): wf = wave.open(filepath, 'wb') wf.setnchannels(channels) wf.setsampwidth(sampwidth) wf.setframerate(framerate) wf.writeframes(b''.join(data)) wf.close() #录音 def my_record(): pa = PyAudio() #打开一个新的音频stream stream = pa.open(format=paInt16, channels=channels, rate=framerate, input=True, frames_per_buffer=num_samples) my_buf = [] #存放录音数据 t = time.time() print('正在录音...') while time.time()


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

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