Python调用百度API进行语音识别
目录
- 1.作者介绍
- 2.基于百度API的普通话识别
- 2.1语音识别
- 2.2百度API调用方法
- 3.实验
- 3.1实验准备
- 3.2实验结果
- 4.实验代码
1.作者介绍
高志翔,男,西安工程大学电子信息学院,2021级研究生
研究方向:机器视觉与人工智能
电子邮件:562076173@qq.com
刘帅波,男,西安工程大学电子信息学院,2021级研究生,张宏伟人工智能课题组
研究方向:机器视觉与人工智能
电子邮件:1461004501@qq.com
2.基于百度API的普通话识别
2.1语音识别
语音识别,就是将一段语音信号转换成相对应的文本信息,系统主要包含特征提取、声学模型,语言模型以及字典与解码四大部分,此外为了更有效地提取特征往往还需要对所采集到的声音信号进行滤波、分帧等音频数据预处理工作,将需要分析的音频信号从原始信号中合适地提取出来。
一般流程:
2.2百度API调用方法
通过在百度智能开发平台,建立语音技术等应用,会获取相对技术权限功能。
创建完毕后百度会给你一个应用列表,使用这里的AppID,API Key及Secret Key便可以进行API的调用。
3.实验
3.1实验准备
本次实验我们采用的是百度API进行识别,故需要安装baidu-aip模块
首先打开命令行,在里面输入pip install baidu-aip。
如上图,即是安装成功。
因为本项目采用pyqt5进行了界面编写,故还需要安装pyqt5模块。
打开命令行,在里面输入pip install pyqt5即可安装。
接下来需要去百度AI的官网去创建应用,获取AppID,APIKey,Secret Key。
3.2实验结果
在此就可直接输入对应的数字,enter键后便开始录音,随即弹出百度搜索界面,可直接进行搜索,即实验成功!
4.实验代码
import wave
import requests
import time
import base64
from pyaudio import PyAudio, paInt16
import webbrowserframerate = 16000 # 采样率
num_samples = 2000 # 采样点
channels = 1 # 声道
sampwidth = 2 # 采样宽度2bytes
FILEPATH = 'speech.wav'base_url = "https://openapi.baidu.com/oauth/2.0/token?grant_type=client_credentials&client_id=%s&client_secret=%s"
APIKey = "********" # 填写自己的APIKey
SecretKey = "**********" # 填写自己的SecretKeyHOST = base_url % (APIKey, SecretKey)def getToken(host):res = requests.post(host)return res.json()['access_token']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 = pa.open(format=paInt16, channels=channels,rate=framerate, input=True, frames_per_buffer=num_samples)my_buf = []# count = 0t = time.time()print('正在录音...')while time.time() < t + 4: # 秒string_audio_data = stream.read(num_samples)my_buf.append(string_audio_data)print('录音结束.')save_wave_file(FILEPATH, my_buf)stream.close()def get_audio(file):with open(file, 'rb') as f:data = f.read()return datadef speech2text(speech_data, token, dev_pid=1537):FORMAT = 'wav'RATE = '16000'CHANNEL = 1CUID = '*******'SPEECH = base64.b64encode(speech_data).decode('utf-8')data = {'format': FORMAT,'rate': RATE,'channel': CHANNEL,'cuid': CUID,'len': len(speech_data),'speech': SPEECH,'token': token,'dev_pid': dev_pid}url = 'https://vop.baidu.com/server_api'headers = {'Content-Type': 'application/json'}# r=requests.post(url,data=json.dumps(data),headers=headers)print('正在识别...')r = requests.post(url, json=data, headers=headers)Result = r.json()if 'result' in Result:return Result['result'][0]else:return Resultdef openbrowser(text):maps = {'百度': ['百度', 'baidu'],'腾讯': ['腾讯', 'tengxun'],'网易': ['网易', 'wangyi']}if text in maps['百度']:webbrowser.open_new_tab('https://www.baidu.com')elif text in maps['腾讯']:webbrowser.open_new_tab('https://www.qq.com')elif text in maps['网易']:webbrowser.open_new_tab('https://www.163.com/')else:webbrowser.open_new_tab('https://www.baidu.com/s?wd=%s' % text)if __name__ == '__main__':flag = 'y'while flag.lower() == 'y':print('请输入数字选择语言:')devpid = input('1536:普通话(简单英文),1537:普通话(有标点),1737:英语,1637:粤语,1837:四川话\n')my_record()TOKEN = getToken(HOST)speech = get_audio(FILEPATH)result = speech2text(speech, TOKEN, int(devpid))print(result)if type(result) == str:openbrowser(result.strip(','))flag = input('Continue?(y/n):')
Python调用百度API进行语音识别相关推荐
- python aipspeech_Python调用百度API实现语音识别(二)
咪哥杂谈 本篇阅读时间约为 5 分钟. 1 前言 上一篇文章里,大致介绍了百度官方 api 的一些前置准备工作. 想回顾的同学,可以看完本篇在下面找到历史链接. 今天就来上手实战编码,体验一下代码实现 ...
- mac下载的api文档怎么_Python调用百度API实现语音识别(二)
Python调用百度API实现语音识别(二) 前言 上一篇文章里,大致介绍了百度官方 api 的一些前置准备工作. 想回顾的同学,可以看完本篇在下面找到历史链接. 今天就来上手实战编码,体验一下代码实 ...
- python通过调用百度api实现语音识别(超详细)
python通过调用百度api实现语音识别(超详细) 2021.04.18:该文章是在18年,初学Python时写的,所以功能仅限于当时可用,至于现在(貌似依然可用)和以后就不确定了.完整的demo也 ...
- [Python]调用百度API进行自然语言处理 标签、关键字 以及 词法分析
1.进入百度API自然语言处理文档 进入右上角的控制台,注册登录 左侧导航栏选择自然语言处理 创建自己的应用 输入应用名称以及应用描述,其他默认即可. 在如下页面记住自己的API Key以及Secre ...
- python调用百度api判断两张图片是否相同_python如何调用百度识图api
一.先去百度识别官网注册开通服务且获得ak和sk 二.代码模板 import cv2 import base64 import requests import numpy as np import t ...
- 地理位置与经纬度之间相互转换(基于python调用百度API)
百度API 位置与经纬度相互转换 每天限制6000次 百度API平台 https://lbsyun.baidu.com/apiconsole/key#/home 1.pip install 安装相关p ...
- Python调用百度API进行人脸对比
目录 1. 作者介绍 2. 关于Base64知识介绍 2.1 Bsae64是什么 2.1 Bsae64编码原理 3. 实验过程 3.1 实验过程 3.2 实验代码 3.3 运行结果 3.4 问题分析 ...
- Python调用百度API进行身份证识别
目录 1.作者介绍 2.基于百度API的身份证识别 2.1 百度ORC接口简介 2.2 算法介绍 2.2.1图像预处理 2.2.2身份证图像粗定位 2.2.3细定位各种信息和分割 2.2.4识别信息 ...
- python调用百度api接口_python调用百度API
标签: from urllib.request import urlopen import requests import json url = "http://apis.baidu.com ...
- python调用百度API实现中英文互译
import http import hashlib import urllib.request import random import json import csv import pandas ...
最新文章
- 基于视觉和惯性传感器的移动机器人手遥操作系统
- Windows Server 2012 服务器之Web服务器
- ssm拼接html,SSM前后端分离 ssm+html+js(ajax) 这种controll层的返回值是结合或者网址...
- javaweb利用struts2完成批量删除记录
- 保持SVN仓库结构只checkout部分子目录
- C++Primer学习笔记:第5章 语句
- [密码学基础][每个信息安全博士生应该知道的52件事][Bristol Cryptography][第25篇]使用特殊的素数定义GF(p)和GF(2^n)的方法
- 深度学习实例——Keras实现手写数字识别
- 什么是面向服务的体系结构(SOA)?(转载)
- python实现SG滤波
- 计算机主机风扇安装方法,散热风扇怎么装 电脑机箱散热风扇安装图解教程 (全文)...
- [转载]Html 特殊符号 让版权符号更美观_几何途行_新浪博客
- 支付宝免签 个人支付宝到银行卡
- Personal deposit calculator(个人存款计算器)C#实现
- 手机APP支付--整合银联支付控件
- linux tty core code,linux tty core 源码分析(8)
- chatter个人理解
- 四种常用的Git工作流过程分析
- 喜玛拉雅——徐薇翻唱合集
- 大象 ThinkingUML