
lingvo
用 Google 的序列建模框架,快速搞定语音和翻译实验
项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
数据来源:GitHub API 逐日快照 · 收录于 2026-08-09 · 当前星标 ★ 2869
使用教程
环境要求
- Python 3(用于 pip3 命令)
- 若从源码构建:TensorFlow 2.7、C++ 编译器(官方仅支持 g++ 7.3)、Bazel 构建系统
- 可选:Docker(用于使用官方提供的 Docker 配置)
- 运行 MNIST 示例需要能访问网络以自动下载数据集
安装与启动步骤
-
1安装 lingvo
通过 pip 安装冻结版本的 Lingvo,适合直接使用框架训练自定义模型,但不易修改框架代码。
pip3 install lingvo -
2准备 MNIST 工作目录
创建 /tmp/mnist 目录并进入,随后下载 MNIST 模型参数文件。
mkdir -p /tmp/mnist && cd /tmp/mnist -
3下载模型参数
从 GitHub 拉取 MNIST 的 params 文件到当前目录,命令中已指定保存路径 /tmp/mnist。
cd /tmp/mnist && curl -O https://raw.githubusercontent.com/tensorflow/lingvo/master/lingvo/tasks/image/params/mnist.py -
4启动 MNIST 训练
以本地 CPU、同步模式运行 LeNet5 训练,日志写入 /tmp/mnist/log。约 20 秒后 loss 应低于 0.3。按 Ctrl+C 停止。
python3 -m lingvo.trainer --run_locally=cpu --mode=sync --model=mnist.LeNet5 --logdir=/tmp/mnist/log -
5运行评估任务
训练与评估应作为两个独立进程同时运行,此命令在 Test 数据集上评估已保存的 checkpoint。
python3 -m lingvo.trainer --job=evaler_test --run_locally=cpu --mode=sync --model=mnist.LeNet5 --logdir=/tmp/mnist/log
关键配置
| 配置项 | 必填 | 说明 | 示例 |
|---|---|---|---|
--run_locally | 是 | 指定本地运行模式,示例使用 cpu。 | cpu |
--mode | 是 | 训练模式,示例为同步模式。 | sync |
--model | 是 | 指定要运行的模型类名。 | mnist.LeNet5 |
--logdir | 是 | 日志与 checkpoint 输出目录。 | /tmp/mnist/log |
--job | 否 | 指定任务类型,评估时使用 evaler_test。 | evaler_test |
--logtostderr | 否 | bazel 运行方式下把日志输出到 stderr。 | --logtostderr |
如何确认成功
训练日志中 loss 降到 0.3 以下并出现 Save checkpoint;评估日志出现 accuracy 与 acc5 数值即成功。
常见问题
Q:pip 安装和源码安装怎么选?
A:只想使用框架训练自定义模型选 pip;需要修改框架代码或实现自定义算子则克隆仓库用 bazel 构建。
Q:MNIST 训练和评估能只跑一个进程吗?
A:正常设置下 trainer 与 evaler 应作为两个独立进程同时运行。
Q:没有 GPU 能跑 MNIST 示例吗?
A:可以,README 的示例就是 --run_locally=cpu,其他大型模型才需要 GPU 集群。
Q:评估任务什么时候停?
A:它会等待新 checkpoint,出现 No new check point is found 时可用 Ctrl+C 停止。
注意事项
- README 明确说明机器翻译需要 GPU 集群,请参考 mt/README.md。
- GShard 万亿参数语言模型需要 GCP Cloud TPU v3-512,3D 目标检测同样需要 Cloud TPU。
- 从源码构建请以 docker/dev.Dockerfile 作为可用的依赖参考。
- Docker 用户可使用 lib.dockerfile(预装 pip 包)或 dev.Dockerfile(源码构建)。
核心亮点
- 模块化设计,模型组件可复用,实验配置清晰
- 内置多种 SOTA 模型和数据集,开箱即用
- 支持大规模分布式训练,性能优化成熟
不足之处
- 依赖 TensorFlow 1.x,学习曲线陡峭
- 文档偏学术,上手门槛较高
适用场景
- 语音识别模型的研究与实验
- 机器翻译系统的开发与调优
- 语言模型和序列生成任务的探索
替代项目
ESPnet、fairseq、Kaldi
下一篇:phonikud
同类项目推荐
echogarden
开源
一站式命令行语音工具箱,搞定合成、识别、翻译和分离
Cross-platform speech toolset, used from the command-line or as a Node.js library. I···
home-assistant-voice-pe
开源
官方语音硬件固件,本地唤醒直连智能家居
Home Assistant Voice PE
porcupine
开源
在设备本地秒级唤醒,无需联网,隐私安全
On-device wake word detection powered by deep learning
phonon
开源
按住说话,文字直接落到光标处,全程离线
Fast, local, simple voice typing for macOS.
typeflux
开源
按住热键说话,松开就把文字打进当前应用
Typeflux is a macOS menu bar voice input tool built with Swift. It is designed for a···
parakeet-rs
开源
Rust 本地跑 NVIDIA Parakeet,CPU 也能极速语音转写与说话人分离
very fast speech-to-text, diarization, streaming (even in CPU) with NVIDIA Parakeet ···
phorminx
开源
本地跑语音转文字,会议听写不上传,隐私自己掌控
A local-first Windows application for dictation and meeting transcription, with sear···
audiotext
开源
拖入音视频或粘贴链接,一键出文字、字幕和摘要
A desktop app to transcribe audio and video from files, URLs, YouTube videos, or you···
blurt
开源
按住说话,把语音和屏幕内容直接喂给终端 Agent
The keyboard for the agent era: dictation, copy text from screen, translation, snaps···