HumansXドキュメントセンター 公式サイトへ ↗

音声認識(ASR)— 概要(Tongyi Qianwen/通義千問)

  1. sherpa-onnx 音声認識エンジンとその特長(複数モデルへの対応、多言語の認識が可能であること)を理解します。

  2. 自動音声認識(ASR)から sherpa-onnx のモデルを呼び出す方法を理解します。

  3. models のモデルを読み込み、自動音声認識(ASR)の基本的なアプリケーションを実行できるようになります。

  4. ASR 音声認識のデプロイ方法を習得します。

技術ポイント

  1. 音声処理:サンプリングレート、チャンネル、音声フォーマット変換について学びます
  2. リアルタイム通信:WebSocket の使い方を学びます
  3. ファイルアップロード:multipart/form-data 形式を理解します
  4. 非同期プログラミング:Python の asyncio の使い方を体験します
  5. Web 開発:FastAPI フレームワークの基本的な使い方を学びます

応用シーン

音声コマンド認識、議事録作成、音声入力など。

機能要件

機能1:音声ファイルをテキストに変換して出力します。

機能2:マイクの音声をリアルタイムに取得し、テキストとして出力します。

ハードウェアの準備

USB マイク、モニター、Bluetooth キーボードおよびマウス。

システム構成

概要

ASR(自動音声認識)モジュールは FastAPI ベースの Web アプリケーションで、音声ファイルのテキスト変換とマイクによるリアルタイム認識の機能を提供します。本モジュールは sherpa-onnx を音声認識のコアエンジンとして使用し、中国語の音声認識に対応しています。

アーキテクチャ設計

データフロー

音声ファイル認識の処理フロー

  1. ユーザーが Web 画面から音声ファイルをアップロードします
  2. FastAPI がファイルを受信し、ASR サービスに渡します
  3. ASR サービスが音声フォーマットの判定と変換を行います
  4. soundfile/pydub を使用して音声フォーマットを解析します
  5. 音声を 16kHz にリサンプリングします(モデルの要件)
  6. sherpa-onnx を呼び出して音声認識を行います
  7. 認識結果をフロントエンドに返します

マイクによるリアルタイム認識の処理フロー

  1. ユーザーが「リアルタイム認識開始」ボタンをクリックします
  2. ブラウザが WebSocket でサーバーに接続します
  3. ASR サービスが音声ストリームの受信(sounddevice)を開始します
  4. VAD(sherpa-onnx VAD)で音声データをリアルタイムに処理します
  5. 検出された発話区間を sherpa-onnx の ASR モデルに送って認識します
  6. 認識結果を WebSocket でリアルタイムにプッシュします
  7. フロントエンドの JavaScript が結果を受信して表示します

ASR 音声認識のデプロイ

主な機能

  1. 音声ファイルのテキスト変換:音声ファイルをアップロードすると、自動的にテキストに変換します
  2. マイクによるリアルタイム認識:マイク入力をリアルタイムに監視し、音声をテキストに変換します

特長

  • シンプルで使いやすい:Web 画面を提供しており、複雑な設定は不要です
  • 高精度な認識:sherpa-onnx ベースの Paraformer 中国語音声認識モデルを使用しています
  • リアルタイム性:WebSocket で認識結果をリアルタイムにプッシュします
  • クロスプラットフォーム:Windows、Linux、macOS に対応しています

クイックスタート

1. 動作環境

  • Python 3.8 以上
  • 音声デバイスに対応したシステム(Linux)

2. モデルファイルのダウンロード

ASR モジュールを正しく動作させるには、所定のモデルファイルが必要です。以下の手順に従ってください。

# モデルファイルをダウンロード
資料のダウンロード・技術サポートについては、HumansX株式会社までお問い合わせください。
# 
# ダウンロード後、zip ファイルを asr/ ディレクトリに解凍します
# 解凍後のモデルファイルが asr/models/ ディレクトリ配下にあることを確認してください

3. 依存パッケージのインストール

cd asr
pip install -r requirements.txt

4. システム依存パッケージ(Linux)

ASR モジュールは、音声の録音と処理に ALSA オーディオシステムを使用します。お使いのシステムに応じて、必要な依存パッケージをインストールしてください。

# Ubuntu/Debian
sudo apt-get install libasound2-dev portaudio19-dev

# CentOS/RHEL
sudo yum install alsa-lib-devel portaudio-devel

# 音声デバイスを確認
arecord -l  # 使用可能な録音デバイスを表示
aplay -l   # 使用可能な再生デバイスを表示

注意:

  • システムに使用可能な音声入力デバイス(マイク)があることを確認してください
  • 音声デバイスの権限に関する問題が発生した場合は、ユーザーを audio グループに追加する必要があります:sudo usermod -a -G audio $USER

5. アプリケーションの起動

python main.py

6. アプリケーションへのアクセス

ブラウザで次の URL にアクセスします:http://localhost:8001

詳細ドキュメント

詳細は ディレクトリ内の以下のドキュメントをご参照ください。

  • アーキテクチャ設計
  • API インターフェース仕様
  • 設定の説明
  • sherpa-onnx 認識フレームワークの概要

これらを参照することで、二次開発やデバッグに必要なパラメーターを把握できます。

sherpa-onnx 公式ドキュメント

上記の事例ではモデルの一つのみを使用していますが、公式では他にも多数の対応モデルが用意されています。用途に応じてモデルを選択してください。

公式リポジトリ:

https://github.com/k2-fsa/sherpa-onnx

公式ドキュメント:

https://k2-fsa.github.io/sherpa/onnx/

デプロイの実装

(HumansX サポートより提供) singleDoc#

音声認識(ASR)システムの実装

情報交換の場

資料のダウンロード・技術サポートについては、HumansX株式会社までお問い合わせください。