1
1

EC2(AmazonLinux2023)インスタンスにReazonSpeech v2をインストールする手順 

Last updated at Posted at 2024-08-08

はじめに

今回は「ReazonSpeech v2.0(NeMoモデル)」を利用して、音声ファイルの文字起こしができる環境を作ります。

なんとこちらのモデルは

同じことをOpenAI Whisperとの比較で言い替えると、Whisperの最も小さいTinyモデルの速度で、 最も大きいLargeモデル相当の精度を達成できています。
引用元:https://research.reazon.jp/blog/2024-02-14-ReazonSpeech.html

とのことで、音声認識モデルの中でもWhisperをしのぐ「認識精度」と「処理速度」を持つモデルであることがわかります。(2024-02-14時点)

こちらのモデルは無償で商用利用可能な点も魅力といえます。(Apache-2.0ライセンスに準拠)

では早速、構築していきましょう!

使用技術

文字起こし:reazonspeech-nemo-v2

実行環境サーバー:AWS EC2(AmazonLinux2023)

前提条件

・HuggingFaceのアカウントが取得済みであること

目次

1.事前準備

2.環境構築

3.ソースのデプロイ

4.コード実行

5.まとめ

それでは、実際の環境構築に進んでいきましょう!

1.事前準備

利用モデルの利用規約を許諾する

2.環境構築

EC2インスタンスの起動

  • AWSコンソールから「EC2」サービスへアクセス
  • 下図を参考にインスタンス起動
    image.png

スクリーンショット 2024-07-05 145116.png

  • AMI:GPUは利用しないが「Deep Learning OSS Nvidia Driver AMI GPU PyTorch 2.3」を選択
  • インスタンスタイプ:t2.large(メモリ8GBほしいので)
  • ボリューム:70GiB(諸々のインストールで結構容量食う)

作成したインスタンスを選択し「インスタンスを開始」

SSHクライアントからインスタンスへ接続し下記のコマンドを実行

# インストールに必要なパッケージのインストール
sudo yum groupinstall "Development Tools" -y
sudo yum install autoconf automake bzip2 bzip2-devel cmake freetype-devel gcc gcc-c++ 
sudo yum install -y gcc gcc-c++ make autoconf automake cmake git-core libtoolgit libtool make mercurial pkgconfig zlib-devel -y
sudo yum install nasm
# Lame MP3エンコーダーをインストール
cd /tmp
wget https://downloads.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz
tar xzf lame-3.100.tar.gz
cd lame-3.100
./configure --prefix=/usr/local --enable-nasm --enable-shared
make
sudo make install
# X264をインストール
cd /tmp
git clone https://code.videolan.org/videolan/x264.git
cd x264
./configure --prefix=/usr/local --enable-static --enable-shared
make
sudo make install
# ffmpegのインストール
cd /tmp
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
cd ffmpeg
git checkout release/4.4
./configure --prefix=/usr/local --enable-gpl --enable-nonfree --enable-libmp3lame --enable-libx264
make -j$(nproc)
sudo make install
# 環境変数「PKG_CONFIG_PATH」を設定
echo 'export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig' >> ~/.bashrc
source ~/.bashrc
sudo ldconfig
# Pythonのvenv環境作成
python3 -m venv venv
source venv/bin/activate

# Cythonをインストール
pip install Cython

# 依存関係のあるパッケージのインストール
pip install numpy==1.23.5
pip install huggingface_hub==0.23.2
pip install nemo_toolkit
# ReazonSpeechをインストール
cd /tmp
git clone https://github.com/reazon-research/ReazonSpeech
pip install ReazonSpeech/pkg/nemo-asr

ソースのデプロイ

「app.py」ファイルを任意のディレクトリにデプロイする

app.py
from reazonspeech.nemo.asr import load_model, transcribe, audio_from_path

# 実行時にHugging Faceからモデルを取得します (2.3GB)
model = load_model(device='cpu')

# ローカルの音声ファイルを読み込む
audio = audio_from_path('test.wav')

# 音声認識を適用する
ret = transcribe(model, audio)

print(ret.text)

※「音声ファイル(test.wav)」は別途用意し、app.pyと同一のディレクトリにおいてください。

4.コード実行

デプロイしたディレクトリに移動して、app.pyの実行

command
python app.py

音声ファイルの文字起こし結果が、標準出力されたら成功です。

5.まとめ

今回はEC2インスタンスに音声認識モデル「ReazonSpeech v2(nemo)」をインストールして、実際に文字起こしを行うという手順でした。
パッケージの依存関係で数日ハマりましたが、何とか動作するパターンを見つけました。

改めて下記にまとめます。

numpy==1.23.5
huggingface_hub==0.23.2
nemo_toolkit

それではまた別の記事でお目にかかります。
ありがとうございました。

6.参考記事

[参考サイト]
https://research.reazon.jp/projects/ReazonSpeech/howto.html#python
https://github.com/NVIDIA/NeMo/issues/9793

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1