Catalogue
  1. 第一部分:文字转语音(TTS)
    1. 一、MOSS-TTS-Nano 项目介绍
      1. 1. 项目简介
      2. 2. 技术架构
      3. 3. 模型版本对比
    2. 二、安装方法
      1. 1. 系统环境要求
      2. 2. 安装 Miniconda
      3. 3. 创建项目环境
      4. 4. 克隆项目
      5. 5. 安装依赖(关键步骤)
      6. 6. 安装验证
      7. 7. 安装 ffmpeg(ASR 需要)
      8. 8. 安装 Whisper(ASR 需要)
      9. 9. 完整安装脚本
      10. 10. 常见问题汇总
    3. 三、使用方法
      1. 方式一:命令行推理(推荐 ONNX)
      2. 方式二:PyTorch 版本
      3. 方式三:CLI 命令
      4. 方式四:Web Demo
      5. 方式五:长文本合成
    4. 四、语音克隆说明
      1. 1. 参考音频要求
      2. 2. 内置参考音频
      3. 3. 自定义克隆
    5. 五、政企场景应用
      1. 1. 核心痛点
      2. 2. 典型应用场景
        1. 场景一:政务通知播报
        2. 场景二:客服语音应答
        3. 场景三:无障碍服务
        4. 场景四:培训教育
      3. 3. 部署架构
        1. 单机部署
        2. 服务化部署
      4. 4. 成本对比
    6. 六、已安装环境说明
  2. 第二部分:语音转文字(ASR)
    1. 一、核心结论
      1. 1. 模型精度对比
      2. 2. 技术方案对比
    2. 二、使用方法
      1. 方案一:openai-whisper(已安装)
      2. 方案二:faster-whisper(推荐)
      3. 方案三:whisper.cpp(最轻量最快)
    3. 三、政企场景需求与痛点解决
      1. 1. 核心痛点
      2. 2. 典型应用场景
        1. 场景一:会议记录自动化
        2. 场景二:政务热线录音质检
        3. 场景三:档案数字化
        4. 场景四:实时字幕/辅助听障
      3. 3. 部署架构建议
        1. 小规模部署(单机)
        2. 中规模部署(服务器)
        3. 大规模部署(边缘计算)
      4. 4. 成本分析
    4. 四、最佳实践建议
      1. 1. 模型选择
      2. 2. 优化建议
      3. 3. 安全合规
    5. 五、已安装环境说明
    6. 六、参考资源

语音技术方案总结

本文档涵盖 文字转语音(TTS)语音转文字(ASR) 两大技术方案。


第一部分:文字转语音(TTS)

一、MOSS-TTS-Nano 项目介绍

1. 项目简介

MOSS-TTS-Nano 是 OpenMOSS 团队开源的多语言轻量级语音合成模型:

特性 说明
模型大小 仅 0.1B 参数(100M)
输出格式 48kHz 立体声
支持语言 20种(中、英、德、法、日等)
运行环境 CPU 可用,无需 GPU
核心功能 语音克隆、流式推理、长文本合成

2. 技术架构

1
文本输入 → 文本标准化 → Audio Tokenizer → LLM 生成 → 音频解码 → 48kHz立体声输出

关键组件

  • MOSS-Audio-Tokenizer-Nano:音频编解码器,20M 参数
  • MOSS-TTS-Nano-100M:语音生成模型,100M 参数
  • 支持 ONNX 推理:无需 PyTorch,更快更轻量

3. 模型版本对比

版本 大小 推理方式 适用场景
PyTorch 版 ~300MB torch 推理 开发调试
ONNX 版 ~200MB onnxruntime 生产部署(推荐)

二、安装方法

1. 系统环境要求

项目 要求
操作系统 macOS (Apple Silicon)、Linux、Windows
Python 3.12(推荐)
内存 8GB+
磁盘 2GB+(模型约 200MB)

2. 安装 Miniconda

下载安装

1
2
3
4
5
6
7
8
9
10
11
12
# 国内镜像下载(清华源)
curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-MacOSX-arm64.sh -o /tmp/miniconda.sh

# 或官方源
curl -fsSL https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-arm64.sh -o /tmp/miniconda.sh

# 安装
bash /tmp/miniconda.sh -b -p $HOME/miniconda3

# 初始化
$HOME/miniconda3/bin/conda init zsh
source ~/.zshrc

常见问题

问题 解决方案
安装失败(Killed: 9) 可能是安全限制,尝试交互式安装:bash /tmp/miniconda.sh
conda 命令找不到 运行 source ~/.zshrc 或重启终端
环境目录权限拒绝 mkdir -p ~/.conda/envs && chown -R $USER ~/.conda
TOS 未接受 运行 conda tos accept 相关命令

3. 创建项目环境

1
2
3
4
5
# 创建 Python 3.12 环境
conda create -n moss-tts-nano python=3.12 -y

# 激活环境
conda activate moss-tts-nano

注意:首次使用 conda 需要接受服务条款:

1
2
conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/main
conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/r

4. 克隆项目

1
2
git clone https://github.com/OpenMOSS/MOSS-TTS-Nano.git
cd MOSS-TTS-Nano

5. 安装依赖(关键步骤)

步骤一:安装 pynini

pynini 是文本处理的 FST 库,WeTextProcessing 依赖它。直接 pip 安装可能失败,推荐用 conda:

1
conda install -c conda-forge pynini=2.1.6.post1 -y

步骤二:安装 WeTextProcessing

1
pip install git+https://github.com/WhizZest/WeTextProcessing.git

步骤三:安装项目依赖

1
pip install -r requirements.txt

步骤四:安装项目本身

1
pip install -e .

6. 安装验证

1
2
3
4
5
6
# 检查 CLI 是否可用
moss-tts-nano --help

# 预期输出:
# usage: moss-tts-nano [-h] {generate,serve} ...
# Command line interface for MOSS-TTS-Nano.

7. 安装 ffmpeg(ASR 需要)

如果同时需要语音转文字功能,需安装 ffmpeg:

1
conda install -c conda-forge ffmpeg -y

8. 安装 Whisper(ASR 需要)

1
pip install openai-whisper

9. 完整安装脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#!/bin/bash
# MOSS-TTS-Nano + Whisper 完整安装脚本

# 1. 创建环境
conda create -n moss-tts-nano python=3.12 -y
conda activate moss-tts-nano

# 2. 克隆项目
git clone https://github.com/OpenMOSS/MOSS-TTS-Nano.git
cd MOSS-TTS-Nano

# 3. 安装 pynini
conda install -c conda-forge pynini=2.1.6.post1 -y

# 4. 安装 WeTextProcessing
pip install git+https://github.com/WhizZest/WeTextProcessing.git

# 5. 安装项目依赖
pip install -r requirements.txt

# 6. 安装项目
pip install -e .

# 7. 安装 ffmpeg(可选,ASR需要)
conda install -c conda-forge ffmpeg -y

# 8. 安装 Whisper(可选,ASR需要)
pip install openai-whisper

# 9. 验证
moss-tts-nano --help
echo "安装完成!"

10. 常见问题汇总

问题 原因 解决方案
pynini 安装失败 需要 conda-forge conda install -c conda-forge pynini
WeTextProcessing 安装失败 缺少 pynini 先安装 pynini
conda 环境创建失败 权限问题 mkdir -p ~/.conda/envs
conda TOS 错误 未接受条款 conda tos accept
moss-tts-nano 命令找不到 项目未安装 pip install -e .
Whisper ffmpeg 错误 缺少 ffmpeg conda install ffmpeg
模型下载慢 国内网络 使用镜像或代理

三、使用方法

方式一:命令行推理(推荐 ONNX)

1
2
3
4
5
6
# ONNX 版本(更快,首次运行自动下载模型)
python infer_onnx.py \
--prompt-audio-path assets/audio/zh_1.wav \
--text "你好,这是一个测试音频。"

# 输出路径:generated_audio/infer_onnx_output.wav

方式二:PyTorch 版本

1
2
3
4
5
python infer.py \
--prompt-audio-path assets/audio/zh_1.wav \
--text "欢迎关注模思智能、上海创智学院与复旦大学自然语言处理实验室。"

# 输出路径:generated_audio/infer_output.wav

方式三:CLI 命令

1
2
3
4
5
6
7
8
9
10
# ONNX 后端
moss-tts-nano generate \
--backend onnx \
--prompt-speech assets/audio/zh_1.wav \
--text "你好世界"

# PyTorch 后端
moss-tts-nano generate \
--prompt-speech assets/audio/zh_1.wav \
--text "你好世界"

方式四:Web Demo

1
2
3
4
5
6
7
8
9
10
# ONNX Web Demo(推荐)
python app_onnx.py
# 访问 http://127.0.0.1:18083

# PyTorch Web Demo
python app.py
# 访问 http://127.0.0.1:18083

# 或用 CLI 启动
moss-tts-nano serve --backend onnx

方式五:长文本合成

1
2
3
4
5
# 从文件读取长文本
moss-tts-nano generate \
--backend onnx \
--prompt-speech assets/audio/zh_1.wav \
--text-file long_text.txt

四、语音克隆说明

1. 参考音频要求

参数 建议
格式 WAV(推荐)
采样率 48kHz(最佳)、16kHz+(可用)
时长 3-10秒
内容 自然朗读,无背景噪音

2. 内置参考音频

项目自带示例音频:

  • assets/audio/zh_1.wav - 中文女声
  • assets/audio/zh_2.wav - 中文男声
  • assets/audio/en_1.wav - 英文示例

3. 自定义克隆

1
2
3
4
# 使用自己的音频克隆
python infer_onnx.py \
--prompt-audio-path /path/to/your_voice.wav \
--text "你想让克隆声音说的话"

五、政企场景应用

1. 核心痛点

痛点 传统方案问题 MOSS-TTS-Nano 解决方案
数据安全 云端合成存在泄密风险 本地部署,数据不出域
成本控制 云API按字符计费 本地免费,无限量使用
定制困难 无法定制音色 支持语音克隆、微调
实时性 云端延迟高 本地实时生成,CPU可运行
多语言 需多个服务商 支持20种语言一体化

2. 典型应用场景

场景一:政务通知播报

需求

  • 应急通知、政策宣传需语音播报
  • 数据安全,不能上传云端
  • 需要统一、权威的声音

解决方案

1
2
3
4
# 批量生成播报音频
python infer_onnx.py \
--prompt-audio-path official_voice.wav \
--text "关于XXX政策的通知内容..."

场景二:客服语音应答

需求

  • IVR 语音导航
  • 统一客服形象
  • 动态内容生成

解决方案

  • 部署 TTS API 服务
  • 克隆品牌客服音色
  • 动态生成应答语音
1
2
3
4
5
6
7
# 启动服务
moss-tts-nano serve --backend onnx

# API 调用示例
curl -X POST http://localhost:18083/api/generate \
-F "text=您好,请问有什么可以帮您" \
-F "prompt_speech=agent_voice.wav"

场景三:无障碍服务

需求

  • 视障人士语音阅读
  • 公共场所语音提示
  • 多语言支持

解决方案

  • 集成到阅读系统
  • 提供多种克隆音色选择
  • 实时转写+实时合成

场景四:培训教育

需求

  • 课程讲解语音
  • 多语种教学
  • 教师音色克隆

解决方案

1
2
3
4
# 克隆教师声音生成课程讲解
python infer_onnx.py \
--prompt-audio-path teacher_voice.wav \
--text-file course_content.txt

3. 部署架构

单机部署

1
2
3
4
5
6
7
8
9
┌─────────────────────┐
│ 本机 Mac/PC │
│ ┌───────────────┐ │
│ │ MOSS-TTS-Nano │ │
│ │ (ONNX) │ │
│ └───────────────┘ │
│ ↓ │
│ 生成的音频 │
└─────────────────────┘

服务化部署

1
2
3
4
5
6
7
8
9
┌─────────────────────────────────────┐
│ 内网服务器 │
│ ┌─────────────┐ ┌─────────────┐ │
│ │ TTS API服务 │ │ 音频存储 │ │
│ │ (FastAPI) │→ │ 服务 │ │
│ └─────────────┘ └─────────────┘ │
│ ↓ │
│ 内部业务系统调用 │
└─────────────────────────────────────┘

4. 成本对比

方案 硬件成本 软件成本 使用成本
云TTS API 按字符计费 高(持续)
本地部署 4核CPU/8G内存 0 0(无限量)

估算

  • 日生成 1000 条通知(每条 100 字)
  • 云API:1000 × 100 × 0.001元 = 100元/天 = 3000元/月
  • 本地:一次性投入,长期免费

六、已安装环境说明

当前已安装配置:

  • 项目路径/Users/mac/quanoc/claude-env/MOSS-TTS-Nano
  • Conda 环境moss-tts-nano (Python 3.12)
  • 模型缓存models/MOSS-TTS-Nano-100M-ONNX/models/MOSS-Audio-Tokenizer-Nano-ONNX/

快速使用

1
2
3
4
5
6
7
8
9
10
conda activate moss-tts-nano
cd /Users/mac/quanoc/claude-env/MOSS-TTS-Nano

# 生成音频
python infer_onnx.py \
--prompt-audio-path assets/audio/zh_1.wav \
--text "你想说的话"

# 启动 Web Demo
python app_onnx.py


第二部分:语音转文字(ASR)

一、核心结论

1. 模型精度对比

模型 大小 中文精度 速度 适用场景
tiny 39MB 较低 最快 实时对话、低端设备
base 74MB 中等 较快 一般转录
small 244MB 较高 中等 商业级转录
medium 769MB 较慢 专业场景
large 1.5GB 最高 最慢 最高精度需求

实测对比(相同音频):

模型 转录结果 耗时
原始文本 你好,欢迎使用MOSS语音合成系统,这是一个测试音频。 -
base 要欢迎使用MOSS愉悦合成系统,这是一个测试音别 17秒
small 你好,欢迎使用MOSS语音合成系统,这是一个测试音别 8.5秒

结论:small 模型中文识别精度明显优于 base,推荐用于商业场景。

2. 技术方案对比

方案 实现语言 模型大小 速度 依赖 Mac加速
openai-whisper Python+PyTorch 原始大小 较慢 PyTorch等 CPU
faster-whisper Python+CTranslate2 原始大小 快2-4x 较少 CPU
whisper.cpp 纯C++ 量化后1/4 最快 无依赖 Metal GPU

关键发现

  • 所有方案使用相同模型权重,精度一致
  • whisper.cpp 支持量化压缩(small: 244MB → ~70MB)
  • 这解释了闪电说等软件 30多M 仍保持高精度的原因

二、使用方法

方案一:openai-whisper(已安装)

1
2
3
4
5
6
7
8
9
10
11
# 激活环境
conda activate moss-tts-nano

# 基础转录
whisper audio.wav --model small --language zh

# 输出到指定目录
whisper audio.wav --model small --language zh --output_dir output/

# 支持格式:txt, json, srt, vtt, tsv
whisper audio.wav --model small --language zh --output_format srt

方案二:faster-whisper(推荐)

1
2
3
4
5
6
7
8
9
10
11
# 安装
pip install faster-whisper

# Python 使用
from faster_whisper import WhisperModel

model = WhisperModel("small", device="cpu", compute_type="int8")
segments, info = model.transcribe("audio.wav", language="zh")

for segment in segments:
print("[%.2f -> %.2f] %s" % (segment.start, segment.end, segment.text))

方案三:whisper.cpp(最轻量最快)

1
2
3
4
5
6
7
8
9
10
11
12
13
# 安装
git clone https://github.com/ggerganov/whisper.cpp.git
cd whisper.cpp

# 编译(Mac Metal 加速)
cmake -B build -DWHISPER_METAL=ON
cmake --build build -j

# 下载量化模型
sh ./models/download-ggml-model.sh small-q5

# 转录
./build/bin/whisper-cli -m models/ggml-small-q5.bin -f audio.wav -l zh

三、政企场景需求与痛点解决

1. 核心痛点

痛点 传统方案问题 Whisper方案优势
数据安全 云端API存在泄密风险 本地部署,数据不出域
成本控制 云API按量计费,长音频成本高 本地免费,无使用上限
实时性 云端延迟高,无法实时 本地实时转录
离线场景 必须联网 完全离线可用
定制需求 无法定制模型 可微调适配专业术语

2. 典型应用场景

场景一:会议记录自动化

需求

  • 内部会议需记录存档
  • 数据不能上传云端
  • 支持多人识别、时间戳

解决方案

1
2
3
4
5
6
7
8
9
10
11
12
# 会议转录脚本
from faster_whisper import WhisperModel

model = WhisperModel("small", device="cpu", compute_type="int8")

# 批量处理会议录音
segments, info = model.transcribe("meeting.wav", language="zh")

# 输出带时间戳的会议纪要
with open("meeting_minutes.txt", "w") as f:
for seg in segments:
f.write(f"[{seg.start:.1f}s] {seg.text}\n")

场景二:政务热线录音质检

需求

  • 通话录音需转录分析
  • 关键词检索、服务质量评估
  • 合规存档

解决方案

  • 部署 faster-whisper 服务
  • 集成关键词检测模块
  • 自动生成质检报告

场景三:档案数字化

需求

  • 历史录音档案数字化
  • 批量处理,长期存储
  • 支持检索

解决方案

1
2
3
4
# 批量转录脚本
for file in archive/*.wav; do
whisper "$file" --model small --language zh --output_format json --output_dir digitized/
done

场景四:实时字幕/辅助听障

需求

  • 线下会议实时字幕显示
  • 低延迟、高准确率

解决方案

  • whisper.cpp + 量化模型
  • 实时流式转录
  • 投屏显示字幕

3. 部署架构建议

小规模部署(单机)

1
2
3
4
5
6
7
8
9
10
┌─────────────────┐
│ Mac/PC 本机 │
│ ┌───────────┐ │
│ │ faster- │ │
│ │ whisper │ │
│ │ (small) │ │
│ └───────────┘ │
│ ↓ │
│ 本地存储 │
└─────────────────┘

适用:个人使用、小团队

中规模部署(服务器)

1
2
3
4
5
6
7
8
9
10
11
┌─────────────────────────────────────┐
│ 内网服务器 │
│ ┌─────────┐ ┌─────────┐ │
│ │ ASR服务 │ │ 存储 │ │
│ │ 集群 │→ │ 服务 │ │
│ └─────────┘ └─────────┘ │
│ ↓ │
│ 内部API接口 │
└─────────────────────────────────────┘

各业务系统接入

适用:政务热线、档案数字化

大规模部署(边缘计算)

1
2
3
4
5
6
7
8
9
┌──────────┐  ┌──────────┐  ┌──────────┐
│ 边缘节点1 │ │ 边缘节点2 │ │ 边缘节点3 │
│ whisper. │ │ whisper. │ │ whisper. │
│ cpp │ │ cpp │ │ cpp │
└──────────┘ └──────────┘ └──────────┘
↓ ↓ ↓
┌─────────────────────────────────────┐
│ 中心管理平台 │
└─────────────────────────────────────┘

适用:分布式办公、多地会议

4. 成本分析

方案 硬件成本 软件成本 维护成本
云API 0.01-0.02元/分钟
本地small 8核CPU/8G内存 0
本地medium 16核CPU/16G内存 0

典型估算

  • 日处理 100 小时录音
  • 云API:100 × 60 × 0.02 = 120元/天 = 3600元/月
  • 本地:一次性硬件投入,长期零成本

四、最佳实践建议

1. 模型选择

场景 推荐模型 理由
实时字幕 tiny/base-q8 低延迟优先
会议记录 small 精度与速度平衡
档案数字化 small/medium 精度优先
专业领域 medium + 微调 需适配术语

2. 优化建议

  • 音频格式:转换为 16kHz 单声道 WAV,效果最佳
  • 预处理:降噪、去静音可提升精度 5-10%
  • 后处理:接入纠错模块处理专业术语

3. 安全合规

  • 所有数据本地处理,不上传云端
  • 支持审计日志记录
  • 模型文件可控、可验证

五、已安装环境说明

当前环境已安装:

  • Miniconda/opt/tools/miniconda3
  • Python 环境moss-tts-nano (Python 3.12)
  • 已安装:MOSS-TTS-Nano、openai-whisper、ffmpeg

ASR 使用命令

1
2
conda activate moss-tts-nano
whisper your_audio.wav --model small --language zh

TTS 使用命令

1
2
3
conda activate moss-tts-nano
cd /Users/mac/quanoc/claude-env/MOSS-TTS-Nano
python infer_onnx.py --prompt-audio-path assets/audio/zh_1.wav --text "测试文本"

模型缓存位置

  • Whisper:~/.cache/whisper/
  • MOSS-TTS:models/

六、参考资源

TTS 相关

ASR 相关


文档生成时间:2026-04-25