89 lines
2.8 KiB
Python
89 lines
2.8 KiB
Python
#!/usr/bin/env python3
|
||
"""
|
||
测试修复后的 ASR 端点
|
||
"""
|
||
|
||
import requests
|
||
import os
|
||
from dotenv import load_dotenv
|
||
|
||
# 加载环境变量
|
||
load_dotenv()
|
||
|
||
def test_asr_endpoint():
|
||
"""测试 ASR 端点"""
|
||
try:
|
||
# 创建一个测试音频文件
|
||
import wave
|
||
import numpy as np
|
||
|
||
# 生成3秒的测试音频(16kHz, 单声道)
|
||
sample_rate = 16000
|
||
duration = 3
|
||
frequency = 440 # A4音符
|
||
|
||
t = np.linspace(0, duration, sample_rate * duration, False)
|
||
audio_data = np.sin(2 * np.pi * frequency * t) * 0.3
|
||
audio_data = (audio_data * 32767).astype(np.int16)
|
||
|
||
# 保存为WAV文件
|
||
with wave.open('test_audio.wav', 'wb') as wav_file:
|
||
wav_file.setnchannels(1) # 单声道
|
||
wav_file.setsampwidth(2) # 16-bit
|
||
wav_file.setframerate(sample_rate) # 16kHz
|
||
wav_file.writeframes(audio_data.tobytes())
|
||
|
||
print("✅ 创建测试音频文件")
|
||
|
||
# 测试ASR端点
|
||
url = "http://192.168.1.141:30101/voice/call/asr"
|
||
|
||
# 获取token(如果需要)
|
||
token = os.getenv('TEST_TOKEN', '')
|
||
headers = {}
|
||
if token:
|
||
headers['Authorization'] = f'Bearer {token}'
|
||
|
||
print(f"🚀 测试 ASR 端点: {url}")
|
||
|
||
with open('test_audio.wav', 'rb') as f:
|
||
files = {'audio': ('test_audio.wav', f, 'audio/wav')}
|
||
|
||
print("📤 发送请求...")
|
||
response = requests.post(url, files=files, headers=headers, timeout=60)
|
||
|
||
print(f"📊 响应状态码: {response.status_code}")
|
||
print(f"📋 响应内容: {response.text}")
|
||
|
||
if response.status_code == 200:
|
||
data = response.json()
|
||
if data.get('code') == 1 and data.get('data', {}).get('text'):
|
||
print(f"✅ ASR 成功: {data['data']['text']}")
|
||
return True
|
||
else:
|
||
print(f"⚠️ ASR 响应格式异常: {data}")
|
||
return True # 仍然算成功,因为没有超时
|
||
else:
|
||
print(f"❌ ASR 请求失败: {response.status_code}")
|
||
return False
|
||
|
||
except requests.exceptions.Timeout:
|
||
print("❌ 请求超时")
|
||
return False
|
||
except Exception as e:
|
||
print(f"❌ 测试失败: {e}")
|
||
return False
|
||
finally:
|
||
# 清理测试文件
|
||
try:
|
||
os.remove('test_audio.wav')
|
||
except:
|
||
pass
|
||
|
||
if __name__ == "__main__":
|
||
print("🚀 开始测试修复后的 ASR 端点...")
|
||
|
||
if test_asr_endpoint():
|
||
print("🎉 ASR 端点测试成功!")
|
||
else:
|
||
print("💥 ASR 端点测试失败!") |