一、功能概述

实现语音为文字,可以扩展到多种场景进行工作,这里只实现其基本的语言接收及转换功能。

在语言录入时,根据语言内容的多少与停顿时间,自动截取音频进行转换。

工作示例:

二、软件环境

  • 操作系统: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 与 错误内容

源码

GitHub地址

附:我又回来了,这个是不是大项目,正在写,敬请期待!寒假会更一些学习笔记,一起加油

以上

基于百度语音识别API的Python语音识别小程序的更多相关文章

  1. 基于百度地图api + AngularJS 的入门地图

    转载请注明地址:http://www.cnblogs.com/enzozo/p/4368081.html 简介: 此入门地图为简易的“广州大学城”公交寻路地图,采用很少量的AngularJS进行inp ...

  2. PHP:基于百度大脑api实现OCR文字识别

    有个项目要用到文字识别,网上找了很多资料,效果不是很好,偶然的机会,接触到百度大脑.百度大脑提供了很多解决方案,其中一个就是文字识别,百度提供了三种文字识别,分别是银行卡识别.身份证识别和通用文字识别 ...

  3. 记录开发基于百度地图API实现在地图上绘制轨迹并拾取轨迹对应经纬度的工具说明

    前言: 最近一直在做数据可视化方面的工作,其中平面可视化没什么难度,毕竟已经有很多成熟的可供使用的框架,比如百度的echart.js,highcharts.js等.还有就是3D可视化了,整体来说难度也 ...

  4. VSTO学习笔记(七)基于WPF的Excel分析、转换小程序

    原文:VSTO学习笔记(七)基于WPF的Excel分析.转换小程序 近期因为工作的需要,要批量处理Excel文件,于是写了一个小程序,来提升工作效率. 小程序的功能是对Excel进行一些分析.验证,然 ...

  5. 一个python爬虫小程序

    起因 深夜忽然想下载一点电子书来扩充一下kindle,就想起来python学得太浅,什么“装饰器”啊.“多线程”啊都没有学到. 想到廖雪峰大神的python教程很经典.很著名.就想找找有木有pdf版的 ...

  6. python 购物车小程序

    python 购物车小程序 功能要求:1.启动程序后,输入用户名密码后,让用户输入工资,然后打印商品列表2.允许用户根据商品编号购买商品3.用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒4. ...

  7. Netty学习——基于netty实现简单的客户端聊天小程序

    Netty学习——基于netty实现简单的客户端聊天小程序 效果图,聊天程序展示 (TCP编程实现) 后端代码: package com.dawa.netty.chatexample; import ...

  8. appium+python 微信小程序的自动化

    sudo kill -9 $(lsof -i:8889 -t) mitmweb -p 8889 -s addons.py mitmdump -q  -p 8889 -s addons.py http: ...

  9. Python基本小程序

    目录 Python基本小程序 一.筛选从1-100所有的奇数 二.筛选从0-100所有的偶数 三.求1-100之间所有的偶数和,奇数和 四.三个数由小到大输出 五.四个数字重复数字的三位数 Pytho ...

随机推荐

  1. NOIp2018普及组初赛试卷

    第二十四届全国青少年信息学奥林匹克联赛初赛(普及组C++语言试题)

  2. Vulkan SDK Demo 之一 熟悉

    DiligentEngine的API是D3d11和D3D12风格的,vulkan也被封装成了这种风格的API. 在了解Diligent Engine是如何对vulkan进行封装之前,我准备先学习下Vu ...

  3. java中的几种单例模式

    目前比较常见的有4种(DCL为懒汉模式的线程安全版本). 单例模式的实现一般需要满足以下条件: 1.构造方法私有化,实例属性私有化. 2.必须仅在类的内部完成实例的初始化过程. 3.提供公共静态方法, ...

  4. 002.让CI4框架CodeIgniter显示错误信息

    01. 在public目录的index.php中,添加以下内容: //定义环境为开发模式,可以输出各种错误信息 define('ENVIRONMENT', 'development'); 02.我们在 ...

  5. 005-PHP函数输出一行内容

    <?php function printBold($inputText) //定义function printBold() { print("<B>" . $in ...

  6. net Core3.1 Swagger加JWT权限

    1.Swagger中开启JWT服务 #region swagger services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new ...

  7. 吴裕雄--天生自然java开发常用类库学习笔记:属性类Properties

    import java.util.Properties; public class PropertiesDemo01{ public static void main(String args[]){ ...

  8. Golang的基础数据类型-字符串型

    Golang的基础数据类型-字符串型 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.字符型概述 上一篇博客学习了使用单引号括起来的单个字符就是字符类型,在Golang中有两种表 ...

  9. CAN网络上新增加的设备与网络上已有设备MAC地址冲突的软件解决方案

    已知 1号的CAN节点的地址是0x1f 2号的CAN 节点的地址是0x1f 要达到的要求是 假设 网络上 CAN1 节点已经工作了,我现在需要在网络上接入CAN2节点. 那么CAN2节点首次上电的时候 ...

  10. 洛谷P1002——过河卒

    又是洛谷题,要不是有小姐姐不会,我才不想动脑子.先贴一下题目地址https://www.luogu.org/problem/P1002 再贴一下题目: 我们读一下题目,这可不比学校的**算法题,读完一 ...