当前位置:   article > 正文

【python关于声音的操作】PyAudio初识_python 声音库

python 声音库

Pyaudio是Python中一个非常流行的音频处理库,它可以用于录制、播放、处理音频数据等。在Windows上安装和使用Pyaudio需要以下步骤:

  1. 安装Python

如果你还没有安装Python,可以从官网下载并安装:https://www.python.org/downloads/windows/

  1. 安装Pyaudio

在Windows上安装Pyaudio可以使用pip命令,打开命令行窗口,输入以下命令:

pip install pyaudio
  • 1

如果你遇到了安装失败的情况,可以尝试使用以下命令:

pip install pipwin
pipwin install pyaudio
  • 1
  • 2
  1. 测试Pyaudio

安装完成后,我们可以测试一下Pyaudio是否正常工作。在命令行窗口中输入以下代码:

import pyaudio

p = pyaudio.PyAudio()
print(p.get_device_count())
  • 1
  • 2
  • 3
  • 4

如果输出了设备数量,则说明Pyaudio已经安装成功。

  1. 录制音频

使用Pyaudio录制音频需要以下步骤:

import pyaudio
import wave

# 设置录音参数
'''
在音频处理中,chunk(也称为帧)是指音频信号中的一小段连续采样数据。每个chunk通常包含几毫秒到几百毫秒的音频数据,具体取决于采
样率和帧率。在数字音频中,chunk是数字信号的基本单位,它们被用于压缩、存储、传输和处理音频数据。在音频处理中,通常需要对每个
chunk进行分析、处理或转换,以实现各种音频效果和功能。
'''
CHUNK = 1024
'''
`pyaudio.paInt16` 是 PyAudio 库中的一个常量,表示采样格式为 16 位整型的音频数据。在 PyAudio 中,采样格式是指每个采样点的编
码方式,常见的采样格式还有 `pyaudio.paFloat32`(32 位浮点型)和 `pyaudio.paInt32`(32 位整型)等。采样格式的选择取决于应用
场景和硬件设备的支持情况
'''
FORMAT = pyaudio.paInt16

CHANNELS = 1
RATE = 44100
RECORD_SECONDS = 5
WAVE_OUTPUT_FILENAME = "output.wav"

# 初始化Pyaudio
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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54

这段代码会录制5秒钟的音频,并保存到output.wav文件中。

  1. 播放音频

使用Pyaudio播放音频需要以下步骤:

import pyaudio
import wave

# 打开音频文件
wf = wave.open("output.wav", 'rb')

# 初始化Pyaudio
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(1024)
while data != b'':
    stream.write(data)
    data = wf.readframes(1024)

# 关闭音频流
stream.stop_stream()
stream.close()
p.terminate()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

这段代码会播放output.wav文件中的音频。

  1. 延伸使用

Pyaudio还可以用于音频处理、实时音频分析等方面。如果你想深入了解Pyaudio的使用,可以参考官方文档:https://people.csail.mit.edu/hubert/pyaudio/docs/

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/爱喝兽奶帝天荒/article/detail/742408
推荐阅读
相关标签
  

闽ICP备14008679号