基于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操作xml文件详细介绍
Jun 09 Python
Python性能优化技巧
Mar 09 Python
使用Python获取并处理IP的类型及格式方法
Nov 01 Python
python变量赋值方法(可变与不可变)
Jan 12 Python
python GUI实现小球满屏乱跑效果
May 09 Python
flask 使用 flask_apscheduler 做定时循环任务的实现
Dec 10 Python
python面向对象之类属性和类方法案例分析
Dec 30 Python
Python代码一键转Jar包及Java调用Python新姿势
Mar 10 Python
Python tkinter实现简单加法计算器代码实例
May 13 Python
python怎么删除缓存文件
Jul 19 Python
python获取整个网页源码的方法
Aug 03 Python
python之django路由和视图案例教程
Jul 26 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
php实现的Cookies操作类实例
2014/09/24 PHP
PHP实现双链表删除与插入节点的方法示例
2017/11/11 PHP
PHP Trait代码复用类与多继承实现方法详解
2019/06/17 PHP
Nigma vs Alliance BO5 第二场2.14
2021/03/10 DOTA
javascript下string.format函数补充
2010/08/24 Javascript
浅析JavaScript中的CSS属性及命名规范
2013/11/28 Javascript
纯javascript移动优先的幻灯片效果
2015/11/02 Javascript
微信小程序 地图定位简单实例
2016/10/14 Javascript
将鼠标焦点定位到文本框最后(代码分享)
2017/01/11 Javascript
分享一道关于闭包、bind和this的面试题
2017/02/20 Javascript
jQuery实现获取h1-h6标题元素值的方法
2017/03/06 Javascript
Bootstrap栅格系统的使用详解
2017/10/30 Javascript
node.js基于express使用websocket的方法
2017/11/09 Javascript
babel的使用及安装配置教程
2018/02/22 Javascript
用Node提供静态文件服务的方法
2018/07/06 Javascript
vue 登录滑动验证实现代码
2018/08/24 Javascript
vue项目首屏打开速度慢的解决方法
2019/03/31 Javascript
Node使用Selenium进行前端自动化操作的代码实现
2019/10/10 Javascript
javascript中的with语句学习笔记及用法
2020/02/17 Javascript
jQuery实现的移动端图片缩放功能组件示例
2020/05/01 jQuery
js 获取扫码枪输入数据的方法
2020/06/10 Javascript
Python实现partial改变方法默认参数
2014/08/18 Python
python 开发的三种运行模式详细介绍
2017/01/18 Python
利用numpy和pandas处理csv文件中的时间方法
2018/04/19 Python
python将print输出的信息保留到日志文件中
2019/09/27 Python
Numpy之将矩阵拉成向量的实例
2019/11/30 Python
法国珠宝店:CLEOR
2017/01/29 全球购物
自我鉴定200字
2013/10/28 职场文书
毕业自荐信
2013/12/16 职场文书
优秀班干部事迹材料
2014/01/26 职场文书
清洁工岗位职责
2014/01/29 职场文书
2014普法依法治理工作总结
2014/12/18 职场文书
婚礼家长致辞
2015/07/27 职场文书
2016重阳节红领巾广播稿
2015/12/18 职场文书
2016优秀教师先进个人事迹材料
2016/02/25 职场文书
《模拟人生4》推出新补丁 “婚礼奇缘”DLC终于得到修复
2022/04/03 其他游戏