pyaudio:基于pyaudio利用Python编程从电脑端录制音频保存到指定文件夹+将录音上传服务器+录音进行识别并转为文本保存
pyaudio:基于pyaudio利用Python编程从电脑端录制音频保存到指定文件夹+将录音上传服务器+录音进行识别并转为文本保存
目录
输出结果
代码实现
输出结果
代码实现
# -*- coding: utf-8 -*-#pyaudio:利用pyaudio从电脑端录制音频保存到指定文件夹+将录音上传服务器+录音进行识别并转为文本保存
import wave
from pyaudio import PyAudio,paInt16import urllib #urllib2
import pycurl
import urllib.request as urllib2
import json framerate=8000 #采样率
NUM_SAMPLES=2000 #采样点
channels=1 #一个声道
sampwidth=2 #两个字节十六位
TIME=2 #条件变量,可以设置定义录音的时间def save_wave_file(filename, data): #save the date to the wav filewf = wave.open(filename, 'wb') #二进制写入模式wf.setnchannels(channels) wf.setsampwidth(sampwidth) #两个字节16位wf.setframerate(framerate) #帧速率wf.writeframes(b"".join(data)) #把数据加进去,就会存到硬盘上去wf.writeframes(b"".join(data)) wf.close()def my_record():pa=PyAudio()stream=pa.open(format=paInt16,channels=1,rate=framerate,input=True,frames_per_buffer=NUM_SAMPLES)my_buf=[]count=0 #while count < TIME*8: #循环2*20次string_audio_data=stream.read(NUM_SAMPLES) #每读完2000个采样加1my_buf.append(string_audio_data)count+=1print('当前正在录音(同时录制系统内部和麦克风的声音)……')save_wave_file('03.wav',my_buf) #文件保存stream.close()def dump_res(buf): #dump_res即dump_result,buf是curl从网上返回来的缓存print(buf)my_temp=json.loads(buf)my_list=my_temp['result']print(type(my_list))print(my_list[0]) #输出第一个print('dump_res函数调用成功!')def get_token(): #获取tokenapikey='2KeNr6nK6ZmMKAbdlM5PUaSC'secretkey='QuDTqg1cMehfwvvyKmZyifAnCoGFiZ3g'auth_url='https://openapi.baidu.com/oauth/2.0/token?grant_type=client_credentials&client_id='+apikey+'&client_secret='+secretkey; #res=urllib2.urlopen(auth_url) #获取服务器响应,res=urllib2.urlopen(auth_url) json_data=res.read() #读取到json_data中print(json_data,type(json_data))return json.loads(json_data)['access_token']def use_cloud(token): #token类似一种访问权限等fp=wave.open(u'16k.wav','rb') #打开wav文件nf=fp.getnframes() #获得文件的采样点数量print('sampwidth',fp.getsampwidth())print('framerate',fp.getframerate())print('channels',fp.getnchannels())f_len=nf*2 #获取文件长度,文件长度计算,每个采样点2个字节audio_data=fp.readframes(nf) #cuid="XXXXXXXXXX" #硬件地址,my phone xiaomi MACprint(token)srv_url='http://vop.baidu.com/server_api'+'?cuid='+cuid+'&token='+tokenhttp_header=['Content-Type:audio/pcm;rate=8000', #音频,原先是pcm,可以改为wav'Content-length:%d:' % f_len]c=pycurl.Curl() #实例化curlc.setopt(pycurl.URL,str(srv_url)) #(网址) c.setopt(c.HTTPHEADER, http_header) #网址头部 c.setopt(c.POST, 1) #1表示调用post方法而不是get c.setopt(c.CONNECTTIMEOUT,80) #超时中断 c.setopt(c.TIMEOUT,80) #下载超时 c.setopt(c.WRITEFUNCTION,dump_res) #返回数据,dump_res,进行回调 c.setopt(c.POSTFIELDS,audio_data) #数据 c.setopt(c.POSTFIELDSIZE,f_len) #文件大小c.perform() #提交, pycurl.perform()print('use_cloud函数over!')if __name__ == "__main__":
# my_record()print('录音结束!')token = get_token() use_cloud(token)print('over!')
相关文章
ASR:基于pyaudio利用python进行语音生成、语音识别总结及其案例详细攻略
pyaudio:基于pyaudio利用Python编程从电脑端录制音频保存到指定文件夹+将录音上传服务器+录音进行识别并转为文本保存相关推荐
- 利用python批量查询企业信息_python实现批量获取指定文件夹下的所有文件的厂商信息...
本文实例讲述了python实现批量获取指定文件夹下的所有文件的厂商信息的方法.分享给大家供大家参考.具体如下: 功能代码如下: import os, string, shutil,re import ...
- CV:基于Keras利用CNN主流架构之mini_XCEPTION训练情感分类模型hdf5并保存到指定文件夹下
CV:基于Keras利用CNN主流架构之mini_XCEPTION训练情感分类模型hdf5并保存到指定文件夹下 目录 图示过程 核心代码 图示过程 核心代码 def mini_XCEPTION(inp ...
- CV:基于Keras利用CNN主流架构之mini_XCEPTION训练性别分类模型hdf5并保存到指定文件夹下
CV:基于Keras利用CNN主流架构之mini_XCEPTION训练性别分类模型hdf5并保存到指定文件夹下 目录 图示过程 核心代码 图示过程 核心代码 from keras.callbacks ...
- Py:利用pyautogui实现自动将pdf文件(需手动设定pdf总页数)自动翻页并截取另存为图片形式,或自动隔0.1秒自动截笔记本全屏保存到指定文件夹
Py:利用pyautogui实现自动将pdf文件(需手动设定pdf总页数)自动翻页并截取另存为图片形式,或自动隔0.1秒自动截笔记本全屏保存到指定文件夹 目录 实现步骤和结果 核心代码 实现步骤和结果 ...
- python opencv 从Intel Realsense D435 视频流中读取并显示帧,按下空格将图像保存到指定文件夹,按下回车自动以一定时间间隔保存图像至指定文件夹
参考文章1:opencv之读入一幅图像,显示图像以及如何保存一副图像,基础操作 参考文章2:python-OpenCV2中 cv2.VideoCapture(),read(),waitKey()的使用 ...
- python保存到指定文件夹_Python文件夹与文件的相关操作(推荐)
最近在写的程序频繁地与文件操作打交道,这块比较弱,还好在百度上找到一篇不错的文章,这是原文传送门,我对原文稍做了些改动. 有关文件夹与文件的查找,删除等功能 在 os 模块中实现.使用时需先导入这个模 ...
- Win10此电脑视频、图片等7个文件夹怎么去除
使用Windows10电脑的时候,很多朋友发现,我们打开此电脑以后,在此电脑中默认是显示6个文件夹的,如"视频.图片.文档.下载.音乐.桌面"那么我们怎么快速的去除这6个文件夹,让 ...
- python 循环播放音乐_pyaudio:基于pyaudio利用Python编程实现播放音频mp3、wav等格式文件...
基于pyaudio利用Python编程实现播放音频mp3.wav等格式文件 T1.while循环输出数据流的方法def play(): chunk=1024 #2014kb wf=wave.open( ...
- pyaudio:基于pyaudio利用Python编程实现播放音频mp3、wav等格式文件
基于pyaudio利用Python编程实现播放音频mp3.wav等格式文件 目录 输出结果 实现代码 输出结果 实现代码 T1.while循环输出数据流的方法 def play():chunk=102 ...
最新文章
- 使用Runtime执行推理(C++)
- 开机f8修复电脑步骤_知识 | 8种方法修复电脑无法开机问题
- mysql centos7 默认密码忘记_centos7 mysql忘记密码解决办法
- 腾讯数字生态大会倒计时4天:请收下这份最全的TEG参会攻略~
- Silverlight与Flash的技术比较(图)
- javascript / jquery 操作 cookie
- 鲜花海报设计没有思路?看这里吧!
- FreeBSD 查看USB
- java函数ao活动对象_JS之预编译和执行顺序(全局和函数)
- (转)内存整理的原理 整理自CSDN
- 【CSP201312-3】最大的矩形,单调栈
- 高仿QQ顶部控件之IOS SegmentView
- 制定自己的SMART目标
- 电脑常见故障及解决方法
- VBM计算操作过程记录
- 搜索引擎那些你不知道的事
- 无法打开匿名级安全令牌——CV明
- 程序员的人生——应届生北漂的第三天
- 请教一下水卡校验算法
- 2022年全球市场柠檬酸酯总体规模、主要生产商、主要地区、产品和应用细分研究报告
热门文章
- 生态聚伙伴 方案联价值 华为首次发布企业业务解决方案伙伴计划
- 合并两个有序数组为一个新的有序数组
- 狡猾无比的超级网络间谍
- 7 种 JVM 垃圾收集器,看完我跪了。。
- 操作系统的极简教程(二)
- 终于有篇看的懂的 B 树文章了!
- 指明方向与趋势!2019开发者技能报告出炉!!!
- Linux思维导图整理,你确定不收藏?
- Android --- android.view.InflateException: Binary XML file line #7: Binary XML file lin... 类似问题的解决办法
- 惠普微型计算机怎么样,垃圾佬的养成①日记之惠普HP 400G3 DM迷你小主机入手日记...