PyAudio PortAudio Windows音频录制完全指南

PyAudio PortAudio Windows音频录制完全指南

【免费下载链接】pyaudio_portaudio A fork to record speaker output with python. PyAudio with PortAudio for Windows | Extended | Loopback | WASAPI | Latest precompiled Version 【免费下载链接】pyaudio_portaudio 项目地址: https://gitcode.com/gh_mirrors/py/pyaudio_portaudio

项目概述

PyAudio PortAudio是一个专为Windows系统优化的音频录制工具,特别增强了循环回放功能。该项目基于PyAudio和PortAudio V19两大音频处理库,提供了强大的音频输入输出能力,让开发者能够轻松实现高质量音频录制。

核心特性

  • 循环回放录制:支持录制扬声器输出的音频内容
  • WASAPI支持:利用Windows高级音频会话接口提升音频质量
  • 静态链接:预编译版本已静态链接PortAudio库
  • 设备自动识别:智能检测音频设备并优化配置参数

环境准备

在开始安装前,请确保系统满足以下要求:

  • Windows操作系统
  • Python 3.7或更高版本
  • 必要的开发工具(根据选择的安装方式)

安装方法

方法一:使用预编译版本(推荐)

项目提供了预编译的PyAudio版本,静态链接了PortAudio库。这是最简单快捷的安装方式。

方法二:从源码编译

Cygwin环境安装
  1. 获取源码
git clone https://gitcode.com/gh_mirrors/py/pyaudio_portaudio.git
  1. 配置环境
find . -type f -exec sed -i 's/\x0d//g' {} \+
  1. 编译PortAudio
cd pyaudio/portaudio-v19
./configure --with-winapi=wasapi --enable-static=yes --enable-shared=no
make loopback
  1. 安装PyAudio
cd ../..
python setup.py install --static-link
Visual Studio环境安装
  1. 编译PortAudio

    • 打开 pyaudio/portaudio-v19/build/msvc/portaudio.sln
    • 设置配置类型为静态库
    • 选择Release和x64模式进行编译
  2. 安装PyAudio

cd pyaudio
python setup.py install --static-link

使用教程

基础录制功能

项目提供了丰富的示例代码,以下是标准音频录制示例:

import pyaudio
import wave

CHUNK = 1024
FORMAT = pyaudio.paInt16
CHANNELS = 2
RATE = 44100
RECORD_SECONDS = 5

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

循环回放录制

循环回放录制是本项目的特色功能,可以录制扬声器输出的音频:

import pyaudio
import wave
import os

defaultframes = 512
recorded_frames = []
device_info = {}
useloopback = False
recordtime = 5

p = pyaudio.PyAudio()

# 设备选择
print("Available devices:")
for i in range(0, p.get_device_count()):
    info = p.get_device_info_by_index(i)
    print(str(info["index"]) + ": \t %s \n \t %s \n" % (info["name"], p.get_host_api_info_by_index(info["hostApi"])["name"]))

# 判断是否支持循环回放
is_input = device_info["maxInputChannels"] > 0
is_wasapi = (p.get_host_api_info_by_index(device_info["hostApi"])["name"]).find("WASAPI") != -1

if is_input:
    print("Selection is input using standard mode.")
else:
    if is_wasapi:
        useloopback = True
        print("Selection is output. Using loopback mode.")
    else:
        print("Selection is input and does not support loopback mode.")
        exit()

# 开启流进行录制
channelcount = device_info["maxInputChannels"] if (device_info["maxOutputChannels"] < device_info["maxInputChannels"]) else device_info["maxOutputChannels"]

stream = p.open(format = pyaudio.paInt16,
            channels = channelcount,
            rate = int(device_info["defaultSampleRate"]),
            input = True,
            frames_per_buffer = defaultframes,
            input_device_index = device_info["index"],
            as_loopback = useloopback)

print("Starting recording...")
for i in range(0, int(int(device_info["defaultSampleRate"]) / defaultframes * recordtime)):
    recorded_frames.append(stream.read(defaultframes))

print("End recording.")

stream.stop_stream()
stream.close()
p.terminate()

项目结构

项目采用分层架构设计:

  • pyaudio目录:包含PyAudio的主要实现代码
  • portaudio-v19目录:PortAudio V19音频库的完整源码
  • examples目录:丰富的使用示例
  • tests目录:完整的测试用例

常见问题解决

安装问题

如果在安装过程中遇到问题,请检查:

  1. Python版本是否兼容
  2. 开发环境是否完整
  3. 系统权限是否足够

使用问题

  • 确保选择正确的音频设备
  • 检查设备是否支持WASAPI
  • 验证循环回放模式是否可用

性能优化建议

  • 根据硬件性能调整缓冲区大小
  • 选择合适的采样率和位深度
  • 使用WASAPI接口获得最佳性能

总结

PyAudio PortAudio为Windows平台的音频录制提供了强大的解决方案,特别是循环回放功能为音频处理和录制带来了更多可能性。通过本指南,您可以快速上手并使用该工具进行高质量的音频录制工作。

项目提供了完整的示例代码和详细的文档,帮助开发者快速集成音频录制功能到自己的应用中。无论是简单的录音需求还是复杂的音频处理场景,PyAudio PortAudio都能提供可靠的支持。

音频处理架构

扩展功能

除了基本的录制功能外,项目还支持:

  • 多通道音频录制
  • 实时音频流处理
  • 音频格式转换
  • 设备状态监控

【免费下载链接】pyaudio_portaudio A fork to record speaker output with python. PyAudio with PortAudio for Windows | Extended | Loopback | WASAPI | Latest precompiled Version 【免费下载链接】pyaudio_portaudio 项目地址: https://gitcode.com/gh_mirrors/py/pyaudio_portaudio

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值