基于百度语音识别API的Python语音识别小程序
一、功能概述
实现语音为文字,可以扩展到多种场景进行工作,这里只实现其基本的语言接收及转换功能。
在语言录入时,根据语言内容的多少与停顿时间,自动截取音频进行转换。
工作示例:

二、软件环境
操作系统:win10
语言:Python 版本:3.6.0
Python库:AipSpeech(百度语音识别SDK客户端),wave,PyAudio,paInt16
Python库安装:除百度为:pip install baidu-aip,其他直接 pip install *(库名) 即可。
三、原理概述
利用wave,PyAudio搭建一个wav格式的简易录音机,基于百度API进行wav格式的音频转文本。
- 简易录音机类(WWAV)有__save_wave_file音频文件保存方法与my_record音频录制方法。在录制音频的方法中,加入了有效音频测试的代码,可以测试一小段时间内是否有有效音频输入,否则退出音频录制。
- 转换类(Translation)则为__get_file_content方法与get_word音频转换主方法。
四、核心代码
my_record音频录制方法(WWAV类)
def my_record(self,TIME = 60,INTERVAL = 5):
'''录制并保存音频文件,TIME录制时间,INTERVAL测试间隔'''
pa=PyAudio()
tr = Translation()
stream=pa.open(format = paInt16,channels=self.__channels,
rate=self.__framerate,input=True,
frames_per_buffer=self.__NUM_SAMPLES)
my_buf=[] # 主音频源
buf=[] # 测试音频源
i=0
while i < TIME*2: #控制录音时间
string_audio_data = stream.read(self.__NUM_SAMPLES) # 获取音频片段
my_buf.append(string_audio_data)
if i < INTERVAL*2:
buf.append(string_audio_data)
i += 1
elif i == INTERVAL*2:
self.__save_wave_file('00.wav',buf) # 保存测试音频
err,a = tr.get_word('00.wav') # 得到测试音频是否有效
if err == 0:
break
i = 0 # 初始化
buf = [] # 同上
print('.',end = ' ')
self.__save_wave_file('01.wav',my_buf)
stream.close()
get_word音频转换方法(Translation类)
def get_word(self,filePath):
'''音频转文字,参数filePath为wav音频地址,返回双值:状态(1为转换成功)及转换后文本或错误信息'''
word = self.__client.asr(self.__get_file_content(filePath),'wav',8000,{
'lan': 'zh'
}) # 参数:语音对象,文件格式,采样率,语种类型
if word['err_no'] == 0: # 错误值为0(即正确)
return 1,word['result'][0] # 返回 1 与 文本信息
else:
return 0,word['err_no'] # 否则返回 0 与 错误内容
源码
附:我又回来了,这个是不是大项目,正在写,敬请期待!寒假会更一些学习笔记,一起加油
以上
基于百度语音识别API的Python语音识别小程序的更多相关文章
- 基于百度地图api + AngularJS 的入门地图
转载请注明地址:http://www.cnblogs.com/enzozo/p/4368081.html 简介: 此入门地图为简易的“广州大学城”公交寻路地图,采用很少量的AngularJS进行inp ...
- PHP:基于百度大脑api实现OCR文字识别
有个项目要用到文字识别,网上找了很多资料,效果不是很好,偶然的机会,接触到百度大脑.百度大脑提供了很多解决方案,其中一个就是文字识别,百度提供了三种文字识别,分别是银行卡识别.身份证识别和通用文字识别 ...
- 记录开发基于百度地图API实现在地图上绘制轨迹并拾取轨迹对应经纬度的工具说明
前言: 最近一直在做数据可视化方面的工作,其中平面可视化没什么难度,毕竟已经有很多成熟的可供使用的框架,比如百度的echart.js,highcharts.js等.还有就是3D可视化了,整体来说难度也 ...
- VSTO学习笔记(七)基于WPF的Excel分析、转换小程序
原文:VSTO学习笔记(七)基于WPF的Excel分析.转换小程序 近期因为工作的需要,要批量处理Excel文件,于是写了一个小程序,来提升工作效率. 小程序的功能是对Excel进行一些分析.验证,然 ...
- 一个python爬虫小程序
起因 深夜忽然想下载一点电子书来扩充一下kindle,就想起来python学得太浅,什么“装饰器”啊.“多线程”啊都没有学到. 想到廖雪峰大神的python教程很经典.很著名.就想找找有木有pdf版的 ...
- python 购物车小程序
python 购物车小程序 功能要求:1.启动程序后,输入用户名密码后,让用户输入工资,然后打印商品列表2.允许用户根据商品编号购买商品3.用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒4. ...
- Netty学习——基于netty实现简单的客户端聊天小程序
Netty学习——基于netty实现简单的客户端聊天小程序 效果图,聊天程序展示 (TCP编程实现) 后端代码: package com.dawa.netty.chatexample; import ...
- appium+python 微信小程序的自动化
sudo kill -9 $(lsof -i:8889 -t) mitmweb -p 8889 -s addons.py mitmdump -q -p 8889 -s addons.py http: ...
- Python基本小程序
目录 Python基本小程序 一.筛选从1-100所有的奇数 二.筛选从0-100所有的偶数 三.求1-100之间所有的偶数和,奇数和 四.三个数由小到大输出 五.四个数字重复数字的三位数 Pytho ...
随机推荐
- 2-10 就业课(2.0)-oozie:11、hadoop的federation(联邦机制,了解一下)
==================================================== Hadoop Federation 背景概述 单NameNode的架构使得HDFS在集群扩展性 ...
- PHP代码审计之入门实战
系统介绍 CMS名称:新秀企业网站系统PHP版 官网:www.sinsiu.com 版本:这里国光用的1.0 正式版 (官网最新的版本有毒,网站安装的时候居然默认使用远程数据库???迷之操作 那站长的 ...
- 007-PHP变量和函数相互转换
<?php function write($text) //定义function write()函数 { print($text); //打印字符串 } function writeBold($ ...
- Spark Storage 模块
http://jerryshao.me/architecture/2013/10/08/spark-storage-module-analysis/ 大神写的太好了,我就不重复造轮子了. Spark ...
- 接口补偿机制需求分析&方案设计
接口补偿机制需求分析&方案设计文章目录接口补偿机制需求分析&方案设计需求分析背景解决方案业务示例注意事项示例业务Controller实现重试信息类&数据处理入库接口重试的主要方 ...
- 吴裕雄 Bootstrap 前端框架开发——Bootstrap 字体图标(Glyphicons):glyphicon glyphicon-plus
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...
- 【LeetCode】反转每对括号间的子串
[问题]给出一个字符串 s(仅含有小写英文字母和括号). 请你按照从括号内到外的顺序,逐层反转每对匹配括号中的字符串,并返回最终的结果. 注意,您的结果中 不应 包含任何括号. 示例 : 输入:s = ...
- 130-PHP子类通过类函数访问父类protected修饰的类成员
<?php class father{ //定义father类 //定义protected修饰的成员属性和方法 protected $money=1000000; protected funct ...
- K最邻近算法(下)
import numpy as np import matplotlib.pyplot as plt from sklearn.datasets import make_blobs from skle ...
- JAVA中的指针
不同于CPP,JAVA中不需要程序员对指针进行操作.不过,这不代表JAVA没有指针,事实上,JAVA的指针操作都被底层代码封装了.笔者在初学Java时,虽然就了解了形参,实参,StringBuffer ...