lingvo

用 Google 的序列建模框架,快速搞定语音和翻译实验

开源 🏷️完全免费 🔧 仅开源项目,无在线服务,需自行部署 音频音乐 🍴 复刻 452 🐛 待处理 155 👀 关注 109
GitHub ↗
GitHub 星标 ★ 2869
维护状态 较活跃
是否开源 开源
定价模式 🏷️完全免费 开源项目,Apache-2.0许可证,可免费使用和部署。

项目预览

lingvo 项目界面预览图
图片来源:GitHub 官方仓库名片

项目数据

分类音频音乐
开发团队tensorflow
定价模式🏷️完全免费
价格说明开源项目,Apache-2.0许可证,可免费使用和部署。
访问状态🔧 仅开源项目,无在线服务,需自行部署
是否开源是
开源协议Apache-2.0
主要语言Python
技术栈/模型asr,distributed,gpu-computing,language-model,lm,machine-translation,mnist,nlp,research,seq2seq,speech,speech-recognition,speech-synthesis,speech-to-text,tensorflow,translation,tts
GitHub 星标★ 2869
上线时间2018-07-24 00:00:00
代码更新2026-10-29
仓库体积145.9 MB
本站数据更新2026-11-09
维护状态较活跃
收录时间2026-08-09
浏览次数6

项目介绍

Lingvo 是 Google 开源的深度学习框架,专注于序列建模任务,尤其擅长语音识别、机器翻译和语言模型。它基于 TensorFlow 构建,提供了一套模块化、可配置的组件,让研究者能快速搭建和实验复杂的序列模型。Lingvo 的核心优势在于其高度工程化的训练流程,支持分布式训练、混合精度和大量预置模型(如 Transformer、LSTM 等),并内置了多种数据集加载和评估工具。它解决了研究代码难以复现和扩展的问题,通过统一的配置系统,让实验管理变得清晰。Lingvo 在工业界和学术界都有应用,是语音和翻译领域的重要参考实现。

Star 增长趋势

本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整

数据来源:GitHub API 逐日快照 · 收录于 2026-08-09 · 当前星标 ★ 2869

使用教程

难度:进阶 约 20 分钟 部署方式:本地安装 5 步

环境要求

  • Python 3(用于 pip3 命令)
  • 若从源码构建:TensorFlow 2.7、C++ 编译器(官方仅支持 g++ 7.3)、Bazel 构建系统
  • 可选:Docker(用于使用官方提供的 Docker 配置)
  • 运行 MNIST 示例需要能访问网络以自动下载数据集

安装与启动步骤

  1. 1安装 lingvo

    通过 pip 安装冻结版本的 Lingvo,适合直接使用框架训练自定义模型,但不易修改框架代码。

    pip3 install lingvo
  2. 2准备 MNIST 工作目录

    创建 /tmp/mnist 目录并进入,随后下载 MNIST 模型参数文件。

    mkdir -p /tmp/mnist && cd /tmp/mnist
  3. 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. 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. 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

上一篇:Easy-Voice-Toolkit

下一篇:phonikud

同类项目推荐

echogarden 开源

一站式命令行语音工具箱,搞定合成、识别、翻译和分离

Cross-platform speech toolset, used from the command-line or as a Node.js library. I···

★ 454 2026-08-09
porcupine 开源

在设备本地秒级唤醒,无需联网,隐私安全

On-device wake word detection powered by deep learning

★ 5022 2026-08-10
phonon 开源

按住说话,文字直接落到光标处,全程离线

Fast, local, simple voice typing for macOS.

★ 376 2026-11-08
typeflux 开源

按住热键说话,松开就把文字打进当前应用

Typeflux is a macOS menu bar voice input tool built with Swift. It is designed for a···

★ 364 2026-10-11
parakeet-rs 开源

Rust 本地跑 NVIDIA Parakeet,CPU 也能极速语音转写与说话人分离

very fast speech-to-text, diarization, streaming (even in CPU) with NVIDIA Parakeet ···

★ 421 2026-09-12
phorminx 开源

本地跑语音转文字,会议听写不上传,隐私自己掌控

A local-first Windows application for dictation and meeting transcription, with sear···

★ 126 2026-09-30
audiotext 开源

拖入音视频或粘贴链接,一键出文字、字幕和摘要

A desktop app to transcribe audio and video from files, URLs, YouTube videos, or you···

★ 354 2026-10-06
blurt 开源

按住说话,把语音和屏幕内容直接喂给终端 Agent

The keyboard for the agent era: dictation, copy text from screen, translation, snaps···

★ 315 2026-10-30