pyaudio
1、相关网站
GitHub仓库
https://github.com/jleb/pyaudio
英文文档
PyAudio Documentation — PyAudio 0.2.14 documentation (mit.edu)
2、安装
直接pip install pyaudio 或者 conda install pyaudio 会出现问题,直接下载whl文件,然后pip install 安装
https://github.com/intxcc/pyaudio_portaudio/releases
3、相关概念
音频:人耳可以听到的声音频率在20HZ~20kHz之间的声波,称为音频。
声道:声道(Sound Channel) 是指声音在录制或播放时在不同空间位置采集或回放的相互独立的音频信号,所以声道数也就是声音录制时的音源数量或回放时相应的扬声器数量。
采样率:音频采样率通常是指在数字音频处理和录制中,录音设备每秒钟对模拟音频信号进行采样的次数。
音频格式:
WAV:WAV是Windows操作系统中的标准音频格式,由微软公司开发。WAV文件扩展名为“.wav”,支持多种音频位数、采样频率和声道,是一种无损音乐格式,被广泛用于音频录制、编辑和播放等领域。
MP3:MP3是一种广泛使用的有损音频压缩格式,由德国弗朗霍夫研究所开发。MP3文件扩展名为“.mp3”,通过去除音频中的冗余信息来降低文件大小,但在音质上会有一些损失。由于其良好的压缩效果和广泛的兼容性,MP3格式在音频播放、下载和流媒体等领域得到广泛应用。
AAC:AAC(Advanced Audio Coding)是一种有损音频编码标准,由AT&T、索尼和诺基亚等公司共同开发。AAC文件扩展名为“.aac”或“.m4a”,在音质和压缩率上表现优秀,被广泛应用于音乐播放、流媒体和广播等领域。
FLAC:FLAC是一种无损音频压缩格式,由http://Xiph.Org Foundation开发。FLAC文件扩展名为“.flac”,采用无损压缩算法,可以保留音频的原始质量。由于其无损特性和较高的压缩率,FLAC格式在音频爱好者和音乐发烧友中备受欢迎。
OGG:OGG是一种开源的无损音频压缩格式,由http://Xiph.Org Foundation开发。OGG文件扩展名为“.ogg”,采用多种音频编码技术,支持多声道和高清音频。由于其开源特性和良好的音质,OGG格式在音频制作、网络广播和流媒体等领域得到应用。
4、pyaudio 录音
import pyaudio
import wave
import numpy as np
# 配置参数
CHUNK = 1024 # 每次读取的字节数
FORMAT = pyaudio.paInt16 # 音频格式
CHANNELS = 1 # 声道数
RATE = 44100 # 采样率
RECORD_SECONDS = 4 # 录音时长(秒)
WAVE_OUTPUT_FILENAME = "record_audio.wav" # 输出文件名
# 创建 PyAudio 对象
p = pyaudio.PyAudio()
# 打开流
stream = p.open(format=FORMAT,
channels=CHANNELS,
rate=RATE,
input=True,
frames_per_buffer=CHUNK)
print("开始录音...")
# 录制音频
frames = []
for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
data = stream.read(CHUNK)
frames.append(data)
print("录音结束.")
# 停止并关闭流
stream.stop_stream()
stream.close()
# 释放 PyAudio 对象
p.terminate()
# 保存音频为WAV文件
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()
print("音频已保存为", WAVE_OUTPUT_FILENAME)