Local-Voice/test-audio.py
2025-09-26 13:11:14 +08:00

77 lines
2.3 KiB
Python
Executable File

#!/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()