跳到主要内容

开放权重

OpenThai 2.0 ASR Streaming

一个开源模型,在说话的同时把泰语语音写成文字。

  • 参数0.64十亿
  • 许可OpenMDW-1.1
  • 文字落后于语音80–1120ms
  • FLEURS 字符错误率8.47%

下载权重阅读发布文章

iApp Technology 于 2026 年 11 月 12 日在 Hugging Face 发布开放权重。

能做什么​

  • 边说边写文字比声音晚 80、320、560 或 1120 毫秒,在解码时选择;同一份权重支持所有设置,等待越久准确率略高。
  • 任意长度随附的服务器像 iApp 的托管服务一样,在停顿处把长录音切成几段,每段单独解码,因此一小时或更长的录音也能在固定内存内完成。我们测试过最长 87 分钟的文件。
  • 全部泰文,或英文词写成英文使用 th-TH 提示时全部输出泰文字母;使用 th-mix 时,说话人说出的英文单词以拉丁字母输出。
  • 谁说了什么附带的服务器可借助 NVIDIA 的开源说话人分离模型,为会议标注说话人。
  • GPU 或 CPU一张 NVIDIA H100 解码文件约为实时速度的 257 倍,可同时处理约 20 路实时流;8 线程的笔记本级 CPU 也能跟上一路实时流。
  • OpenThai ASR Realtime 背后的模型iApp 的托管实时语音转文字服务运行的就是这个模型,见 OpenThai ASR Realtime。

测评结果​

字符错误率(%),越低越好,延迟 560 ms。所有模型均由我们用同一个 NeMo 流式脚本、同样的设置解码:Typhoon ASR Streaming 0.6B 按其发布版本运行,并另外运行其作者一同发布的 4-gram 语言模型。

测试集片段OpenThai 2.0 ASR StreamingTyphoon ASR Streaming 0.6BTyphoon ASR Streaming 0.6B + 其 4-gram 语言模型差值(我们 − Typhoon)
FLEURS,朗读语音1,0218.4711.2811.73−2.82 [−3.15, −2.48], 我们更低
GigaSpeech2 测试集,YouTube8,82315.3516.3316.62−0.98 [−1.31, −0.58], 我们更低
TVSpeech,电视与 YouTube 节目57012.4110.8411.05+1.57 [+0.90, +2.52], Typhoon 更低
LOTUSDIS 会议,会议麦克风5,51620.7728.9129.02−8.15 [−8.88, −7.46], 我们更低
伊森方言50034.9034.1535.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。

简而言之,在 560 ms 延迟下,本模型在朗读语音(FLEURS 8.47%,对方 11.28%)、YouTube 片段(GigaSpeech2 15.35%,对方 16.33%)和会议(LOTUSDIS,该测试集对我们有利)上的错误少于 Typhoon ASR Streaming 0.6B;在电视谈话节目(TVSpeech 12.41%,对方 10.84%)上错误更多;伊森方言上两者持平。整段录音应先按停顿切分再解码,随附的服务器就是这样做的;原因见"整段录音"标签页。

运行​

按模型卡说明安装 NVIDIA NeMo(Speech),然后用 NeMo 的流式脚本解码一批 16 kHz 单声道文件。本页所有数字都是这样测得的。

hf download iapp/OpenThai2.0-ASR-Streaming --local-dir OpenThai2.0-ASR-Streaming
echo '{"audio_filepath": "a.wav", "duration": 8.8, "text": ""}' > in.jsonl
python <NeMo Speech>/examples/asr/asr_cache_aware_streaming/speech_to_text_cache_aware_streaming_infer.py \
model_path=OpenThai2.0-ASR-Streaming/openthai2.0-asr-streaming_bias-1.0.nemo \
dataset_manifest=in.jsonl output_path=out att_context_size="[56,6]" \
target_lang=th-TH strip_lang_tags=true rnnt_decoding.greedy.max_symbols_per_step=2

att_context_size 决定延迟:[56,0] 80 ms,[56,3] 320 ms,[56,6] 560 ms,[56,13] 1120 ms。target_lang=th-mix 会把英文单词写成拉丁字母。

测试环境:NeMo Speech cf724ac、PyTorch 2.13、Python 3.12。

需要托管服务?OpenThai ASR Realtime 通过 WebSocket API 提供此模型;Chinda ASR Pro v2 是 iApp 面向录音文件、准确率更高的服务。

局限​

  • 长录音。 整段一次解码时,模型会在安静的停顿之后漏掉一些词。把 TVSpeech 的片段按视频重新拼接、片段之间加一秒静音,整段解码的错误率为 23.54%,按停顿切分后为 12.66%。随附的服务器会自动按停顿切分。
  • 电视与 YouTube 谈话节目。 在 TVSpeech 上 Typhoon ASR Streaming 0.6B 更准确。部分差距来自 เอ่อ 这类犹豫声:TVSpeech 的转写保留它们,本模型则省略;其余大多是英文单词。
  • 英文单词。 使用 th-TH 时,英文单词以泰文字母写出。使用 th-mix 时,TVSpeech 中 13.7% 的英文单词以拉丁字母写出,Typhoon ASR Streaming 0.6B 为 16.1%。
  • 方言。 仅支持中部泰语。在伊森方言上字符错误率为 34.9%,与 Typhoon ASR Streaming 0.6B 相当。
  • 与麦克风的距离。 在 LOTUSDIS 会议上(1120 ms),会议桌中央麦克风的错误率为 20.3%,远距离通道 bt3m 和 bt10m 分别为 56.5% 和 53.5%。
  • 尚未测量: 电话音频(8 kHz)。尚未提供: 人名等自定义词表。

训练​

12,373 小时泰语语音和 961 小时英语语音。其中 10,400 小时泰语来自 GigaSpeech2 训练集的 YouTube 音频,使用该数据集自带的自动转写;其余均为人工转写:Thai Dialect Corpus(仅中部泰语)、iApp 自有录音、Common Voice、WanJuan-SiLu、THAI SER、LOTUSDIS、Som TTS 数据集、NECTEC 的 LOTUS 和 TSync、Thai Elderly Speech、Gowajee 以及 FLEURS 训练集。我们在 NVIDIA 的分词器中加入泰语词片,基于新词表重新训练解码器,编码器从 NVIDIA 的权重开始。共训练 115,000 步,约看过 30,700 小时音频。包括发布文件中保存的 blank offset 在内,所有设置都在开发集上选定;上述测试集中的任何片段都未用于训练。数据来源、时长和训练配方见模型卡。

许可​

OpenMDW License Agreement 1.1 版,与基础模型相同。OpenThai 2.0 ASR Streaming 是基于 NVIDIA Nemotron 3.5 ASR Streaming 0.6B 的泰语微调模型;NVIDIA 的许可和原始模型卡原样保留在仓库中。

Built on NVIDIA Nemotron.

由 iApp Technology 开发。训练与评测在 Siam AI Corporation 提供的 NVIDIA H100 GPU 上完成。

Siam AI Corporation