MCPcopy Index your code
hub / github.com/nobody132/masr

github.com/nobody132/masr @main

repository ↗ · DeepWiki ↗ · Ask this repo → · + Follow
59 symbols 192 edges 17 files 8 documented · 14% updated 1y agom1 · 2019-07-01★ 1,968
README

MASR 中文语音识别

MASR是一个基于端到端的深度神经网络中文普通话语音识别项目。

原理

MASR使用的是门控卷积神经网络(Gated Convolutional Network),网络结构类似于Facebook在2016年提出的Wav2letter。但是使用的激活函数不是ReLU或者是HardTanh,而是GLU(门控线性单元)。因此称作门控卷积网络。根据我的实验,使用GLU的收敛速度比HardTanh要快。如果你想要研究卷积网络用于语音识别的效果,这个项目可以作为一个参考。

以下用字错误率CER来衡量模型的表现,CER = 编辑距离 / 句子长度,越低越好

大致可以理解为 1 - CER 就是识别准确率。

模型使用AISHELL-1数据集训练,共150小时的录音,覆盖了4000多个汉字。工业界使用的语音识别系统通常使用至少10倍于本项目的录音数据来训练,同时使用特定场景的语料来训练语言模型,所以,不要期待本项目可以和工业界的识别效果媲美。这对于Github上任何个人项目来说都不现实,除非有更先进的技术诞生。

什么叫特定场景的语料训练的语言模型?比如你使用游戏中的语音识别,它更倾向于将你的话识别成你在玩游戏时可能说的话,比如「貂蝉被蓝打死了」。而在其他场景下,「貂蝉被蓝打死了」根本就不是一句通顺的话。不信你和一个只读过三国演义没玩过王者荣耀的人说「貂蝉被蓝打死了」,你确定ta不会反问你:「啥?貂蝉被谁打死了?lan是谁?」

在单卡GTX 1080Ti上,模型每迭代一个epoch大约需要20分钟。(实验室的CUDA版本较低,不排除更新CUDA版本后会快一些的可能。)

上图为验证集的CER随epoch的训练曲线。可以看到,目前验证集CER已经下降到11%。

图中没有显示测试集的表现。测试集的CER稍高一些,在14%。

通过外接语言模型可以将测试集的CER降低到8%。

项目目前提供的预训练模型训练了大约是100个epoch时候的,已经接近最好了。

Core symbols most depended-on inside this repo

load
called by 7
models/base.py
save
called by 3
models/trainable.py
predict
called by 3
models/base.py
convert_to_strings
called by 2
decoder.py
record
called by 2
examples/record.py
decode
called by 2
models/base.py
forward
called by 2
models/conv.py
cer
called by 1
decoder.py

Shape

Method 31
Function 19
Class 8
Route 1

Languages

Python100%

Modules by API surface

decoder.py10 symbols
data.py10 symbols
models/trainable.py9 symbols
models/conv.py7 symbols
models/base.py7 symbols
examples/embedding.py4 symbols
train.py3 symbols
feature.py2 symbols
examples/record.py2 symbols
examples/demo-server.py2 symbols
beamdecode.py2 symbols
examples/_init_path.py1 symbols

Dependencies from manifests, versioned

torch1.0.1 · 1×

For agents

$ claude mcp add masr \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact