#!/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_test_mp3_like_data(): """创建模拟 MP3 数据(实际上是简单的音频数据)""" # 创建一些音频数据来模拟前端录音 sample_rate = 16000 duration = 2 # 2 秒 frequency = 300 # 低频音,模拟人声 # 生成音频样本 samples = [] for i in range(sample_rate * duration): t = i / sample_rate # 生成复合波形,模拟语音 sample1 = math.sin(2 * math.pi * frequency * t) sample2 = 0.5 * math.sin(2 * math.pi * frequency * 2 * t) sample3 = 0.3 * math.sin(2 * math.pi * frequency * 3 * t) # 添加包络,模拟语音的动态变化 envelope = math.exp(-t * 0.5) * (1 + 0.5 * math.sin(2 * math.pi * 2 * t)) combined = (sample1 + sample2 + sample3) * envelope sample_int = int(16000 * combined) sample_int = max(-32767, min(32767, sample_int)) samples.append(sample_int) # 转换为字节数据(模拟 MP3 编码后的数据) audio_bytes = bytearray() for sample in samples: audio_bytes.extend(struct.pack('