audio.cppの使い方
audio.cpp は音声 AI モデルをローカルで実行することができる Python なしで動作する ggml ベースの推論フレームワークです。
C++ で書かれているので余計なソフトをインストールすることなく高速に動作し、NVIDIA GPU で使える CUDA バックエンド以外にも、Vulkan バックエンドがあるので NVIDIA の GPU 以外でも活用できますし、CPU だけでも動作します。音声 AI は画像生成 AI や LLM に比べると比較的性能が低くても何とかなる場合が多く、モデル管理等を含め基本的な機能を実装したネイティブスタジオという WebUI もあるので、音声 AI を様々な形で容易に活用できるソフトだと思います。
2026/10/2 時点ではあまり知られていないようなので、Windows でのネイティブスタジオの使い方を中心に基本的な使い方を解説します。
更新履歴
- audiocpp_server の Streaming モードの説明を追加(2026/10/13)
Windows 版バイナリのインストール
公式サイトにアクセスしてください。右の方に Release という欄があります。2026/10/2 時点で v0.9.0 が最新版なのでv0.9.0をクリックしてください。
下の方の assets からファイルをダウンロードします。
NVIDIA GPU(2000番台以上)の場合
CUDA 13.3 バックエンドの audio-v0.9.0-bin-windows-x64-cuda13.3.zip と audio-v0.9.0-cudart-windows-x64-cuda13.3.zipをクリックしてダウンロードしてください。
ダウンロードしたファイルをエクスプローラーで適当な場所に移動させて、右クリックして展開してください。CUDA 13.3 バックエンドの場合、audio-v0.9.0-bin-windows-x64-cuda13.3.zip を最初に展開し、次に audio-v0.9.0-cudart-windows-x64-cuda13.3.zip を展開すると cublas64_13.dll, cublasLt64_13.dll, cudart64_13.dll, cufft64_12.dll の 4 つのファイルがあるはずです。audio-v0.9.0-bin-windows-x64-cuda13.3.zipを展開したフォルダに移動させてください。正しく展開しているなら次のようになっているはずです。
起動用のバッチファイルを右クリックして名前を付けて保存でファイルの種類をすべてのファイル(.)、ファイル名 audiocpp-cuda.bat (.txtを消す)で保存してください。バッチファイルを audio-v0.9.0-bin-windows-x64-cuda13.3.zip を展開したフォルダに移動させてください(注: 2026/10/2時点ではここにアクセスするとなぜかエラーになります)
それ以外の GPU(AMD Radeon や Intel)
Vulkan バックエンドのaudio-v0.9.0-bin-windows-x64-vulkan.zipをクリックしてダウンロードしてください。
ダウンロードしたファイルをエクスプローラーで適当な場所に移動させて、右クリックして展開してください。
起動用のバッチファイルを保存でファイルの種類をすべてのファイル(.)、ファイル名 audiocpp-vulkan.bat (.txtを消す)で保存してください。バッチファイルを audio-v0.9.0-bin-windows-x64-vulkan.zip を展開したフォルダに移動させてください。
WebUI ネイティブスタジオ の起動
audiocpp-cuda.bat もしくは audiocpp-vulkan.bat をダブルクリックすると audio.cpp の audiocpp_server が起動します。
警告が出る場合がありますが、実行を押してください。
注: ターミナルの使い方がわかる人向け。バッチファイルの中身は
.\audiocpp_server.exe --ui --ui-management --backend cuda
.\audiocpp_server.exe --ui --ui-management --backend vulkan
なので、ターミナルを開いて手で打って起動しても問題ないです。
http://127.0.0.1:8080/ と表示されたらこれを Ctrl + クリックで開くかブラウザの URL に入れてください。
audio.cpp の WebUI ネイティブスタジオが表示されます。
CUDA 版では右上に CUDA、Vulkan 版では Vulkan と出るはずです。
もし表示言語が英語の場合は右上の方の INTERFACE LANGUAGE に右を押して日本語を選択してください。v0.9.0 からこちらが翻訳した日本語訳で操作できるようになっています。
以下 Vulkan バックエンドを使用します。
使い方
用語解説
最初に audio.cpp のメニュー欄やモデル説明に使われているで使われている 音声 AI の用語を説明します。一般的に音声 AI 全般で使われている用語とほぼ同じです。こちらの日本語訳 UI で採用しているものに(*)を付けています。
| 英語の略語 | フルスペル | 日本語 | 意味 |
|---|---|---|---|
| tts | Text to Speech | 音声合成(*)、テキスト読み上げ | 文章をしゃべらせます |
| clon | Voice Cloning | 音声クローン(*)、声質複製 | 参照音声の声質で文章をしゃべらせます |
| vdes | Voice Design | ボイスデザイン、声のデザイン(*)、声質設計 | 「低くて渋い声」などのテキスト指示で声質を指定して文章をしゃべらせます |
| asr または stt | Automatic Speech Recognition または Speech to Text | 音声認識(*)、文字起こし(*) | 会話から文章に変換します |
| gen | Music / Audio / Video Generation | 音楽・効果音・動画生成(*) | 音楽や効果音や動画を生成します |
| vc | Voice Conversion | ボイスチェンジャー、声質変換(*) | 話している言葉や話し方はそのままに話し手の声質だけを別人のものに変更します |
| svc | Singing Voice Conversion | 歌声変換(*)、AIカバー | 元の歌のメロディやビブラートなどの歌い方を保ったまま対象歌手の声に変えます |
| vad | Voice Activity Detection | 発話検出、音声区間検出(*) | 音声データのどこで会話をしているか検出しその区間を表示します |
| diar | Speaker Diarization | 話者分離、話者ダイアライゼーション(*)、話者特定 | 複数人が会話している音声データからいつ誰が発話したから識別分析します |
| sep | Source Separation | 音源分離(*) | 音声データから混ざり合っている異なる種類の音源を別々に抜き出します |
| align | Forced Alignment | 強制整列、強制アライメント(*) | 音声データと文章を照らし合わせ単語単位で何秒から何秒までに発音したか分析します |
| midi | Musical Instrument Digital Interface | MIDI変換、Audio to MIDI(*) | 音声からMIDIや楽譜への変換します |
| s2s | speech editing | 発話の編集(*) | 声質はそのままに一部だけ単語やセリフを差し替えるなど会話を編集します |
Enhancement / denoising は音声そのものの加工やノイズ除去です。訳しきれていない部分があるのは後で対応します。
基本操作
一番上にスタジオ、アリーナ、モデル、ランタイムのタブがあります。
スタジオが AI を利用するタブでメインになります。アリーナは音声合成の比較です。モデルで使用する AI モデルのダウンロードなどの管理ができます。ランタイムは audiocpp_server の状態が表示されます。
文章から音声を発話させる音声合成や音声クローンや声のデザインと、音声データから文章に変換する文字起こしと、歌詞や曲調を文章で指定して歌を生成する音楽生成をしていきます。
モデルのダウロード
モデルのタブをクリックしてください。
日本語の高品質な音声合成、音声クローン、声のデザインができる Irodori-TTS と様々な言語の文字起こしが可能な Qwen3 ASR と高品質な音楽を生成できる Yue2 3B をダウンロードします。
Irodori-TTS の Irodori-TTS v4.1 Small (ja tts, GGUF Q8)から GGUF Q8、Qwen3-ASR の Qwen3-ASR 0.6B(asr) から GGUF Q8、Yue2 3B (song gen)の Yue2 3B (song gen)から Main Q8_0 と VAE F16 を押してダウンロードしてください。モデルサイズは少し表示まで時間がかかりますが、そのうち表示されるので参考にしてください。
モデルによってできることが異なります。Irodori-TTS v4.1 Small は音声合成、音声クローン、声のデザイン全部できますが、多くの音声合成モデルは一部しかできないです。組み込み話者を指定しないといけない音声合成モデルや、参照音声とその内容の文章をセットで指定する音声クローンのみ可能なモデルや、声のデザインのみしかできないモデルなどもあるので、モデルの仕様をよく調べて使ってください。
また、モデルによっては生成した音声データの商用利用が禁止されているなど制限があるモデルもあります。今回使用するモデルのうち Irodori-TTS v4.1 Small と Qwen3-ASR 0.6B は制限の薄いライセンスですが、 Yue2 3B は CC BY-NC 4.0(非営利) なので商業利用に制限があります。企業はダメだけど個人クリエイターであれば商用利用可能という回答はありますが、注意して使ってください。
音声合成、音声クローン
スタジオタブに移動し一番左の音声合成を押してください。
モデルのダウンロードが環境していればモデルの下を押すとモデルの選択ができます。Irodori-TTS v4.1 Small を選んで、その下の GGUF Q8を押してください。モデルが読み込まれます。
テキスト欄に音声合成したい文章を入れて、一番下の実行を押します。
音声合成結果が右に表示されます。
参照音声を指定するとその声質で音声合成できます(音声クローン)。
声のデザイン
声のデザインは音声合成と別になっています。一番右の声のデザインを押してモデルを指定してください。
テキストに読み上げてほしい文章を書き、声の説明に声質を書いてください。
下の実行を押せば指定した声質で音声合成されます。
文字起こし
左から 2 番目の音声認識/文字起こしを押してください
Qwen3-ASR 0.6B (asr) モデルを選択し、GGUF Q8 を押してください。
入力音声のファイルを選択を押して文字起こししたい音声ファイルを選んでください。マイクで録音を押せばその場で音声を録音することもできます。
実行を押せば右に音声認識して文章を出力します。
音楽生成
左から 3 番目の音楽・動画生成を押してください。
Yue2 3B (song gen)モデルを選択し、Main weights を yue2-3b-q8_0.gguf、 VAE weights を yue2-vae-f16.gguf にしてモデルを読み込むを押してください。
歌詞の欄に歌詞を入れます。[Intro]がイントロ、[verse]がAメロ、[Pre-Chorus]がBメロ、[Chorus]がサビ、[Bridge]がCメロ、[Outro]がアウトロにだいたい対応します。
Styleに曲調を指定してください。通常は英単語区切りで指定します。
実行ボタンを押せば歌が生成されます。音声合成や音声認識よりは時間がかかると思います。
audiocpp_cli の使い方
以下は高度な使い方です。
Windows ターミナルで使用する場合の使い方を説明します。自動化させたり AI に audio.cpp を使わせたいならこのやり方がやりやすいと思います。
上記 WebUI と同じことをコマンドラインで行う場合のコマンド例を以下に示します。--backend は best も使えるはずです。うまく動かないならば cuda や vulkan などを指定してください。--text で文章、--out で出力ファイルを指定します。
- 音声合成
--task tts を指定してください。
.\audiocpp_cli.exe --task tts --family irodori_tts --model .\models\Irodori-TTS-v4-Small-GGUF\irodori-tts-v4-small-q8_0.gguf --backend best --text 'こんにちは、よろしくお願いします。' --out tmp1.wav
- 音声クローン
--task tts を指定してください。--voice-ref で参照音声のファイルを指定します。以下の例では chara1.wav を指定しています。
.\audiocpp_cli.exe --task tts --family irodori_tts --model .\models\Irodori-TTS-v4-Small-GGUF\irodori-tts-v4-small-q8_0.gguf --backend best --text 'こんにちは' --voice-ref chara1.wav --out tmp2.wav
- 声のデザイン
--task vdes を指定してください。--task tts でも Irodori-TTS-v4 では動くようですが。
.\audiocpp_cli.exe --task vdes --family irodori_tts --model .\models\Irodori-TTS-v4-Small-GGUF\irodori-tts-v4-small-q8_0.gguf --backend best --text 'こんにちは' --request-option 'caption=低い男性の声。' --out tmp3.wav
- 文字起こし
たぶん文字化けするので以下のコマンドを最初に入れてください。
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
--task asr を指定します。--audio で文字起こししたい音声ファイルを指定します。
.\audiocpp_cli.exe --task asr --family qwen3_asr --model .\models\Qwen3-ASR-0.6B-GGUF\qwen3-asr-0.6b-q8_0.gguf --backend best --audio chara1.wav
text_output に文字起こし内容が出力されるはずです。
ggml_vulkan: Found 1 Vulkan devices:
ggml_vulkan: 0 = NVIDIA GeForce RTX 3060 (NVIDIA) | uma: 0 | fp16: 1 | bf16: 1 | warp size: 32 | shared memory: 49152 | int dot: 1 | matrix cores: NV_coopmat2
family=qwen3_asr
task=asr
mode=offline
text_output=こんにちは、ゆかだよ。よろしくお願いします。
- 音楽生成
--task gen を指定します。--text で歌詞を指定し、--request-option 'style=...'で曲調を指定します。
.\audiocpp_cli.exe --task gen --family yue2 --model .\models\Yue2-3B-GGUF\ --backend best --text $'[Verse]\n毎朝の星占い チェックして深呼吸\nお気に入りのリボン 揺らして出かけよう!\n[Chorus]\nときめきスイッチ、オンにして!\n 世界中に響け、このメロディ\n君の笑顔が見たいから\n全力で届けるよ、大好きのサイン!' --request-option 'style=Japanese, kawaii idol pop, upbeat, sparkling synths, energetic drums, cute female lead vocal, catchy melody, polished mix' --request-option cot=off --request-option num_inference_steps=8 --session-option yue2.model_gguf=yue2-3b-q8_0.gguf --session-option yue2.vae_gguf=yue2-vae-f16.gguf --out tmp4.wav
audiocpp_server の Web API の使い方
WebUI のバッチファイルで起動してもいいのですが、モデルを手動で読み込まないといけないので、最初からモデルを読み込ませるように指定した設定ファイルを使って audiocpp_server.exe を起動したほうがいいです。
{
"host": "127.0.0.1",
"port": 8080,
"backend": "vulkan",
"device": 0,
"threads": 1,
"lazy_load": false,
"models": [
{
"id": "irodori-tts",
"family": "irodori_tts",
"path": "./models/Irodori-TTS-v4-Small-GGUF/irodori-tts-v4-small-q8_0.gguf",
"task": "tts",
"mode": "offline"
}
]
}
"backend" は best は使えないので、vulkan や cuda など使用するバックエンドを指定してください。"lazy_load": false を指定すると audiocpp_server 起動時にモデルを読み込みます。true だと生成開始時まで読み込みを遅らせるので、サーバーとして使うなら false でないと最初だけ遅延が発生してしまいます。
--config で設定ファイルを指定して起動してください。
.\audiocpp_server.exe --config .\server.json
curl の実行例
- サーバーの状態確認
curl.exe http://127.0.0.1:8080/health
正常ならこんな感じの返答です。
{"status":"ok","backend":"vulkan","models":1,"ui":true,"ui_management":false}
- モデルリスト取得
curl.exe http://127.0.0.1:8080/v1/models
{"object":"list","data":[{"id":"irodori-tts","object":"model","owned_by":"engine","family":"irodori_tts","task":"tts","mode":"offline","loaded":true,"path":".\\./models/Irodori-TTS-v4-Small-GGUF/irodori-tts-v4-small-q8_0.gguf"}]}
なお、WebUI のバッチファイルで起動した場合、起動直後はモデルが読み込まれていない状態になるはずなので気を付けてください。こんな返答になるはずです。
{"object":"list","data":[]}
- 音声合成
curl.exe http://127.0.0.1:8080/v1/audio/speech -H "Content-Type: application/json" -d '{\"model\": \"irodori-tts\", \"input\": \"こんにちは\"}' -o output1.wav
- 音声クローン
curl.exe http://127.0.0.1:8080/v1/audio/speech -H "Content-Type: application/json" -d '{\"model\": \"irodori-tts\", \"input\": \"こんにちは\", \"voice_ref\": {\"type\": \"path\", \"path\": \"chara1.wav\"} }' -o output2.wav
- 声のデザイン
curl.exe http://127.0.0.1:8080/v1/audio/speech -H "Content-Type: application/json" -d '{\"model\": \"irodori-tts\", \"input\": \"こんにちは\", \"options\": {\"caption\": \"低い男性の声。\"} }' -o output3.wav
音声認識は仕様変更されそうなので省きます。音楽生成は音声合成と同じようにすれば生成されるはずです。
Streaming モード (2026/10/13追記)
audiocpp_server の通常の動作は offline モードで、文章を完全に音声合成し完成した音声ファイルの形で送ってきます。一部の TTS モデルは Streaming モードがあって、音声合成できた部分単位で少しずつ音声データを送ってもらうことが可能になっています。
Qwen3 TTS Baseは参照音声と参照音声がしゃべっている内容(参照テキスト)の両方がないと音声合成できない音声クローンのみ対応モデルですが、この Streaming モードに対応しています。
これを利用すると、クライアント側で順次送られてきた音声を再生する実装が必要になりますが、再生開始までの待ち時間を大幅に減らすことができます。
server.json の例:
{
"host": "127.0.0.1",
"port": 8080,
"backend": "vulkan",
"threads": 4,
"lazy_load": false,
"models": [
{
"id": "qwen3-tts-stream",
"family": "qwen3_tts",
"task": "tts",
"mode": "streaming",
"path": "./models/qwen3-tts-12hz-1.7b-base-q8_0_v2.gguf",
"params": {
"sample_rate": 24000
}
}
]
}
あまりちゃんと検証していないのですが、audiocpp_server から送られてきた音声データを順次再生することができるサンプルコードを用意しました。
pipで必要なモジュールを入れてください。
pip install requests sounddevice
--model で指定するのはサーバーでstreaming modeにしたモデルのIDを指定してください。--text で合成する文章を指定です。--sample-rateはサーバーで指定したものに合わせてください。--voice-refで参照音声ファイルを指定し、参照音声が喋っている内容を-reference-textで指定してください。相対パスだと問題が起きる場合はサーバーと同じ場所で audiocpp_tts_stream_player_fixed.py を動かすか絶対パスで音声ファイルを指定してください。
python audiocpp_tts_stream_player_fixed.py --model qwen3-tts-stream --text 'こんにちは。これはストリーミング音声合成のテストです。長い音声を合成する場合でもすぐに再生開始するはずです。' --sample-rate 24000 --voice-ref chara1.wav --reference-text 'こんにちは'
Radeon 7800 XT で offline モードだと再生開始まで微妙な間がありますが、Streaming モードなら 1 秒以内に再生開始するので、リアルタイムに音声が返ってくる感じの動作になります。













