加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

语音识别-准备工作-Python Pyaudio使用

(2018-01-08 15:11:55)
分类: 编程经验

环境搭建


平台:windows 10 64bit


Python

一.下载

    下载地址:http://www.python.org/getit/

    根据PC位数和操作系统,下载合适的Python版本。

二.安装

     下载完直接安装,便可以开始Python之旅啦!

 

PyAudio

由于Python相当轻量级,安装的Python只提供了最基本的一些功能。根据个人需求,下载相应的库。

本人打算做语音识别,故下载了PyAudio。

一.下载

     下载地址:http://people.csail.mit.edu/hubert/pyaudio/

      根据操作系统和Python版本,下载合适的PyAudio版本。

二.安装

      下载完直接安装(路径默认)。

 

播放wave文件的实例

#引入库
import wave
import pyaudio

#定义数据流块
chunk = 1024

#只读方式打开wav文件
f = wave.open(r"F:\that.wav","rb")

p = pyaudio.PyAudio()

#打开数据流
stream = p.open(format = p.get_format_from_width(f.getsampwidth()),
channels = f.getnchannels(),
rate = f.getframerate(),
output = True)

#读取数据
data = f.readframes(chunk)

#播放
while data !="":
stream.write(data)
data = f.readframes(chunk)

#停止数据流
stream.stop_stream()
stream.close()

#关闭 PyAudio
p.terminate()

 


录音实例

#引入库
import wave
import pyaudio

#参数定义
CHUNK = 1024
FORMAT = pyaudio.paInt16
CHANNELS = 2
RATE = 44100
RECORD_SECONDS = 5
WAVE_OUTPUT_FILENAME = "F:\output.wav"


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()
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()


0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有