結論
音声で指示するとコードを書く VS Code 拡張を作るために、日本語のリアルタイムSTTを3社で実測しました。Soniox の手応えはこうです。
- 確定テキストは、話し終わってから中央値 1.29 秒。Speechmatics(0.78 秒)より遅く、Modulate(2.11 秒)より速い
- 途中経過(partial)が細かい。約 130 ms ごとに更新され、話し終わってから 0.43 秒で意図が読める
- 精度はカスタム語彙(vocabulary)しだい。語彙を入れると技術語も行番号も取れたが、入れないと「FizzBuzz」が 9 回中 0 回だった
- 言い直しで文が割れにくい。言い直しのシナリオで、Speechmatics は 3/3 回割れ、Soniox は 1/3 回
「確定を待たずに partial で先回りする」設計にすると、Soniox の強み(細かい partial と精度)が活きます。
Soniox とは
60以上の言語を 1つのモデル で扱う音声AIのAPIです。リアルタイム/非同期の音声認識(STT)、音声翻訳、音声合成(TTS)があり、STT と TTS を同じAPIキーでまとめられます。
2026年10月時点の現行モデルは stt-rt-v5(リアルタイム)/stt-async-v5(非同期)(2026年6月リリース)。今回の計測も stt-rt-v5 です。
測った条件
- 計測日:2026-10-01
- 環境:Windows 11、Python 3.11.9、自宅回線
- 比較:Speechmatics Agent STT(linden-1、EUエンドポイント)/Soniox stt-rt-v5(エンドポイント検出あり)/Modulate velma-2-stt-streaming
- 音声:自分の声で録った WAV 18 本(6シナリオ × 3テイク)を、16 kHz・モノラルで 32 ms ずつ実時間で流す
- カスタム語彙:あり/なしの両方
- 話者は1人、各シナリオ3テイクなので、順位を決めきれる規模ではありません
速度(カスタム語彙あり、18テイク)
| 話し終わり → 確定(中央値・範囲) | 話し始め → 最初の partial | 話し終わり → 意図が読める | partial と確定の差 | |
|---|---|---|---|---|
| Speechmatics | 781 ms(694〜1283) | 776 ms | 375 ms | 約 0.4 秒 |
| Soniox | 1290 ms(738〜2912) | 897 ms | 433 ms | 約 0.9 秒 |
| Modulate | 2110 ms(1264〜3703) | 954 ms | 518 ms | 約 1.6 秒 |
partial の更新間隔は Speechmatics 約 380 ms、Soniox 約 130 ms、Modulate 約 150 ms でした。
確定だけ見ると Speechmatics が速いですが、「意図が読める」タイミングでは3社の差は 0.15 秒ほどに縮まります。確定を待たずに partial から意図を読む なら、Soniox の遅さはほぼ気になりません。
エンドポイント設定で速度は変わる
Soniox はエンドポイント検出の設定を5段階で変えると、確定までの中央値が 約 0.7 秒〜1.3 秒 の間で動きました。ただし一番攻めた設定では、言い直しのシナリオが毎回割れました。速さと「文が割れないこと」はトレードオフ です。
精度(正解テイク数/全テイク)
| 語彙 | FizzBuzz | async | リファクタ | 10行目 | 20行目 | 人名 | |
|---|---|---|---|---|---|---|---|
| Speechmatics | あり | 9/9 | 3/3 | 3/3 | 1/3 | 1/3 | 2/3 |
| Soniox | あり | 9/9 | 3/3 | 3/3 | 3/3 | 3/3 | 2/3 |
| Soniox | なし | 0/9 | 1/3 | 2/3 | 3/3 | 3/3 | 2/3 |
| Modulate | あり | 1/9 | 3/3 | 2/3 | 2/3 | 2/3 | 3/3 |
- 語彙ありの Soniox は、技術語も「10行目」「20行目」もほぼ全部取れました
- 語彙なしだと「FizzBuzz」は 0/9。英語の技術語を扱うなら、カスタム語彙は必須と考えたほうがいいです
文の割れ方(カスタム語彙あり)
| シナリオ | Speechmatics | Soniox | Modulate |
|---|---|---|---|
| 言い直し(「えっと、テストを…通して」型) | 3/3 回割れた | 1/3 | 1/3 |
| 言い淀み+無音 | 3/3 | 2/3 | 2/3 |
Speechmatics は話し始める前の雑音を発話として拾うことも 18 回中 3 回ありました。Soniox と Modulate では起きませんでした。音声で指示を出す用途では、指示が2つに割れると致命的なので、ここは Soniox を選んだ大きな理由です。
料金(2026年10月時点の公式料金表)
トークン課金で、1時間あたりの目安はリアルタイムSTT 約 $0.12、非同期STT 約 $0.10、TTS は生成音声1時間あたり約 $0.70 です。上の計測ぐらいの量なら数セントで済みます。
Pipecat と組み合わせる
音声エージェントの枠組み Pipecat では、STT のプロバイダーとして Soniox を差し込めます。STT・LLM・TTS をパイプラインでつなぐので、STT だけ他社と入れ替えて比べるのも簡単です。
まとめ
- 日本語+英語の技術語には強いが、カスタム語彙を入れるのが前提
- 確定までの約 1.3 秒は、partial(約 130 ms ごと)で先回り すれば隠せる
- エンドポイント設定で 0.7 秒まで縮められるが、言い直しで割れやすくなる
詳しい計測の手順と生データは Qiita に書いています。
- 計測記事:https://qiita.com/tasekino/items/b6891d8815eeb128c6c2
- この結果を使って作った VS Code 拡張:https://qiita.com/tasekino/items/518f4805a4865241926b
公式ドキュメント:https://soniox.com/docs
Tesuji