導入
本ガイドでは、オンプレミス型ストリーミング音声認識システムであるLibreASRを用いたカスタムモデルの構築方法を解説します。環境構築からデータ準備、モデル構成、最適化までを網羅します。
1. 環境構築
1.1 依存関係のインストール
プロジェクトディレクトリ内に以下のファイルが配置されています:
docker/requirements.inference.txt: 推論環境用依存関係docker/requirements.inference.armv7.txt: ARMアーキテクチャ用依存関係docs/requirements.txt: ドキュメント生成用依存関係
Docker環境を使用することを推奨します。インストールは以下コマンドで実施可能です:
./docker/install.sh
1.2 プロジェクトのクローン
git clone https://gitcode.com/gh_mirrors/li/LibreASR
cd LibreASR
2. データ準備
2.1 データ取得
利用可能なデータセット:
- LibriSpeech(英語音声)
- Common Voice(多言語音声)
- Tatoeba(多言語音声)
- TF Speech Commands(音声コマンド)
ダウンロードスクリプトの使用例:
python3 download_datasets.py --dataset librispeech --subset train-clean-100
2.2 データ前処理
データ変換スクリプトの使用例:
python3 prepare_data.py --input /data/common-voice --lang en --workers 4
出力ファイル:asr_dataset.csv(音声パスとテキストラベルのペア)
2.3 データ分割
データ分割スクリプトの使用例:
python3 split_data.py --train_ratio 0.8 --valid_ratio 0.1
生成されるファイル:
train.csv(訓練データ)valid.csv(検証データ)test.csv(テストデータ)
3. モデル構成
3.1 設定ファイル
主な設定パラメータ:
- モデルタイプ(Transducer/CTC)
- 特徴ベクトルサイズ(feature_dim)
- 埋め込み次元(embedding_dim)
- 辞書サイズ(vocab_size)
3.2 データローダー構築
データローダーは以下のファイルを自動的に読み込みます:
train.csv(訓練データ)valid.csv(検証データ)test.csv(テストデータ)
4. モデルトレーニング
4.1 トレーニングフロー
トレーニングスクリプトの概要:
config = load_config("config.yaml")
train_loader, valid_loader = create_data_loaders(config)
model = build_model(config)
train_model(model, train_loader, valid_loader, epochs=50)
4.2 言語モデルトレーニング
BPEトークナイザのトレーニング例:
from subword_nmt import learn_bpe
learn_bpe.train(input_file="corpus.txt", vocab_size=10000, output_file="bpe.model")
5. モデル保存・読み込み
モデル保存スクリプト:
save_model(model, "model.pth")
save_tokenizer(tokenizer, "tokenizer.pkl")
モデル読み込み:
model = load_model("model.pth")
tokenizer = load_tokenizer("tokenizer.pkl")
6. パフォーマンス最適化
- データ拡張:ノイズ注入、ピッチ変換
- ハイパーパラメータ調整:学習率、バッチサイズ
- 量子化:モデルサイズの削減
7. トラブルシューティング
- メモリ不足対策:バッチサイズの減小
- 収束遅延対策:学習率の調整
- 推論遅延対策:量子化の実施