#!/usr/bin/env python3 """ 测试 ASR 修复是否有效 """ import sys import os sys.path.append('.') import requests import base64 import wave import struct import math import logging # 设置日志 logging.basicConfig(level=logging.INFO) logger = logging.getLogger(__name__) def create_speech_like_audio(): """创建类似语音的音频数据""" sample_rate = 16000 duration = 3 # 3 秒 # 生成更复杂的音频,模拟语音特征 samples = [] for i in range(sample_rate * duration): t = i / sample_rate # 基频(模拟人声基频) f0 = 150 + 50 * math.sin(2 * math.pi * 0.5 * t) # 变化的基频 # 多个谐波分量 sample = 0 for harmonic in range(1, 6): # 前5个谐波 amplitude = 1.0 / harmonic # 谐波幅度递减 sample += amplitude * math.sin(2 * math.pi * f0 * harmonic * t) # 添加包络(模拟语音的动态变化) envelope = 0.5 * (1 + math.sin(2 * math.pi * 2 * t)) # 2Hz 的包络变化 # 添加一些噪声(模拟语音的复杂性) noise = 0.1 * (math.sin(2 * math.pi * 1000 * t) + 0.5 * math.sin(2 * math.pi * 2000 * t)) # 组合所有分量 final_sample = (sample + noise) * envelope * 0.3 # 控制总体音量 # 转换为 16-bit 整数 sample_int = int(16000 * final_sample) sample_int = max(-32767, min(32767, sample_int)) samples.append(sample_int) # 转换为字节数据 audio_bytes = bytearray() for sample in samples: audio_bytes.extend(struct.pack('