pyaudio录制音频和播放音频
目录
前期准备
播放音频文件
录制音频文件
曾遇到的问题
其它
前期准备
pip install pyaudio wave
播放音频文件
import pyaudio
import waveCHUNK = 1024
audio_file = 'output.wav'
wf = wave.open(audio_file, 'rb')
p = pyaudio.PyAudio()stream = p.open(format=p.get_format_from_width(wf.getsampwidth()),channels=wf.getnchannels(),rate=wf.getframerate(),output=True)data = wf.readframes(CHUNK)while data != b"":stream.write(data)data = wf.readframes(CHUNK)stream.stop_stream()
stream.close()
p.terminate()
录制音频文件
import pyaudio
import waveCHUNK = 1024
FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 44100
RECORD_SECONDS = 5
WAVE_OUTPUT_FILENAME = "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()
检测声音并播放
import sysimport pyaudioRECORD_SECONDS = 5
CHUNK = 1024
RATE = 44100p = pyaudio.PyAudio()
stream = p.open(format=p.get_format_from_width(2),channels=1 if sys.platform == 'darwin' else 2,rate=RATE,input=True,output=True,frames_per_buffer=CHUNK)print('* recording')
for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):stream.write(stream.read(CHUNK))
print('* done')stream.close()
p.terminate()
检测声音并播放-用callback方式
import time
import sysimport pyaudioDURATION = 5 # secondsdef callback(in_data, frame_count, time_info, status):return (in_data, pyaudio.paContinue)p = pyaudio.PyAudio()
stream = p.open(format=p.get_format_from_width(2),channels=1 if sys.platform == 'darwin' else 2,rate=44100,input=True,output=True,stream_callback=callback)start = time.time()
while stream.is_active() and (time.time() - start) < DURATION:time.sleep(0.1)stream.close()
p.terminate()
曾遇到的问题
如果你的电脑是Mac M1的话,安装pyaudio可能会遇到问题。可以看下面的博客去解决。
[Mac M1] 错误xcrun: error: (/Library/Developer/CommandLineTools) || #include “portaudio.h“_茫茫人海一粒沙的博客-CSDN博客
其它
免费下载wav 音频的网站
人类 音效 wav 免费下载 - 爱给网
参考资料
PyAudio: Cross-platform audio I/O for Python, with PortAudio
基于 Python 的声音检测:PyAudio - 简书
pyaudio录制音频和播放音频相关推荐
- iOS 9音频应用播放音频之音量设置与声道设置
iOS 9音频应用播放音频之音量设置与声道设置 iOS 9音频应用音量设置 音量又称响度.音强,是指人耳对所听到的声音大小强弱的主观感受,其客观评价尺度是声音的振幅大小.在iOS 9音频应用的应用中, ...
- iOS 9音频应用播放音频之iOS 9音频播放进度
iOS 9音频应用播放音频之iOS 9音频播放进度 iOS 9音频应用开发播放进度 音频文件在播放后经过了多久以及还有多久才可以播放完毕,想必是用户所关注的问题.为了解决这一问题,在很多的音乐播放器中 ...
- iOS 9音频应用播放音频之控制播放速度
iOS 9音频应用播放音频之控制播放速度 iOS 9音频控制播放速度 iOS9音频文件在播放时是以一定的速度进行的.这个速度是可以进行更改的,从而实现iOS9音频文件的快速播放和慢速播放功能.要实现i ...
- iOS 9音频应用播放音频之第一个ios9音频实例2
iOS 9音频应用播放音频之第一个ios9音频实例2 ios9音频应用关联 iOS9音频应用中对于在主视图上添加的视图或控件,在使用它们时必须要与插座变量进行关联.ios9插座变量其实就是为主视图中 ...
- iOS 9音频应用播放音频之第一个ios9音频实例
iOS 9音频应用播放音频之第一个ios9音频实例 第一个ios9音频实例 为了让开发者可以对上面的内容有更加深入的了解,本节将实现播放音频的第一个实例.在此实例中会涉及到项目的创建.界面设计.关联以 ...
- iOS 9音频应用播放音频之ios9音频基本功能
iOS 9音频应用播放音频之ios9音频基本功能 在iOS 9音频应用开发中最为简单和常用的就是AVFoundation框架中的AVAudioPlayer类.虽然AVAudioPlayer类不能播放网 ...
- python录音pyaudio_用PyAudio录制特定时间的音频?
我正在尝试使用Python和PyAudio来学习音频捕获/录制.我看了几个例子,发现了一个:import pyaudio import wave CHUNK = 2 FORMAT = pyaudio. ...
- android怎么播放音频,Android播放音频的两种方式
一种使用MediaPlayer,使用这种方式通常是播放比较长的音频,如游戏中的背景音乐. 代码如下: private MediaPlayer mPlayer = null; mPlayer = Med ...
- java 双声道音频_Android 播放音频如何实现双声道效果
1 使用场景 Android 无法直接采集双声道,用户如果想实现播放的音频具有双声道效果,可以参考本文. 2 实现流程 双声道效果实现的主流程为: 下文将分别讲述各个步骤. 2.1 输入双声道数据 主 ...
最新文章
- 聊一聊今年实例分割领域的进展和未来展望
- python16进制字节序_第 1 章 套接字、IPv4和简单的客户端/服务器编程
- 微软云服务再添新产品,这次来自两位华裔女科学家创办的AI公司
- 图书漂流系统的设计和研究_研究在设计系统中的作用
- 大神如何一招完美解决Hadoop集群无法正常关闭的问题!| 博文精选
- 前端开发课件 202002
- Broker模块划分
- 机器人与目标匹配问题及解决 虚拟动力学 纳什平衡 Q-Learning
- 换脸App爆红引发人脸盗刷担忧?看到支付宝的回应放心了...
- ABBYY Lingvo European for Mac(万能词典)
- foobar 更换皮肤
- 使用GDI绘制一个类似进度条的控件(1)
- android键盘表情流畅切换实现
- html中hr标签有哪些属性,hr标签的属性有哪些?
- 前端程序员偷懒工具:emmet语法
- 关于photonserver的使用心得
- AcWing 4783. 多米诺骨牌
- 抖音、快手、B站、小红书,品牌如何选对投放平台?
- [将小白进行到底] 如何比较两篇文章的相似度
- 利用nginx来屏蔽网页爬虫
热门文章
- Tsunami: A Learned Multi-dimensional Index for Correlated Data and SkewedWorkloads(VLDB21)
- 协同工作平台功能说明书
- 用HTML+CSS做一个简单好看的环保网页
- ArcGIS如何进行自动矢量化操作
- 李兴华课程 java学习笔记
- iPhone与win10传输大文件,使用局域网
- 在vscode中配置和使用sass
- 关于上海游戏行业的-SDK开发
- mc服务器语音,浸入式语音(Immersive Voice)|我的世界1.12.2版本
- 逻辑智力测试-----让你怀疑人生!!