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编程从电脑端录制音频保存到指定文件夹+将录音上传服务器+录音进行识别并转为文本保存相关推荐

  1. 利用python批量查询企业信息_python实现批量获取指定文件夹下的所有文件的厂商信息...

    本文实例讲述了python实现批量获取指定文件夹下的所有文件的厂商信息的方法.分享给大家供大家参考.具体如下: 功能代码如下: import os, string, shutil,re import ...

  2. CV:基于Keras利用CNN主流架构之mini_XCEPTION训练情感分类模型hdf5并保存到指定文件夹下

    CV:基于Keras利用CNN主流架构之mini_XCEPTION训练情感分类模型hdf5并保存到指定文件夹下 目录 图示过程 核心代码 图示过程 核心代码 def mini_XCEPTION(inp ...

  3. CV:基于Keras利用CNN主流架构之mini_XCEPTION训练性别分类模型hdf5并保存到指定文件夹下

    CV:基于Keras利用CNN主流架构之mini_XCEPTION训练性别分类模型hdf5并保存到指定文件夹下 目录 图示过程 核心代码 图示过程 核心代码 from keras.callbacks ...

  4. Py:利用pyautogui实现自动将pdf文件(需手动设定pdf总页数)自动翻页并截取另存为图片形式,或自动隔0.1秒自动截笔记本全屏保存到指定文件夹

    Py:利用pyautogui实现自动将pdf文件(需手动设定pdf总页数)自动翻页并截取另存为图片形式,或自动隔0.1秒自动截笔记本全屏保存到指定文件夹 目录 实现步骤和结果 核心代码 实现步骤和结果 ...

  5. python opencv 从Intel Realsense D435 视频流中读取并显示帧,按下空格将图像保存到指定文件夹,按下回车自动以一定时间间隔保存图像至指定文件夹

    参考文章1:opencv之读入一幅图像,显示图像以及如何保存一副图像,基础操作 参考文章2:python-OpenCV2中 cv2.VideoCapture(),read(),waitKey()的使用 ...

  6. python保存到指定文件夹_Python文件夹与文件的相关操作(推荐)

    最近在写的程序频繁地与文件操作打交道,这块比较弱,还好在百度上找到一篇不错的文章,这是原文传送门,我对原文稍做了些改动. 有关文件夹与文件的查找,删除等功能 在 os 模块中实现.使用时需先导入这个模 ...

  7. Win10此电脑视频、图片等7个文件夹怎么去除

    使用Windows10电脑的时候,很多朋友发现,我们打开此电脑以后,在此电脑中默认是显示6个文件夹的,如"视频.图片.文档.下载.音乐.桌面"那么我们怎么快速的去除这6个文件夹,让 ...

  8. python 循环播放音乐_pyaudio:基于pyaudio利用Python编程实现播放音频mp3、wav等格式文件...

    基于pyaudio利用Python编程实现播放音频mp3.wav等格式文件 T1.while循环输出数据流的方法def play(): chunk=1024 #2014kb wf=wave.open( ...

  9. pyaudio:基于pyaudio利用Python编程实现播放音频mp3、wav等格式文件

    基于pyaudio利用Python编程实现播放音频mp3.wav等格式文件 目录 输出结果 实现代码 输出结果 实现代码 T1.while循环输出数据流的方法 def play():chunk=102 ...

最新文章

  1. 使用Runtime执行推理(C++)
  2. 开机f8修复电脑步骤_知识 | 8种方法修复电脑无法开机问题
  3. mysql centos7 默认密码忘记_centos7 mysql忘记密码解决办法
  4. 腾讯数字生态大会倒计时4天:请收下这份最全的TEG参会攻略~
  5. Silverlight与Flash的技术比较(图)
  6. javascript / jquery 操作 cookie
  7. 鲜花海报设计没有思路?看这里吧!
  8. FreeBSD 查看USB
  9. java函数ao活动对象_JS之预编译和执行顺序(全局和函数)
  10. (转)内存整理的原理 整理自CSDN
  11. 【CSP201312-3】最大的矩形,单调栈
  12. 高仿QQ顶部控件之IOS SegmentView
  13. 制定自己的SMART目标
  14. 电脑常见故障及解决方法
  15. VBM计算操作过程记录
  16. 搜索引擎那些你不知道的事
  17. 无法打开匿名级安全令牌——CV明
  18. 程序员的人生——应届生北漂的第三天
  19. 请教一下水卡校验算法
  20. 2022年全球市场柠檬酸酯总体规模、主要生产商、主要地区、产品和应用细分研究报告

热门文章

  1. 生态聚伙伴 方案联价值 华为首次发布企业业务解决方案伙伴计划
  2. 合并两个有序数组为一个新的有序数组
  3. 狡猾无比的超级网络间谍
  4. 7 种 JVM 垃圾收集器,看完我跪了。。
  5. 操作系统的极简教程(二)
  6. 终于有篇看的懂的 B 树文章了!
  7. 指明方向与趋势!2019开发者技能报告出炉!!!
  8. Linux思维导图整理,你确定不收藏?
  9. Android --- android.view.InflateException: Binary XML file line #7: Binary XML file lin... 类似问题的解决办法
  10. 惠普微型计算机怎么样,垃圾佬的养成①日记之惠普HP 400G3 DM迷你小主机入手日记...