---
title: SenseVoiceSmall_Hakka
canonical_url: "https://www.modelscope.cn/models/lukeewin01/SenseVoiceSmall_Hakka"
md_url: "https://www.modelscope.cn/models/lukeewin01/SenseVoiceSmall_Hakka.md"
repository: lukeewin01/SenseVoiceSmall_Hakka
chinese_name: "SenseVoice多语言语音理解模型Small-客家话"
last_updated: 2025-07-20
pipeline_tag: auto-speech-recognition
tasks:
  - auto-speech-recognition
library_name:
  - pytorch
frameworks:
  - pytorch
downloads: 2820
stars: 7
---

# SenseVoiceSmall_Hakka

> SenseVoiceSmall_Hakka - lukeewin01 在 ModelScope 开源的模型。该模型基于阿里开源的SenseVoiceSmall使用客家话数据集训练的模型，可以识别梅州客家话，惠州客家话和粤西客家话（涯话）

- **Repository**: lukeewin01/SenseVoiceSmall_Hakka
- **Tasks**: auto-speech-recognition
- **Downloads**: 2820
- **Stars**: 7
- **Last updated**: 2025-07-20

Source: https://www.modelscope.cn/models/lukeewin01/SenseVoiceSmall_Hakka

---

# 0. 研究背景

在做虚拟数字人对话时，我们可能会遇到有些用户不懂普通话，使用当地方言和虚拟数字人沟通，那么我们在使用开源的模型中，你会发现基本上没有方言识别能力，因此，训练一个可以识别方言的ASR模型很有必要。阿里开源了SenseVoiceSmall模型，这个模型有很好的学习能力，可以根据提供的方言数据集进行学习到方言到简体中文的映射。这里收集了2231条客家话数据集，基于SenseVoiceSmall来训练出一个可以识别梅州客家话，惠州客家话和粤西客家话的模型。

# 1. 数据集构成

本次训练使用了2231条客家话数据集，其中包含梅州客家话，惠州客家话以及粤西客家话。这些数据从某音和youtube上通过视频采集，同时还加上了100条自己录制的客家话。

# 2. 运行

下面给出一个demo.py方便你们测试。

```python
# !/usr/bin/env python
# _*_ coding utf-8 _*_
# @Time: 2025/7/21 1:41
# @Author: Luke Ewin
# @Blog: https://blog.lukeewin.top
from funasr import AutoModel

model = AutoModel(
    model="lukeewin01/SenseVoiceSmall_Hakka",
    # vad_model="iic/speech_fsmn_vad_zh-cn-16k-common-pytorch",
    # vad_kwargs={"max_single_segment_time": 30000},
    disable_update=True,
)


input_wav = (
    r"D:\test\audio\hakka_test.wav",
    r"D:\test\audio\hakka_a.wav",
    r"D:\test\audio\hakka_b.wav",
)

res = model.generate(input=input_wav, batch_size_s=0, beam_size=5, use_itn=True, gain_event=True, fp16=True, language="zh")
print(res)
```

注意：把上面代码中的 input_wav 中的三个音频路径替换为你电脑中的路径。

为了方便对比训练前后的效果，这里可以运行下面代码，下面代码中使用的是训练之前的 SenseVoiceSmall 模型。

```python
# !/usr/bin/env python
# _*_ coding utf-8 _*_
# @Time: 2025/7/21 1:41
# @Author: Luke Ewin
# @Blog: https://blog.lukeewin.top
from funasr import AutoModel

model = AutoModel(
    model="iic/SenseVoiceSmall",
    # vad_model="iic/speech_fsmn_vad_zh-cn-16k-common-pytorch",
    # vad_kwargs={"max_single_segment_time": 30000},
    disable_update=True,
)


input_wav = (
    r"D:\test\audio\hakka_test.wav",
    r"D:\test\audio\hakka_a.wav",
    r"D:\test\audio\hakka_b.wav",
)

res = model.generate(input=input_wav, batch_size_s=0, beam_size=5, use_itn=True, gain_event=True, fp16=True, language="zh")
print(res)
```

从输出的结果中不难看出，训练之后的效果比训练之前好很多。下面是结果。

正确文本

```shell
hakka_test: 这里我来测试一下语音识别看看识别的怎么样。
hakka_a: 你好大家好欢迎大家来到我的视频频道。
hakka_b: 你吃饭了吗今晚你吃什么菜呢？
```

训练前

```shell
[{'key': 'hakka_test', 'text': '<|zh|><|NEUTRAL|><|Speech|><|withitn|>地下来来测试一下语唔识劈睇睇识劈得怎么样。'}, {'key': 'hakka_a', 'text': '<|zh|><|NEUTRAL|><|Speech|><|withitn|>以号太假后稳人太假来到我的视频频道。'}, {'key': 'hakka_b', 'text': '<|zh|><|NEUTRAL|><|Speech|><|withitn|>女式花蕾梦点呀儿式乜牙菜呢？'}]
```

训练后

```shell
[{'key': 'hakka_test', 'text': '<|zh|><|NEUTRAL|><|Speech|><|withitn|>这我来测试一下语音识别大弟识别的怎么样。'}, {'key': 'hakka_a', 'text': '<|zh|><|NEUTRAL|><|Speech|><|withitn|>你好大家好欢迎大家来到我的视频频道。'}, {'key': 'hakka_b', 'text': '<|zh|><|NEUTRAL|><|Speech|><|withitn|>你吃话联吗今晚你吃什么菜呢？'}]
```

可以看到明显的区别，说明训练是有效果的。

[具体演示视频可点击这里。](https://www.bilibili.com/video/BV1nbghzcEzC)

# 3. 训练loss曲线

下面是训练中的loss曲线。

![image-20250721015758090](https://image.lukeewin.top/img/202507210158270.png)

# 4. 其它

由于当前使用的是梅州、惠州以及粤西地区的客家话数据集训练的客家话ASR模型，如果你测试的时候使用的是非这三个地区的客家话，可能会识别出的字错率偏高。如果你想要使得训练的模型达到工业级水平，你应该准备更多的方言数据集用于训练，至少要200小时。

如果你想要进一步提升模型的识别准确率，欢迎联系 lukeewin01，或者你有其它方言需要训练，也欢迎联系 lukeewin01。

# 5. 联系

个人博客：https://blog.lukeewin.top

个人代码仓库：https://github.com/lukeewin
