# TeleSpeech-ASR **Repository Path**: Tele-AI/TeleSpeech-ASR ## Basic Information - **Project Name**: TeleSpeech-ASR - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 25 - **Forks**: 8 - **Created**: 2024-05-23 - **Last Updated**: 2025-07-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
🤗 Hugging Face️ • 🤖 ModelScope • 🐾 gitee
# 目录 - [目录](#目录) - [模型开源](#模型开源) - [环境配置](#环境配置) - [数据准备](#数据准备) - [特征提取](#特征提取) - [字典准备](#字典准备) - [微调模型推理流程示例\*](#微调模型推理流程示例) - [预训练模型微调](#预训练模型微调) - [微调阶段](#微调阶段) - [推理与解码阶段](#推理与解码阶段) - [表征训练下游任务](#表征训练下游任务) - [开源数据集结果](#开源数据集结果) - [声明与协议](#声明与协议) - [声明](#声明) - [协议](#协议) # 模型开源 星辰超多方言语音识别大模型v1.0,由30万小时无标注多方言语音数据进行预训练,并利用内部30种有标注数据进行微调,打破单一模型只能识别特定单一方言的困境,可支持理解粤语、上海话、四川话、温州话等30种方言 本次开源三个模型:两个30万小时无标注语音预训练模型和一个KeSpeech数据集8种方言微调模型。发布版本和下载链接见下表 | 模型版本 | 参数量 | 下载链接 | 字典 | 备注 | |---------------------|-------|---------------------|-------|-------| | pretrain_base | 0.09 B | [TeleSpeech-ASR1.0-base](https://huggingface.co/Tele-AI/TeleSpeech-ASR1.0/blob/main/base.pt) | ✗ | 30万小时无标注语音预训练模型 | | pretrain_large | 0.3 B | [TeleSpeech-ASR1.0-large](https://huggingface.co/Tele-AI/TeleSpeech-ASR1.0/blob/main/large.pt) | ✗ | 30万小时无标注语音预训练模型 | | finetune_large_kespeech | 0.3 B | [TeleSpeech-ASR1.0-large-kespeech](https://huggingface.co/Tele-AI/TeleSpeech-ASR1.0/blob/main/finetune_large_kespeech.pt) | [dict.char7531.txt](https://huggingface.co/Tele-AI/TeleSpeech-ASR1.0/blob/main/dict.chr7531.txt) | 基于pretrain_large,采用KeSpeech数据集[8种方言](#KeSpeech各方言上结果)微调训练| * finetune模型为已经在特定数据集微调过的模型,可直接使用 * pretrain模型为无监督预训练模型,**无法直接进行ASR任务**,需要用少量标注数据进行有监督训练后使用。相比于直接训练的方言识别模型,基于预训练模型可以利用更少的有标注数据获得更好的方言识别性能。我们提供了两种有监督训练框架,用于下游ASR任务:1) 基于fairseq的预训练模型微调; 2) 基于wenet的表征提取(特征提取器)训练下游ASR模型 # 环境配置 * PyTorch version >= 1.13.0 * Python version >= 3.8 * 数据准备、程序训练需要使用kaldi,请确保已正确安装:https://github.com/kaldi-asr/kaldi * 若已有提好的特征,程序运行时可以使用wenet开源框架中kaldi_io.py实现的方法替换kaldiio.load_mat,从而无需安装kaldi * 安装fairseq及其依赖 ```shell script $ git clone https://github.com/pytorch/fairseq $ cd fairseq $ pip install --editable ./ ``` * 安装fairseq额外依赖以及wenet表征训练任务运行所需依赖 ```shell script $ pip install -r requirements.txt ``` * 若只需要fairseq进行微调、解码,可以不安装完整的requirements.txt,只需保证kaldiio, timm, editdistance, soundfile已正确安装 ```shell script $ pip install kaldiio timm editdistance soundfile ``` # 数据准备 ## 特征提取 * 模型输入为从16K采样率音频中提取的40维mfcc特征,**非原始音频** * 利用kaldi提取40维mfcc特征,运行脚本参考`prepare_kaldi_feats.sh` * 可将运行脚本`prepare_kaldi_feats.sh`与参数设置`mfcc_hires.conf`置于kaldi任一egs目录下(与cmd.sh等脚本平级,例如/path/to/kaldi/egs/aishell/s5/prepare_kaldi_feats.sh),运行`prepare_kaldi_feats.sh`即可 * 为各数据集准备训练用文件`data.list`,可参考`make_datalist.py`,以`\t`分隔: ``` $ cat train/data.list utt:X0000000000_100638174_S00037 feat:/data/raw_nnaudio.test.1.ark:2983479385 feat_shape:363,40 text:不惜在这种试验中毁灭包括自己在内的一切 token:不 惜 在 这 种 试 验 中 毁 灭 包 括 自 己 在 内 的 一 切 tokenid:[TOKENID] token_shape:19,5537 utt:X0000000001_100849618_S00006 feat:/data/raw_nnaudio.test.1.ark:2984296665 feat_shape:345,40 text:在他们收到足够建立大统一模型的数据后 token:在 他 们 收 到 足 够 建 立 大 统 一 模 型 的 数 据 后 tokenid:[TOKENID] token_shape:18,5537 ... ``` ## 字典准备 * 微调阶段,需要准备fairseq格式的 `dict.${label}.txt`,`${label}`为建模单元类型,如ltr, bpe等。以`dict.ltr.txt`为例: ``` 是 2 好 3 ... ``` * 预训练模型表征训练ASR任务阶段,需要准备wenet格式的`lang_char.txt`,相比于`dict.${label}.txt`额外添加`