基于python实现语音录入识别代码实例


Posted in Python onJanuary 17, 2020

这篇文章主要介绍了如何通过python实现语音录入识别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

一、介绍

1.第一步录音存入本地

2.调用百度语音识别sdk

注意点:百度语音识别对声音源有要求,比特率必须是256kbps

二、代码

#安装必要库
pip install baidu-aip #百度sdk
pip install pyaudio
import wave
import pyaudio
from aip import AipSpeech

def record():
 # 定义数据流块
 CHUNK = 1024
 FORMAT = pyaudio.paInt16
 # 想要百度识别,下面这两参数必须这样设置,使得比特率为256kbps
 CHANNELS = 1
 RATE = 16000
 # 录音时间
 RECORD_SECONDS = 8
 # 要写入的文件名
 WAVE_OUTPUT_FILENAME = "output.wav"
 # 创建PyAudio对象
 p = pyaudio.PyAudio()

 # 打开数据流
 stream = p.open(format=FORMAT,
     channels=CHANNELS,
     rate=RATE,
     input=True,
     frames_per_buffer=CHUNK)

 print("* recording")

 # 开始录音
 frames = []
 for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
  data = stream.read(CHUNK)
  frames.append(data)

 print("* done recording")
 # 停止数据流
 stream.stop_stream()
 stream.close()

 # 关闭PyAudio
 p.terminate()

 # 写入录音文件
 wf = wave.open(WAVE_OUTPUT_FILENAME, 'wb')
 wf.setnchannels(CHANNELS)
 wf.setsampwidth(p.get_sample_size(FORMAT))
 wf.setframerate(RATE)
 wf.writeframes(b''.join(frames))
 wf.close()
def ASR():
 # 录音
 record()

 """ 你的 APPID AK SK """
 APP_ID = '****'
 API_KEY = '****'
 SECRET_KEY = '****'

 client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)

 # 读取文件
 def get_file_content(filePath):
  with open(filePath, 'rb') as fp:
   return fp.read()

 # 识别本地文件
 res=client.asr(get_file_content('output.wav'), 'wav', 16000, {
  'dev_pid': 1536,
 })

 print(res)
if __name__ == '__main__':
 ASR()

三、语音命令控制程序

import wave
import pyaudio
from aip import AipSpeech
import win32api

def record():
 # 定义数据流块
 CHUNK = 1024
 FORMAT = pyaudio.paInt16
 # 想要百度识别,下面这两参数必须这样设置,使得比特率为256kbps
 CHANNELS = 1
 RATE = 16000
 # 录音时间
 RECORD_SECONDS = 8
 # 要写入的文件名
 WAVE_OUTPUT_FILENAME = "output.wav"
 # 创建PyAudio对象
 p = pyaudio.PyAudio()

 # 打开数据流
 stream = p.open(format=FORMAT,
     channels=CHANNELS,
     rate=RATE,
     input=True,
     frames_per_buffer=CHUNK)

 print("* recording")

 # 开始录音
 frames = []
 for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
  data = stream.read(CHUNK)
  frames.append(data)

 print("* done recording")
 # 停止数据流
 stream.stop_stream()
 stream.close()

 # 关闭PyAudio
 p.terminate()

 # 写入录音文件
 wf = wave.open(WAVE_OUTPUT_FILENAME, 'wb')
 wf.setnchannels(CHANNELS)
 wf.setsampwidth(p.get_sample_size(FORMAT))
 wf.setframerate(RATE)
 wf.writeframes(b''.join(frames))
 wf.close()
def ASR():
 # 录音
 record()

 """ 你的 APPID AK SK """
 APP_ID = '****'
 API_KEY = '****'
 SECRET_KEY = '****'

 client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)

 # 读取文件
 def get_file_content(filePath):
  with open(filePath, 'rb') as fp:
   return fp.read()

 # 识别本地文件
 res=client.asr(get_file_content('output.wav'), 'wav', 16000, {
  'dev_pid': 1536,
 })
 if not res.get("err_no"):
  return res.get("result")[0]
 return res.get("err_no")

def control(order):
 # 命令对应的程序路径
 open_order={"打开QQ":r"C:\Program Files (x86)\Tencent\QQ\Bin\QQScLauncher.exe","打开记事本":r"D:\Notepad++\notepad++.exe","打开浏览器":r"C:\Users\ffm11\AppData\Roaming\360se6\Application\360se.exe"}
 res=open_order.get(order)
 if res:
  # 参数1:用于指定父窗口句柄。当函数调用过程出现错误时,它将作为Windows消息窗口的父窗口
  # 参数2:用于指定要进行的操作。
  # “open”操作表示执行由lpFile参数指定的程序,或打开由lpFile参数指定的文件或文件夹;
  # “print”操作表示打印由lpFile参数指定的文件;
  # “explore”操作表示浏览由lpFile参数指定的文件夹。
  # 参数3:用于指定要打开的文件名、要执行的程序文件名或要浏览的文件夹名。
  # 参数4:若lpFile参数是一个可执行程序,则此参数指定命令行参数,否则此参数应为NULL.
  # 参数5:若lpFile参数是一个可执行程序,则此参数指定程序窗口的初始显示方式,否则此参数应设置为0。
  # 这个参数常用的常数:
  # SW_HIDE 隐藏窗口,活动状态给令一个窗口
  # SW_MINIMIZE 最小化窗口,活动状态给令一个窗口
  # SW_RESTORE 用原来的大小和位置显示一个窗口,同时令其进入活动状态
  # SW_SHOW 用当前的大小和位置显示一个窗口,同时令其进入活动状态
  # SW_SHOWMAXIMIZED 最大化窗口,并将其激活
  # SW_SHOWMINIMIZED 最小化窗口,并将其激活
  # SW_SHOWMINNOACTIVE 最小化一个窗口,同时不改变活动窗口
  # SW_SHOWNA 用当前的大小和位置显示一个窗口,不改变活动窗口
  # SW_SHOWNOACTIVATE 用最近的大小和位置显示一个窗口,同时不改变活动窗口
  win32api.ShellExecute(0, 'open', res, '', '', 1)
 else:
  print("语音命令失败")

if __name__ == '__main__':
 order=ASR()
 control(order.rstrip("。"))

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现CET查分的方法
Mar 10 Python
Python脚本在Appium库上对移动应用实现自动化测试
Apr 17 Python
python使用matplotlib绘制折线图教程
Feb 08 Python
python入门前的第一课 python怎样入门
Mar 06 Python
tensorflow学习笔记之简单的神经网络训练和测试
Apr 15 Python
python自动化报告的输出用例详解
May 30 Python
django如何连接已存在数据的数据库
Aug 14 Python
基于Python实现定时自动给微信好友发送天气预报
Oct 25 Python
Python调用百度根据经纬度查询地址的示例代码
Jul 07 Python
利用python实现逐步回归
Feb 24 Python
python实现对变位词的判断方法
Apr 05 Python
使用AJAX和Django获取数据的方法实例
Oct 25 Python
Python操作MySQL数据库实例详解【安装、连接、增删改查等】
Jan 17 #Python
python实现高斯投影正反算方式
Jan 17 #Python
python中图像通道分离与合并实例
Jan 17 #Python
Python-opencv 双线性插值实例
Jan 17 #Python
如何通过python实现人脸识别验证
Jan 17 #Python
Python-openCV读RGB通道图实例
Jan 17 #Python
OpenCV python sklearn随机超参数搜索的实现
Jan 17 #Python
You might like
德生PL330测评
2021/03/02 无线电
js下函数般调用正则的方法附代码
2008/06/22 PHP
php PDO中文乱码解决办法
2009/07/20 PHP
PHP的可变变量名的使用方法分享
2012/02/05 PHP
使用PHP和HTML5 FormData实现无刷新文件上传教程
2014/09/06 PHP
PHP实现用session来实现记录用户登陆信息
2018/10/15 PHP
PHP内部实现打乱字符串顺序函数str_shuffle的方法
2019/02/14 PHP
PHPExcel实现的读取多工作表操作示例
2020/04/14 PHP
JS 强制设为首页的代码
2009/01/31 Javascript
jquery遍历input取得input的name
2009/04/27 Javascript
原生js实现给指定元素的后面追加内容
2013/04/10 Javascript
jquery自定义下拉列表示例
2014/04/25 Javascript
复制网页内容,粘贴之后自动加上网址的实现方法(脚本之家特别整理)
2014/10/16 Javascript
ANGULARJS中用NG-BIND指令实现单向绑定的例子
2014/12/08 Javascript
jQuery Easyui学习之datagrid 动态添加、移除editor
2016/01/27 Javascript
微信小程序实现点击按钮修改view标签背景颜色功能示例【附demo源码下载】
2017/12/06 Javascript
Vue自定义指令封装节流函数的方法示例
2018/07/09 Javascript
Vue异步组件处理路由组件加载状态的解决方案
2018/09/07 Javascript
浅谈JS中this在各个场景下的指向
2019/08/14 Javascript
js贪心算法 钱币找零问题代码实例
2019/09/11 Javascript
nodemon实现Typescript项目热更新的示例代码
2019/11/19 Javascript
微信小程序整个页面的自动适应布局的实现
2020/07/12 Javascript
Python多线程编程(五):死锁的形成
2015/04/05 Python
Python-嵌套列表list的全面解析
2016/06/08 Python
python 基于TCP协议的套接字编程详解
2019/06/29 Python
Python opencv相机标定实现原理及步骤详解
2020/04/09 Python
keras绘制acc和loss曲线图实例
2020/06/15 Python
html5播放视频且动态截图实现步骤与代码(支持safari其他未测试)
2013/01/06 HTML / CSS
HTML5 画布canvas使用方法
2016/03/18 HTML / CSS
马来西亚在线药房:RoyalePharma
2019/12/01 全球购物
农田水利实习自我鉴定
2013/09/19 职场文书
大学生毕业自我鉴定范文
2014/02/03 职场文书
商场客服专员岗位职责
2014/06/13 职场文书
小学捐书活动总结
2014/07/05 职场文书
2015民办小学年度工作总结
2015/05/26 职场文书
辩论赛开场白大全(主持人+辩手)
2015/05/29 职场文书