#!/usr/bin/env python3 """ 测试 WAV 格式 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_wav_file(): """创建一个标准的 WAV 文件""" sample_rate = 16000 duration = 3 # 3 秒 # 生成音频样本 samples = [] for i in range(sample_rate * duration): t = i / sample_rate # 生成复合波形,模拟语音 f0 = 200 + 100 * math.sin(2 * math.pi * 0.5 * t) # 变化的基频 sample = 0 for harmonic in range(1, 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)) final_sample = sample * envelope * 0.3 # 转换为 16-bit 整数 sample_int = int(16000 * final_sample) sample_int = max(-32767, min(32767, sample_int)) samples.append(sample_int) # 写入 WAV 文件 wav_file = "test_audio.wav" with wave.open(wav_file, 'wb') as wav: wav.setnchannels(1) # 单声道 wav.setsampwidth(2) # 16-bit wav.setframerate(sample_rate) # 16kHz # 写入样本数据 for sample in samples: wav.writeframes(struct.pack('