---
title: speech_charctc_kws_phone-xiaoyun_mt
canonical_url: "https://www.modelscope.cn/models/iic/speech_charctc_kws_phone-xiaoyun_mt"
md_url: "https://www.modelscope.cn/models/iic/speech_charctc_kws_phone-xiaoyun_mt.md"
repository: iic/speech_charctc_kws_phone-xiaoyun_mt
chinese_name: "CTC语音唤醒-移动端-单麦-16k-小云小云-多任务"
last_updated: 2025-06-04
pipeline_tag: keyword-spotting
tasks:
  - keyword-spotting
library_name:
  - pytorch
frameworks:
  - pytorch
downloads: 3370
stars: 5
---

# speech_charctc_kws_phone-xiaoyun_mt

> speech_charctc_kws_phone-xiaoyun_mt - iic 在 ModelScope 开源的模型。移动端语音唤醒模型，检测关键词为“小云小云”。模型主体为4层FSMN结构，在最后输出分出两个任务，任务一做全量2599个token分类，任务二只做“小云小云”唤醒极简token分类。两个任务均使用CTC训练准则，互相促进，整体参数量仍为750K，均适用于移动端设备运行，且任务二的计算量极大优化。

- **Repository**: iic/speech_charctc_kws_phone-xiaoyun_mt
- **Tasks**: keyword-spotting
- **Downloads**: 3370
- **Stars**: 5
- **Last updated**: 2025-06-04

Source: https://www.modelscope.cn/models/iic/speech_charctc_kws_phone-xiaoyun_mt

---

# 语音唤醒模型介绍

## Git模型下载
```
git clone https://www.modelscope.cn/iic/speech_charctc_kws_phone-xiaoyun_mt.git
```

## 模型描述

&emsp;&emsp;移动端语音唤醒模型，检测关键词为“小云小云”。  
&emsp;&emsp;模型网络结构继承自[论文](https://www.isca-speech.org/archive/interspeech_2018/chen18c_interspeech.html)《Compact Feedforward Sequential Memory Networks for Small-footprint Keyword Spotting》，其主体为4层cFSMN结构(如下图所示)，参数量约750K，适用于移动端设备运行。  
&emsp;&emsp;模型输入采用Fbank特征，训练阶段使用CTC-loss计算损失并更新参数，我们参照[论文](https://ieeexplore.ieee.org/document/9053577/)《Multi-task Learning for Voice Trigger Detection》的思路，在模型输出端采用Multi-Task进行建模和训练，其一为基于char建模的中文全集token分类，其二为小云项目相关的少数几个token分类。两个task的loss融合在一起可以互相促进彼此的参数更新，从而达到更好效果。同时第二个task由于建模单元显著减少，计算效率也得到优化。测试工具根据每一帧的预测数据进行后处理得到输入音频的实时检测结果。  
&emsp;&emsp;模型训练采用"basetrain + finetune"的模式，basetrain过程使用大量内部移动端数据，在此基础上，使用1万条设备端录制安静场景“小云小云”数据进行微调，得到最终面向业务的模型。由于task1采用了中文char全量token建模，并使用充分数据进行basetrain，因而支持基本的唤醒词/命令词自定义功能，但具体性能无法评估；task2不支持自定义功能，本模型demo区域默认调用task2的二进制模型，因此关闭了自定义功能。  
&emsp;&emsp;目前最新ModelScope和FunASR已支持用户在basetrain模型基础上，使用其他关键词数据进行微调，得到新的语音唤醒模型。  

<p align="center">
<img src="fig/Illustration_of_cFSMN.png" alt="cFSMN网络框图" width="400" />
<p align="left">

## 使用方式和范围

运行范围：  
- 现阶段只能在Linux-x86_64运行，不支持Mac和Windows。
- 模型训练需要用户服务器配置GPU卡，CPU训练暂不支持。

使用方式：
- 使用附带的kwsbp工具(Linux-x86_64)直接推理，分别测试正样本及负样本集合，综合选取最优工作点。

使用范围:
- 移动端设备，Android/iOS型号或版本不限，使用环境不限，采集音频为16K单通道。

目标场景:
- 移动端APP用到的关键词检测场景。

### 如何使用

请使用python3.9，并手动安装如下依赖：
```shell
pip install kwsbp==0.0.6 -f https://modelscope.oss-cn-beijing.aliyuncs.com/releases/repo.html
```

#### 基于ModelScope推理代码范例

```python
from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks

kwsbp_16k_pipline = pipeline(
    task=Tasks.keyword_spotting,
    model='iic/speech_charctc_kws_phone-xiaoyun_mt')

kws_result = kwsbp_16k_pipline(audio_in='https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/KWS/pos_testset/kws_xiaoyunxiaoyun.wav')
print(kws_result)
```

audio_in参数说明：
- 默认传入url地址的小云正样本音频，函数返回单条测试结果。
- 设置本地单条音频路径，如audio_in='LOCAL_PATH'，函数返回单条测试结果。
- 设置本地正样本目录(自动检索该目录下wav格式音频)，如audio_in=['POS_DIR', None]，函数返回全部正样本测试结果。
- 设置本地负样本目录(自动检索该目录下wav格式音频)，如audio_in=[None, 'NEG_DIR']，函数返回全部负样本测试结果。
- 同时设置本地正/负样本目录，如audio_in=['POS_DIR', 'NEG_DIR']，函数返回Det测试结果，用户可保存JSON格式文本方便选取合适工作点。


#### 基于FunASR推理代码范例
##### 环境依赖

funasr>=1.1.7

```python
from funasr import AutoModel

model = AutoModel(
    model="iic/speech_charctc_kws_phone-xiaoyun_mt",
    keywords="小云小云",
    output_dir="./outputs/debug",
    device='cpu'
)

test_wav = "https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/KWS/pos_testset/kws_xiaoyunxiaoyun.wav"

res = model.generate(input=test_wav, cache={},)
print(res)
```

### 模型局限性以及可能的偏差

- 考虑到正负样本测试集覆盖场景不够全面，可能有特定场合/特定人群唤醒率偏低或误唤醒偏高问题。

## 训练数据介绍

- basetrain使用内部移动端ASR数据5000+小时，finetune使用1万条众包安静场景"小云小云"数据以及约20万条移动端ASR数据。


## 模型训练流程

- 模型训练采用"basetrain + finetune"的模式，finetune过程使用目标场景的特定唤醒词数据并混合一定比例的ASR数据。如训练数据与应用场景不匹配，应当针对性做数据模拟。
- 本模型通过FunASR可进行finetune，ModelScope暂不支持。


### 预处理

- finetune模型对众包数据做近场加噪/加速模拟以扩充数据源。


## 数据评估及结果

- 模型在自建9个场景各50句的正样本集（共450条）测试，任务一唤醒率为93.33%，任务二唤醒率为96.00%。  
- 在自建的移动端负样本集上测试，误唤醒为40小时0次。

## 相关论文以及引用信息

```BibTeX
@inproceedings{chen18c_interspeech,
  author={Mengzhe Chen and ShiLiang Zhang and Ming Lei and Yong Liu and Haitao Yao and Jie Gao},
  title={{Compact Feedforward Sequential Memory Networks for Small-footprint Keyword Spotting}},
  year=2018,
  booktitle={Proc. Interspeech 2018},
  pages={2663--2667},
  doi={10.21437/Interspeech.2018-1204}
}
```

```BibTeX
@misc{sigtia2020multitasklearningvoicetrigger,
      title={Multi-task Learning for Voice Trigger Detection}, 
      author={Siddharth Sigtia and Pascal Clark and Rob Haynes and Hywel Richards and John Bridle},
      year={2020},
      eprint={2001.09519},
      archivePrefix={arXiv},
      primaryClass={eess.AS},
      doi={https://doi.org/10.1109/ICASSP40776.2020.9053577},
      url={https://arxiv.org/abs/2001.09519}, 
}
```
