本記事にはアフィリエイト広告(Amazon アソシエイト)が含まれます。
実測日: Tue Nov 03 2026 09:00:00 GMT+0900 (Japan Standard Time)
2026 年 11 月 3 日に測定。数値は各条件 3 回の平均です。
まとめ
- RADXA 製 Fogwise AirBox Q900(Qualcomm IQ-9075)で、音声合成モデル CosyVoice2 のうち、文章から「音声トークン」を作る LLM の部分を、Qualcomm の実行環境 GenieX と GGUF 形式のモデルで動かし、CPU と NPU(Hexagon)の速さを比べました。
- 最初のトークンが出るまでの時間は NPU が 4〜6 倍速い(約 47 ms 対 165〜360 ms)一方、トークンを 1 つずつ作る速さは NPU と CPU でほぼ同じでした。0.5B の小さなモデルでは、生成の速さは計算よりもメモリーの読み出しで決まるためと考えられます。
- 最も速かったのは CPU・4 bit 量子化(Q4_0) で、音声 10 秒分(250 トークン)を約 2.7 秒で作れました(LLM 部分の RTF 約 0.27)。
- GPU(Adreno 663)は、今回の Linux 環境では GenieX から使えませんでした。
この記事の数値は LLM の部分だけです。 CosyVoice2 が音声を出すには、このあとに音声トークンを波形に変える段(Flow と音声合成器)が要ります。GenieX はこの段に対応していないため、音声合成全体の速さはこの数値より遅くなります。
CosyVoice2 の構成と今回の範囲
CosyVoice2 は次の 3 段で音声を作ります。
| 段 | 役割 | 今回 |
|---|---|---|
| LLM(約 0.5B) | 文章から音声トークンを作る(音声 1 秒あたり 25 トークン) | 測定 |
| Flow | 音声トークンから音響特徴量を作る | 対象外 |
| 音声合成器(HiFT) | 音響特徴量から波形を作る | 対象外 |
LLM の段は全体の中で最も時間がかかる段で、GGUF 形式に変換して llama.cpp 系の実行環境で動かせます。
測定の条件
| 項目 | 内容 |
|---|---|
| 本体 | RADXA 製 Fogwise AirBox Q900(Qualcomm IQ-9075、CPU は Cortex-A78C 8 コア、NPU は Hexagon)を 2 台 |
| 実行環境 | Qualcomm GenieX(llama.cpp 系の実行環境、付属のベンチマーク機能) |
| モデル | CosyVoice2-0.5B の LLM 部分の GGUF 版。8 bit(Q8_0)、16 bit(f16)、f16 から作った 4 bit(Q4_0)の 3 種 |
| 負荷 | 128 トークンを読み込ませたあと、250 トークン(音声 10 秒分)を生成。3 回の平均 |
| 指標 | LLM 部分の RTF =(最初のトークンまでの時間 + 250 トークンの生成時間)÷ 10 秒 |
入力にはベンチマーク用のトークン列を使っており、生成した音声トークンの中身(音として正しいか)は評価していません。
結果
| 量子化 | 実行先 | 最初のトークンまで | 生成の速さ | LLM 部分の RTF(1 台目 / 2 台目) |
|---|---|---|---|---|
| Q8_0 | CPU | 200〜221 ms | 70〜72 トークン/秒 | 0.372 / 0.379 |
| Q8_0 | NPU | 46〜47 ms | 71 トークン/秒 | 0.358 / 0.358 |
| Q4_0 | CPU | 165〜168 ms | 99〜100 トークン/秒 | 0.266 / 0.269 |
| Q4_0 | NPU | 47 ms | 86〜87 トークン/秒 | 0.292 / 0.296 |
| f16 | CPU | 333〜363 ms | 44 トークン/秒 | 0.627 / 0.609 |
| f16 | NPU | 56〜57 ms | 46〜47 トークン/秒 | 0.549 / 0.534 |
| すべて | GPU | — | — | 使用できず |
2 台の差は小さく、再現性は良好でした。
読み取れること
- NPU は「読み込み」に強く、「生成」では CPU と同等。 最初のトークンまでの時間は NPU で 4〜6 倍短くなります。一方、1 トークンずつの生成では、NPU と CPU の差はほとんどありませんでした(Q4_0 では CPU のほうが速い)。
- 量子化を強くするほど生成が速い。 生成の速さはおおむね f16 < Q8_0 < Q4_0 の順で、モデルの大きさ(読み出す量)に反比例しています。
- リアルタイムの余裕。 音声 1 秒に必要なトークンは 25 個なので、70〜100 トークン/秒なら LLM 部分は実時間の 3〜4 倍の速さです。ただし、Flow と音声合成器の時間が別にかかります。
- 使い分けの目安。 応答の出始めを速くしたい場合は NPU、まとまった量を作る場合は CPU の Q4_0 が有利です。CPU を他の処理に使いたい場合は、NPU に任せても生成の速さはほぼ落ちません。
制約と注意点
- 音声合成全体の速さは測っていません。Flow と音声合成器を含めた RTF は、今後の測定で示します。
- 4 bit 版(Q4_0)は 16 bit 版から量子化して作ったもので、音質への影響は評価していません。
- GPU は、今回の Linux 環境に GenieX が使う GPU 向けのドライバーを準備していないので、使用できませんでした。
今後
- Flow・音声合成器を含めた音声合成全体の速さ
- 量子化による音質の変化
- 音声認識(SenseVoice)と組み合わせた音声対話での応答時間
関連:Fogwise AirBox Q900 で日本語音声認識 SenseVoice を動かす。CPU・NPU・LLM8850 の速さと精度
この記事で扱った機材
ASUS UGen300(Hailo-10H USB AI アクセラレータ)
Hailo-10H を USB 3.1 Gen2 で外付けにした製品。8 GB の LPDDR4 を載せる。本サイトの Hailo-10H の実測はすべてこの個体で行った。