音声認識のためのライブラリです。Speech-to-Text 変換に ailia SDK と ailia.audio を利用します。
プラットフォームを選び、最初の音声認識推論を動かしてみましょう。
ailia Speech と、サンプルで使う音声読み込みライブラリ librosa をインストールします。
pip3 install ailia_speech librosa
PyPI で見る
ailia-models から example_ailia_speech.py と、サンプル WAV ファイル (スクリプトが想定する ax.wav として保存) をダウンロードして実行します。Whisper の重みは ./models/ に自動ダウンロードされます。
wget https://raw.githubusercontent.com/ailia-ai/ailia-models/master/audio_processing/whisper/example_ailia_speech.py
wget -O ax.wav https://raw.githubusercontent.com/ailia-ai/ailia-models/master/audio_processing/whisper/demo.wav
python3 example_ailia_speech.py
example_ailia_speech.py
ailia Speech はデスクトップとモバイルの各プラットフォームで CPU/GPU 推論に対応しています。
基本の文字起こしを超える、ailia Speech が標準で備える機能です。
自分のアプリケーションで音声を文字起こしする最小サンプル。
import ailia_speech
speech = ailia_speech.Whisper()
speech.initialize_model(
model_path="./models/",
model_type=ailia_speech.AILIA_SPEECH_MODEL_TYPE_WHISPER_MULTILINGUAL_LARGE_V3_TURBO,
)
text = speech.transcribe(audio_waveform, sample_rate)
ailia Speech についてのよくある質問。
ailia Speech には Whisper の各サイズ (Tiny / Base / Small / Medium / Large / Large-V3-Turbo) と SenseVoice が同梱されています。initialize_model() を呼び出す際に AILIA_SPEECH_MODEL_TYPE_* 定数で選択してください。
対応しています。transcribe() でファイル全体を待たずに、transcribe_step() と set_silent_threshold() を組み合わせると音声をチャンクで送り、得られた部分文字起こしを順次受け取れます。
Live モード (AILIA_SPEECH_FLAG_LIVE) を有効にすると、次の無音区間が検出される前に暫定結果をプレビューできます。低レイテンシな UX に有効です。
AILIA_SPEECH_TASK_TRANSCRIBE の代わりに AILIA_SPEECH_TASK_TRANSLATE を渡すと、英語以外の音声を一度に英訳しながら文字起こしできます。なお、Translate モードは Whisper Large V3 Turbo と SenseVoice では使用できません。
逆方向 (英語 → 日本語) は Whisper Translate に FuguMT 後処理モデルをつないでください。
3 つの方法を組み合わせられます:
Prompt — 想定される単語の短いリスト (例: "hardware software") を渡してデコードをバイアスします。
Constraints — 音声コマンド UI 向けに、文字集合や語彙 (例: "command1,command2") でデコードを制限します。
自動補正辞書 — OpenDictionary API で phonetic,correct 置換の CSV を読み込みます。
AILIA_SPEECH_VAD_TYPE_SILERO と OpenVadFile API を組み合わせて使います。AI ベースの VAD は、ほぼ無音の音声で音量検出が "Thank you for your attention" のような誤検出を起こす問題を回避できます。
モノラル float32 PCM です。任意のサンプリングレートに対応しており (librosa.load(..., mono=True) の出力など)、内部でリサンプリングされます。ステレオや整数 PCM は事前に変換してください。
C++ バインディングはランタイムライブラリと同じ場所に ailia.lic を配置する必要があります:
Windows: ailia.dll と同じフォルダ (サンプルでは cpp/ 配下)。
macOS: ~/Library/SHALO/
Linux: ~/.shalo/
Python / Unity / Flutter / JNI バインディングは初回実行時にライセンスを自動ダウンロードするため、この手順は C++ バインディングに限ります。
macOS / iOS では Metal が自動的に使用されます。Windows / Linux では CUDA Toolkit と cuDNN をインストールし、cuDNN を PATH に追加してください。GPU バックエンドの環境 ID を指定するか、サンプル CLI では auto を使います。
初回実行後はオフラインで動作します。Whisper / SenseVoice の重みは初回に initialize_model(model_path=...) へ指定したディレクトリにダウンロードされ、評価ライセンスも自動取得されます。以降はネット接続不要です。
評価ライセンスは実行時に自動でダウンロードされ、開発・評価用途に利用できます。商用配布には製品ライセンスを申請してください。詳細は ailia ライセンス規約 を参照してください。