OpenThai 2.0 ASR Streaming:在说话的同时把泰语写成文字的开源模型
今天我们发布 OpenThai 2.0 ASR Streaming,一个在说话的同时把泰语语音写成文字的开放权重模型。文字只比声音晚 80 到 1120 毫秒,一个模型提供四种延迟设置。它有 0.64 十亿参数,可在一张 GPU 或 CPU 上运行,按 OpenMDW-1.1 许可免费下载。它也是我们的托管实时服务 OpenThai ASR Realtime 背后的模型。
模型页面:iapp.co.th/openmodels/openthai2p0-asr-streaming · 权重:huggingface.co/iapp/OpenThai2.0-ASR-Streaming
为什么要流式
实时字幕、呼叫中心助手和语音输入都需要在对方还在说话时就拿到文字。大多数开源泰语语音模型基于 Whisper,它要先读完整段录音,或至少一个 30 秒的窗口,才会写出文字。OpenThai 2.0 ASR Streaming 以短音频块读取,并把状态从一块延续到下一块,因此音频一到就能写出文字,无论音频多长,内存占用都不变。音频块长度在解码时选择:80 毫秒响应最快,1120 毫秒最准确,320 和 560 毫秒介于两者之间。
测评结果
我们与另一个基于同一 NVIDIA 基础模型的开源泰语模型 Typhoon ASR Streaming 0.6B 进行了比较:两个模型都由我们自己解码,使用 相同的公开测试集、相同的脚本和设置。
字符错误率(%),越低越好,延迟 560 ms。所有模型均由我们用同一个 NeMo 流式脚本、同样的设置解码:Typhoon ASR Streaming 0.6B 按其发布版本运行,并另外运行其作者一同发布的 4-gram 语言模型。
| 测试集 | 片段 | OpenThai 2.0 ASR Streaming | Typhoon ASR Streaming 0.6B | Typhoon ASR Streaming 0.6B + 其 4-gram 语言模型 | 差值(我们 − Typhoon) |
|---|---|---|---|---|---|
| FLEURS,朗读语音 | 1,021 | 8.47 | 11.28 | 11.73 | −2.82 [−3.15, −2.48], 我们更低 |
| GigaSpeech2 测试集,YouTube | 8,823 | 15.35 | 16.33 | 16.62 | −0.98 [−1.31, −0.58], 我们更低 |
| TVSpeech,电视与 YouTube 节目 | 570 | 12.41 | 10.84 | 11.05 | +1.57 [+0.90, +2.52], Typhoon 更低 |
| LOTUSDIS 会议,会议麦克风 | 5,516 | 20.77 | 28.91 | 29.02 | −8.15 [−8.88, −7.46], 我们更低 |
| 伊森方言 | 500 | 34.90 | 34.15 | 35.79 | +0.75 [−0.21, +1.69], 持平 |
- 评分前,两边文本统一写法:数字统一、去掉空格和标点。差值为我们减去 Typhoon ASR Streaming 0.6B,并给出按整段视频、整份录音、整位说话人或整场会议重采样的 95% 配对 bootstrap 区间;区间包含零即为持平。粗体表示错误率以 95% 置信度低于另一个模型。
- TVSpeech 是 Typhoon ASR Streaming 0.6B 自己的 基准。LOTUSDIS:我们用同一批会议室和麦克风的其他会议训练过,部分说话人两边都有,因此该行对我们有利。FLEURS:我们用过其训练集和开发集,没有用测试集。两个模型都用过 GigaSpeech2 训练集。我们没有用伊森话数据训练,Typhoon ASR Streaming 0.6B 公布的训练数据中也没有。
- 我们发布的文件带有在开发数据上选定的 blank offset −1.0。对 Typhoon ASR Streaming 0.6B 做同样处理,它在同一开发数据上的最佳值为 -2.0,错误率变为:FLEURS,朗读语音 11.63,GigaSpeech2 测试集,YouTube 15.26,TVSpeech,电视与 YouTube 节目 10.68,LOTUSDIS 会议,会议麦克风 26.71,伊森方言 33.87。
本模型在朗读语音、YouTube 片段和会议上领先;LOTUSDIS 对我们有利,因为我们用过同一批会议室的其他会议训练。Typhoon ASR Streaming 0.6B 在电视谈话节目上领先,即其自己的基准 TVSpeech。两者在伊森方言上持平。Typhoon ASR Streaming 0.6B 的 4-gram 语言模型如其模型卡所说提高了英文单词的召回率,但在我们的每个测试集上都增加了错误。整段录音应按停顿切分后分段解码,随附的服务器就是这样做的:这样本模型的结果与逐段解码相当或更好;整段一次解码则会在安静的停顿之后漏掉一些词。
1120 毫秒及各延迟设置下的结果见模型页面。
我们如何构建
我们从 NVIDIA Nemotron 3.5 ASR Streaming 0.6B 出发。这是一个多语言流式模型,微调前在泰语上 99% 的字符都是错的。我们在其分词器中加入 1,901 个泰语词片,基于新词表重新训练解码器,并从 NVIDIA 的编码器开始微调整个模型。
- 数据: 12,373 小时泰语语音和 961 小时英语语音。其中 10,400 小时泰语是 GigaSpeech2 训练集中的 YouTube 音频,使用其自带的自动转写;其余 1,973 小时为人工转写,来自公开泰语语料以及 iApp 自己录制的播客、访谈节目和直播。呵叻泰语、北部方言(Kham Mueang)和北大年马来语的录音未被使用,因此这是一个中部泰语模型。
- 训练: 115,000 步,约看过 30,700 小时音频,在 NVIDIA H100 GPU 上完成。后期阶段加入了第二个语言提示
th-mix,把英文单词写成拉丁字母,并让数据更偏向对话语音。 - 只在开发数据上做选择: 包括发布文件中保存的 blank offset 在内,所有设置都在开发集上选定;上述测试集中的任何片段都未用于训练。
局限
本模型面向中部泰语,在伊森方言上并不优于 Typhoon ASR Streaming 0.6B。除非选择 th-mix,英文单词都以泰文字母写出;即使选择了,也只有部分单词以拉丁字母写出。犹豫声和重复的词通常会被省略。麦克风离说话人较远时准确率明显下降。长录音应按停顿切分后分段解码,随附的服务器就是这样做的。尚未在电话音频上测量。模型卡列出了全部局限及相应数据。
获取
权重、模型卡以及处理文件和实时流的小型服务器都在 Hugging Face 上;模型页面给出了命令。如果不想自己运行 GPU,OpenThai ASR Realtime 通过 WebSocket API 提供此模型,发布期间免费;Chinda ASR Pro v2 是我们面向录音文件、准确率更高的服务。
OpenThai 2.0 ASR Streaming 是 NVIDIA Nemotron 3.5 ASR Streaming 0.6B 的衍生模型,按 OpenMDW License Agreement 1.1 版发布。Built on NVIDIA Nemotron.训练与评测在 Siam AI Corporation 提供的 NVIDIA H100 GPU 上完成。