ailia Speech

音声認識のためのライブラリです。Speech-to-Text 変換に ailia SDK と ailia.audio を利用します。

はじめに

プラットフォームを選び、最初の音声認識推論を動かしてみましょう。

1

インストール

ailia Speech と、サンプルで使う音声読み込みライブラリ librosa をインストールします。

pip3 install ailia_speech librosa
PyPI で見る
2

サンプルを実行

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 推論に対応しています。

対応 OS

  • Windows 10 / 11
  • macOS 11 以降
  • Linux (Ubuntu 20.04 以降)
  • iOS 13 / Android 7 以降

言語とコンパイラ

  • Python 3.6 以降 / Dart・Flutter 3.19 以降
  • C++17 (VS 2019 以降 / Xcode 14.2 以降 / clang)
  • C# / Unity 2021.3.10f1 以降

対応モデル

  • Whisper Tiny / Base / Small (同梱)
  • Whisper Medium / Large / Large V3
  • Whisper Large V3 Turbo
  • SenseVoice (small)

音声と言語

  • Mono float32 PCM (auto-resampled)
  • 99 言語に対応 (Whisper)
  • 5 言語 (SenseVoice: zh / en / yue / ja / ko)
  • Batch, Live (real-time), and streaming

機能

基本の文字起こしを超える、ailia Speech が標準で備える機能です。

リアルタイム / ストリーミング

  • 即時プレビュー用の Live モード
  • VAD による無音検出 (Silero AI)
  • 音量しきい値による無音判定
  • 中間コールバック / 割り込み制御

翻訳と多言語対応

  • Transcribe / Translate (英訳) モード
  • セグメント単位の自動言語検出
  • SetLanguage による言語固定モード

精度向上機能

  • 固有名詞・専門用語のための Prompt コンテキスト
  • 文字 / 語彙制約
  • 自動補正辞書 (CSV)
  • 後処理モデル (T5 medical / FuguMT)

出力とメモリ

  • セグメントごとの信頼度スコア
  • 開始 / 終了タイムスタンプ
  • 話者ダイアリゼーション (PyannoteAudio)
  • Virtual Memory モード (RAM 約 55% 削減)

プロジェクトで API を使う

自分のアプリケーションで音声を文字起こしする最小サンプル。

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)

プラットフォーム別 API リファレンス

Python

C++

Unity

Flutter

よくある質問

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 に有効です。

Translate モードはどう動作しますか?

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 を読み込みます。

高精度な無音検出に VAD を使うには?

AILIA_SPEECH_VAD_TYPE_SILEROOpenVadFile API を組み合わせて使います。AI ベースの VAD は、ほぼ無音の音声で音量検出が "Thank you for your attention" のような誤検出を起こす問題を回避できます。

入力音声のフォーマットは何ですか?

モノラル float32 PCM です。任意のサンプリングレートに対応しており (librosa.load(..., mono=True) の出力など)、内部でリサンプリングされます。ステレオや整数 PCM は事前に変換してください。

C++ ではライセンスファイルをどこに置きますか?

C++ バインディングはランタイムライブラリと同じ場所に ailia.lic を配置する必要があります:

Windows: ailia.dll と同じフォルダ (サンプルでは cpp/ 配下)。
macOS: ~/Library/SHALO/
Linux: ~/.shalo/

Python / Unity / Flutter / JNI バインディングは初回実行時にライセンスを自動ダウンロードするため、この手順は C++ バインディングに限ります。

GPU 推論を有効にするには?

macOS / iOS では Metal が自動的に使用されます。Windows / Linux では CUDA ToolkitcuDNN をインストールし、cuDNN を PATH に追加してください。GPU バックエンドの環境 ID を指定するか、サンプル CLI では auto を使います。

オフラインで動作しますか?

初回実行後はオフラインで動作します。Whisper / SenseVoice の重みは初回に initialize_model(model_path=...) へ指定したディレクトリにダウンロードされ、評価ライセンスも自動取得されます。以降はネット接続不要です。

ライセンスはどうなっていますか?

評価ライセンスは実行時に自動でダウンロードされ、開発・評価用途に利用できます。商用配布には製品ライセンスを申請してください。詳細は ailia ライセンス規約 を参照してください。

資料