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

这篇文章主要介绍了如何通过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("。"))

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

(0)

相关推荐

  • Python实现简单的语音识别系统

    最近认识了一个做Python语音识别的朋友,聊天时候说到,未来五到十年,Python人工智能会在国内掀起一股狂潮,对各种应用的冲击,不下于淘宝对实体经济的冲击.在本地(江苏某三线城市)做这一行,短期可能显不出效果,但从长远来看,绝对是一个高明的选择.朋友老家山东的,毕业来这里创业,也是十分有想法啊. 将AI课上学习的知识进行简单的整理,可以识别简单的0-9的单个语音.基本方法就是利用库函数提取mfcc,然后计算误差矩阵,再利用动态规划计算累积矩阵.并且限制了匹配路径的范围.具体的技术网上很多,不

  • python调用百度REST API实现语音识别

    目前,语音识别,即将语音内容转换为文字的技术已经比较成熟,遥想当时锤子发布会上展示的讯飞输入法语音识别,着实让讯飞火了一把.由于此类语音识别需要采集大量的样本,才能达到一定的准确度,个人很难从零开始搭建.但是,许多拥有语音识别技术的公司,或多或少会提供一些API或者SDK供开发者使用,这样就把语音识别的门槛降到了一个很低的程度,只需几行代码即可实现.下面我介绍以下如何使用Python调用百度的REST API实现一个简单的语音识别. 注册账号,并成为开发者 打开 http://yuyin.bai

  • python调用百度语音识别api

    最近在处理语音检索相关的事. 其中用到语音识别,调用的是讯飞与百度的api,前者使用js是实现,后者用python3实现(因为自己使用python) 环境: python3.5 centos 7 流程 整个百度语音识别rest api 使用分为三部分: 1 (申请操作)创建应用,获取应用的 API Key 以及 Secret Key. 2 (程序实现)通过已知的 应用的 API Key 以及 Secret Key, 发送post 请求到 https://openapi.baidu.com/oau

  • python版百度语音识别功能

    本文实例为大家分享了python版百度语音识别功能的具体代码,供大家参考,具体内容如下 环境:使用的IDE是Pycharm 1.新建工程 2.配置百度语音识别环境 "File"--"Settings"打开设置面板,"Project"标签下添加Project Interpreter,点击右侧"+" 输入"baidu-aip",进行安装 新建测试文件 from aip import AipSpeech &quo

  • python语音识别实践之百度语音API

    百度语音对上传的语音要求目前必须是单声道,16K采样率,采样深度可以是16位或者8位的PCM编码.其他编码输出的语音识别不出来. 语音的处理技巧: 录制为MP3的语音(通常采样率为44100),要分两步才能正确处理.第一步:使用诸如GoldWave的软件,先保存为16K采样率的MP3:第二步,打开16K采样率的MP3,另存为Wav格式,参数选择PCM,单声道即可. 另外,也可以使用ffmpeg将MP3处理为PCM.后文的程序即采用这种方法. 由于PCM编码的语音没有压缩,文件体积与语音长度成正比

  • python实现百度语音识别api

    本文实例为大家分享了ython实现百度语音识别的具体代码,供大家参考,具体内容如下 详细百度语音识别api文档 先下载python用SDK,可以用python setup.py install安装 # 引入Speech SDK from aip import AipSpeech # 定义常量 APP_ID = '你的 App ID' API_KEY = '你的 API Key' SECRET_KEY = '你的 Secret Key' # 初始化AipSpeech对象 aipSpeech = A

  • python调用百度语音识别实现大音频文件语音识别功能

    本文为大家分享了python实现大音频文件语音识别功能的具体代码,供大家参考,具体内容如下 实现思路:先用ffmpeg将其他非wav格式的音频转换为wav格式,并转换音频的声道(百度支持声道为1),采样率(值为8000),格式转换完成后,再用ffmpeg将音频切成百度. 支持的时长(30秒和60秒2种,本程序用的是30秒). # coding: utf-8 import json import time import base64 from inc import rtysdb import ur

  • Python语言实现百度语音识别API的使用实例

    未来的一段时间,人工智能在市场上占有很重的位置,Python语言则是研究人工智能的最佳编程语言,下面,就让我们来感受一下它的魅力吧! 百度给的样例程序,不论C还是Java版,都分为method1和method2两种 前者称为隐式(post的是json串,音频数据编码到json里),后者称为显式(post的就是音频数据) 一开始考虑到pythonwave包处理的都是"字符串",担心跟C语言的数组不一致,所以选择低效但保险的method1, 即先将音频数据base64编码,再加上采样率.通

  • 对Python 语音识别框架详解

    如下所示: from win32com.client import constants import os import win32com.client import pythoncom speaker = win32com.client.Dispatch("SAPI.SPVOICE") class SpeechRecognition: def __init__(self, wordsToAdd): self.speaker = win32com.client.Dispatch(&qu

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

    这篇文章主要介绍了如何通过python实现语音录入识别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.介绍 1.第一步录音存入本地 2.调用百度语音识别sdk 注意点:百度语音识别对声音源有要求,比特率必须是256kbps 二.代码 #安装必要库 pip install baidu-aip #百度sdk pip install pyaudio import wave import pyaudio from aip import AipSpe

  • 基于python判断目录或者文件代码实例

    这篇文章主要介绍了基于python判断目录或者文件代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1. 判断目录是否存在 'isdir',删除目录时只有该目录为空才可以 'rmdir' import os if(os.path.isdir('D:/Python_workspace/spyder_space/test_各种功能/哈哈哈哈')): #判断目录是否存在 print('yes') os.rmdir('D:/Python_work

  • 基于python生成英文版词云图代码实例

    使用wordcloud模块,生成云图,测试文本为: Betty Botter bought some butter but she said the butter's bitter. If I put it in my batter it will make my batter bitter. So, she bought some better butter, better than the bitter butter and she put it in her batter and her

  • 基于Python下载网络图片方法汇总代码实例

    本文介绍下载python下载网络图片的方法,包括通过图片url直接下载.通过re/beautifulSoup解析html下载以及对动态网页的处理等. 通过pic_url单个/批量下载 已知图片url,例如http://xyz.com/series-*(1,2..N).jpg,共N张图片,其链接形式较为固定,这样经简单循环,直接通过`f.write(requests.get(url).content)'即可以二进制形式将图片写入. import os import requests def dow

  • 基于Python实现下载网易音乐代码实例

    代码如下 # 爬取网易音乐 import requests from bs4 import BeautifulSoup import urllib.request headers = {"origin": "https://music.163.com", "referer": "https://music.163.com/", "user-agent": "Mozilla/5.0 (Windows

  • 基于python模拟bfs和dfs代码实例

    BFS """ # @Time : 2020/11/8 # @Author : Jimou Chen """ # 广搜 def bfs(graph, start): queue = [start] # 先把起点入队列 visited = set() # 访问国的点加入 visited.add(start) while len(queue): vertex = queue.pop(0) # 找到队列首元素的连接点 for v in graph[ve

  • 基于python实现音乐播放器代码实例

    核心播放模块(pygame内核) import time import pygame import easygui as gui file = r'D:\CloudMusic\G.E.M.邓紫棋,艾热 - 光年之外 (热爱版).mp3' #这里为音乐文件路径 pygame.mixer.init() gui.msgbox("正在播放"+file) track = pygame.mixer.music.load(file) pygame.mixer.music.play() time.sl

  • 基于Python socket的端口扫描程序实例代码

    本文研究的主要是Python的端口扫描程序,具体实例代码如下. 先来看看第一个端口扫描程序代码,获取本机的IP和端口号: import socket def get_my_ip(): try: csock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) csock.connect(('8.8.8.8', 80)) (addr, port) = csock.getsockname() csock.close() return addr,port

  • python基于gevent实现并发下载器代码实例

    这篇文章主要介绍了python基于gevent实现并发下载器代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 并发下载原理 import gevent from gevent import monkey import urllib.request monkey.patch_all() def my_download(url): print('GET: %s' % url) resp = urllib.request.urlopen(url

  • 基于Python编写一个图片识别系统

    目录 项目介绍 环境准备 程序原理 实现脚本 测试效果 总结 项目介绍 本项目将使用python3去识别图片是否为色情图片,会使用到PIL这个图像处理库,并且编写算法来划分图像的皮肤区域 介绍一下PIL: PIL(Python Image Library)是一种免费的图像处理工具包,这个软件包提供了基本的图像处理功能,如:改变图像大小,旋转图像,图像格式转化,色场空间转换(这个我不太懂),图像增强(就是改善清晰度,突出图像有用信息),直方图处理,插值(利用已知邻近像素点的灰度值来产生未知像素点的

随机推荐