#!/usr/bin/env python3 """ 音频设备测试脚本 用于测试不同环境下的音频设备访问 """ import pyaudio import sys import os def test_audio_access(): print("🔍 音频设备访问测试") print("=" * 50) try: p = pyaudio.PyAudio() print("✅ PyAudio 初始化成功") # 显示所有音频设备 print("\n📋 可用音频设备:") for i in range(p.get_device_count()): info = p.get_device_info_by_index(i) if info['maxInputChannels'] > 0: print(f" 设备 {i}: {info['name']}") print(f" 输入通道: {info['maxInputChannels']}") print(f" 默认采样率: {info['defaultSampleRate']}") # 测试16000Hz采样率 print(f"\n🎵 测试16000Hz采样率访问:") # 测试默认设备 try: stream = p.open( format=pyaudio.paInt16, channels=1, rate=16000, input=True, frames_per_buffer=1024 ) print("✅ 默认设备支持16000Hz") stream.close() except Exception as e: print(f"❌ 默认设备不支持16000Hz: {e}") # 测试pulse设备 try: stream = p.open( format=pyaudio.paInt16, channels=1, rate=16000, input=True, frames_per_buffer=1024, input_device_index=6 # pulse设备 ) print("✅ Pulse设备支持16000Hz") stream.close() except Exception as e: print(f"❌ Pulse设备不支持16000Hz: {e}") p.terminate() print("\n✅ 音频测试完成") except Exception as e: print(f"❌ 音频测试失败: {e}") sys.exit(1) def check_environment(): print("\n🌍 环境信息:") print(f"用户: {os.getenv('USER', 'Unknown')}") print(f"用户ID: {os.getuid()}") print(f"PULSE_SERVER: {os.getenv('PULSE_SERVER', 'Not set')}") print(f"XDG_RUNTIME_DIR: {os.getenv('XDG_RUNTIME_DIR', 'Not set')}") print(f"DBUS_SESSION_BUS_ADDRESS: {os.getenv('DBUS_SESSION_BUS_ADDRESS', 'Not set')}") if __name__ == "__main__": check_environment() test_audio_access()