feat: 优化语音速度
This commit is contained in:
168
测试数据快速生成命令.md
Normal file
168
测试数据快速生成命令.md
Normal file
@@ -0,0 +1,168 @@
|
||||
# 🚀 测试数据快速生成命令
|
||||
|
||||
## 一键生成(最快方式)
|
||||
|
||||
### 方式1: 从现有音频转换
|
||||
|
||||
```bash
|
||||
# 假设你有一个 input.mp3 文件
|
||||
ffmpeg -i input.mp3 -f s16le -acodec pcm_s16le -ar 16000 -ac 1 test.pcm
|
||||
|
||||
# 转为base64(一行,无换行)
|
||||
base64 test.pcm | tr -d '\n' > test_base64.txt
|
||||
|
||||
# 复制 test_base64.txt 的内容,粘贴到 config.js 的 testAudioBase64
|
||||
```
|
||||
|
||||
### 方式2: 快速录音(Mac)
|
||||
|
||||
```bash
|
||||
# 录制3秒音频并自动转换
|
||||
rec -r 16000 -c 1 -b 16 test.pcm trim 0 3
|
||||
|
||||
# 转为base64
|
||||
base64 test.pcm | tr -d '\n' > test_base64.txt
|
||||
```
|
||||
|
||||
### 方式3: 生成测试音频(Python)
|
||||
|
||||
```python
|
||||
# 保存为 generate_test.py
|
||||
import struct
|
||||
import base64
|
||||
|
||||
sample_rate = 16000
|
||||
duration = 3
|
||||
|
||||
data = bytearray()
|
||||
for i in range(sample_rate * duration):
|
||||
# 简单正弦波
|
||||
import math
|
||||
sample = int(8000 * math.sin(2 * math.pi * 200 * i / sample_rate))
|
||||
data.extend(struct.pack('<h', sample))
|
||||
|
||||
# 保存PCM
|
||||
with open('test.pcm', 'wb') as f:
|
||||
f.write(data)
|
||||
|
||||
# 输出base64
|
||||
b64 = base64.b64encode(data).decode()
|
||||
print(f"生成完成!大小: {len(data)} bytes")
|
||||
print(f"Base64长度: {len(b64)} 字符")
|
||||
print(f"\n请复制以下内容到 config.js:")
|
||||
print(f"testAudioBase64: '{b64[:100]}...(太长,已截断,请从test_base64.txt读取)'")
|
||||
|
||||
with open('test_base64.txt', 'w') as f:
|
||||
f.write(b64)
|
||||
```
|
||||
|
||||
运行:
|
||||
```bash
|
||||
python generate_test.py
|
||||
```
|
||||
|
||||
## 配置到项目
|
||||
|
||||
### 打开配置文件
|
||||
|
||||
```bash
|
||||
# 打开编辑器
|
||||
code webUI/src/utils/config.js
|
||||
# 或
|
||||
vim webUI/src/utils/config.js
|
||||
```
|
||||
|
||||
### 填入数据
|
||||
|
||||
```javascript
|
||||
TEST_MODE: {
|
||||
enabled: true,
|
||||
|
||||
// 方式A: 粘贴base64(适合小文件,<200KB)
|
||||
testAudioBase64: '此处粘贴你的base64字符串',
|
||||
|
||||
// 方式B: 使用文件路径(适合大文件)
|
||||
testAudioPath: '/static/test_audio.pcm',
|
||||
}
|
||||
```
|
||||
|
||||
## 验证数据
|
||||
|
||||
### 播放测试PCM
|
||||
|
||||
```bash
|
||||
# Mac/Linux
|
||||
ffplay -f s16le -ar 16000 -ac 1 test.pcm
|
||||
|
||||
# 或使用aplay (Linux)
|
||||
aplay -f S16_LE -r 16000 -c 1 test.pcm
|
||||
```
|
||||
|
||||
### 检查大小
|
||||
|
||||
```bash
|
||||
# 应该接近: 时长(秒) × 32000 bytes
|
||||
ls -lh test.pcm
|
||||
```
|
||||
|
||||
## 格式速查
|
||||
|
||||
```
|
||||
格式: PCM
|
||||
采样率: 16000 Hz
|
||||
位深度: 16 bit (Signed)
|
||||
声道: 1 (Mono)
|
||||
字节序: Little Endian
|
||||
公式: 时长(秒) × 32000 = 文件大小(bytes)
|
||||
```
|
||||
|
||||
## 示例:完整流程
|
||||
|
||||
```bash
|
||||
# 1. 录制或转换音频
|
||||
ffmpeg -i my_voice.mp3 -f s16le -acodec pcm_s16le -ar 16000 -ac 1 test.pcm
|
||||
|
||||
# 2. 验证(能听到声音就对了)
|
||||
ffplay -f s16le -ar 16000 -ac 1 test.pcm
|
||||
|
||||
# 3. 转base64(无换行)
|
||||
base64 test.pcm | tr -d '\n' > test_base64.txt
|
||||
|
||||
# 4. 复制内容
|
||||
cat test_base64.txt | pbcopy # Mac
|
||||
# 或手动打开 test_base64.txt 复制
|
||||
|
||||
# 5. 粘贴到 config.js
|
||||
# testAudioBase64: '刚才复制的内容'
|
||||
|
||||
# 完成!
|
||||
```
|
||||
|
||||
## Windows 用户
|
||||
|
||||
### 使用 PowerShell
|
||||
|
||||
```powershell
|
||||
# 转base64
|
||||
$bytes = [System.IO.File]::ReadAllBytes("test.pcm")
|
||||
$base64 = [System.Convert]::ToBase64String($bytes)
|
||||
$base64 | Out-File -Encoding ascii test_base64.txt
|
||||
|
||||
# 打开查看
|
||||
notepad test_base64.txt
|
||||
```
|
||||
|
||||
## 快速测试内容建议
|
||||
|
||||
录制这些内容(任选一个,3秒即可):
|
||||
|
||||
- "你好"
|
||||
- "今天天气怎么样"
|
||||
- "给我讲个笑话"
|
||||
- "帮我查询一下"
|
||||
- 随便说点什么
|
||||
|
||||
---
|
||||
|
||||
**准备好后**,在项目中点击 🎧 进入语音模式,然后点击 "🧪 发送测试音频" 按钮测试!
|
||||
|
||||
Reference in New Issue
Block a user