主要功能: - ✅ 离线语音识别 (ASR) - Paraformer中文模型 - ✅ 在线语音识别 - Streaming Paraformer中英文双语模型 - ✅ 语音合成 (TTS) - MeloTTS中英文混合模型 - ✅ 语音唤醒 (KWS) - Zipformer关键词检测模型 - ✅ 麦克风录音功能 - 支持多种格式和实时转换 - ✅ 模型设置界面 - 完整的图形化配置管理 KWS优化亮点: - 🎯 成功实现关键词检测 (测试成功率10%→预期50%+) - ⚙️ 可调参数: 阈值、活跃路径、尾随空白、分数权重、线程数 - 🔧 智能参数验证和实时反馈 - 📊 详细的调试信息和成功统计 - 🎛️ 用户友好的设置界面 技术架构: - 模块化设计: ASRManager, TTSManager, KWSManager - 实时音频处理: 自动格式转换 (任意格式→16kHz单声道) - 智能设备检测: 自动选择最佳音频格式 - 完整资源管理: 正确的创建和销毁流程 - 跨平台支持: macOS优化的音频权限处理 界面特性: - 2×2网格布局: ASR、TTS、录音、KWS四大功能模块 - 分离录音设置: 设备参数 + 输出格式独立配置 - 实时状态显示: 音频电平、处理次数、成功统计 - 详细的用户指导和错误提示
61 lines
1.5 KiB
Bash
61 lines
1.5 KiB
Bash
#!/bin/bash
|
||
|
||
# QSmartAssistant 语音测试工具构建脚本
|
||
|
||
set -e # 遇到错误时退出
|
||
|
||
echo "=== QSmartAssistant 语音测试工具构建脚本 ==="
|
||
|
||
# 检查是否在正确的目录
|
||
if [ ! -f "CMakeLists.txt" ]; then
|
||
echo "错误: 请在项目根目录运行此脚本"
|
||
exit 1
|
||
fi
|
||
|
||
# 创建构建目录
|
||
BUILD_DIR="build"
|
||
if [ -d "$BUILD_DIR" ]; then
|
||
echo "清理现有构建目录..."
|
||
rm -rf "$BUILD_DIR"
|
||
fi
|
||
|
||
echo "创建构建目录: $BUILD_DIR"
|
||
mkdir -p "$BUILD_DIR"
|
||
cd "$BUILD_DIR"
|
||
|
||
# 检查Qt6
|
||
echo "检查Qt6安装..."
|
||
if ! command -v qmake6 &> /dev/null && ! command -v qmake &> /dev/null; then
|
||
echo "警告: 未找到Qt6,请确保已正确安装Qt6"
|
||
fi
|
||
|
||
# 配置CMake
|
||
echo "配置CMake..."
|
||
if [ -n "$SHERPA_ONNX_ROOT" ]; then
|
||
echo "使用自定义sherpa-onnx路径: $SHERPA_ONNX_ROOT"
|
||
cmake -DSHERPA_ONNX_ROOT="$SHERPA_ONNX_ROOT" ..
|
||
else
|
||
echo "使用默认sherpa-onnx路径"
|
||
cmake ..
|
||
fi
|
||
|
||
# 编译
|
||
echo "开始编译..."
|
||
CPU_COUNT=$(sysctl -n hw.ncpu 2>/dev/null || nproc 2>/dev/null || echo 4)
|
||
make -j$CPU_COUNT
|
||
|
||
# 检查编译结果
|
||
if [ -f "qt_speech_simple" ]; then
|
||
echo "=== 编译成功! ==="
|
||
echo "可执行文件位置: $(pwd)/qt_speech_simple"
|
||
echo ""
|
||
echo "运行程序:"
|
||
echo " cd $(pwd)"
|
||
echo " ./qt_speech_simple"
|
||
echo ""
|
||
echo "注意: 请确保模型文件已正确放置在 ~/.config/QSmartAssistant/Data/ 目录下"
|
||
else
|
||
echo "=== 编译失败! ==="
|
||
echo "请检查错误信息并解决依赖问题"
|
||
exit 1
|
||
fi |