目录

前期准备

播放音频文件

录制音频文件

曾遇到的问题

其它


前期准备

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录制音频和播放音频相关推荐

  1. iOS 9音频应用播放音频之音量设置与声道设置

    iOS 9音频应用播放音频之音量设置与声道设置 iOS 9音频应用音量设置 音量又称响度.音强,是指人耳对所听到的声音大小强弱的主观感受,其客观评价尺度是声音的振幅大小.在iOS 9音频应用的应用中, ...

  2. iOS 9音频应用播放音频之iOS 9音频播放进度

    iOS 9音频应用播放音频之iOS 9音频播放进度 iOS 9音频应用开发播放进度 音频文件在播放后经过了多久以及还有多久才可以播放完毕,想必是用户所关注的问题.为了解决这一问题,在很多的音乐播放器中 ...

  3. iOS 9音频应用播放音频之控制播放速度

    iOS 9音频应用播放音频之控制播放速度 iOS 9音频控制播放速度 iOS9音频文件在播放时是以一定的速度进行的.这个速度是可以进行更改的,从而实现iOS9音频文件的快速播放和慢速播放功能.要实现i ...

  4. ​iOS 9音频应用播放音频之第一个ios9音频实例2

    ​iOS 9音频应用播放音频之第一个ios9音频实例2 ios9音频应用关联 iOS9音频应用中对于在主视图上添加的视图或控件,在使用它们时必须要与插座变量进行关联.ios9插座变量其实就是为主视图中 ...

  5. iOS 9音频应用播放音频之第一个ios9音频实例

    iOS 9音频应用播放音频之第一个ios9音频实例 第一个ios9音频实例 为了让开发者可以对上面的内容有更加深入的了解,本节将实现播放音频的第一个实例.在此实例中会涉及到项目的创建.界面设计.关联以 ...

  6. iOS 9音频应用播放音频之ios9音频基本功能

    iOS 9音频应用播放音频之ios9音频基本功能 在iOS 9音频应用开发中最为简单和常用的就是AVFoundation框架中的AVAudioPlayer类.虽然AVAudioPlayer类不能播放网 ...

  7. python录音pyaudio_用PyAudio录制特定时间的音频?

    我正在尝试使用Python和PyAudio来学习音频捕获/录制.我看了几个例子,发现了一个:import pyaudio import wave CHUNK = 2 FORMAT = pyaudio. ...

  8. android怎么播放音频,Android播放音频的两种方式

    一种使用MediaPlayer,使用这种方式通常是播放比较长的音频,如游戏中的背景音乐. 代码如下: private MediaPlayer mPlayer = null; mPlayer = Med ...

  9. java 双声道音频_Android 播放音频如何实现双声道效果

    1 使用场景 Android 无法直接采集双声道,用户如果想实现播放的音频具有双声道效果,可以参考本文. 2 实现流程 双声道效果实现的主流程为: 下文将分别讲述各个步骤. 2.1 输入双声道数据 主 ...

最新文章

  1. 聊一聊今年实例分割领域的进展和未来展望
  2. python16进制字节序_第 1 章 套接字、IPv4和简单的客户端/服务器编程
  3. 微软云服务再添新产品,这次来自两位华裔女科学家创办的AI公司
  4. 图书漂流系统的设计和研究_研究在设计系统中的作用
  5. 大神如何一招完美解决Hadoop集群无法正常关闭的问题!| 博文精选
  6. 前端开发课件 202002
  7. Broker模块划分
  8. 机器人与目标匹配问题及解决 虚拟动力学 纳什平衡 Q-Learning
  9. 换脸App爆红引发人脸盗刷担忧?看到支付宝的回应放心了...
  10. ABBYY Lingvo European for Mac(万能词典)
  11. foobar 更换皮肤
  12. 使用GDI绘制一个类似进度条的控件(1)
  13. android键盘表情流畅切换实现
  14. html中hr标签有哪些属性,hr标签的属性有哪些?
  15. 前端程序员偷懒工具:emmet语法
  16. 关于photonserver的使用心得
  17. AcWing 4783. 多米诺骨牌
  18. 抖音、快手、B站、小红书,品牌如何选对投放平台?
  19. [将小白进行到底] 如何比较两篇文章的相似度
  20. 利用nginx来屏蔽网页爬虫

热门文章

  1. Tsunami: A Learned Multi-dimensional Index for Correlated Data and SkewedWorkloads(VLDB21)
  2. 协同工作平台功能说明书
  3. 用HTML+CSS做一个简单好看的环保网页
  4. ArcGIS如何进行自动矢量化操作
  5. 李兴华课程 java学习笔记
  6. iPhone与win10传输大文件,使用局域网
  7. 在vscode中配置和使用sass
  8. 关于上海游戏行业的-SDK开发
  9. mc服务器语音,浸入式语音(Immersive Voice)|我的世界1.12.2版本
  10. 逻辑智力测试-----让你怀疑人生!!