0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Rocky LinuxでローカルのWhisper環境の構築方法

Last updated at Posted at 2024-04-29

Rocky Linuxなマルチ言語モデルを使って whisper.cpp-cli 環境を構築する手順を説明します。以下のステップに従ってください。

ステップ1: 必要なツールのインストール

  1. 開発ツールのインストール:
    必要な開発ツールとライブラリをインストールします。これにはコンパイラや make が含まれます。

    sudo dnf groupinstall 'Development Tools'
    
  2. Git のインストール:
    ソースコードをクローンするために Git をインストールします。

    sudo dnf install git
    

ステップ2: ソースコードのダウンロード

  • リポジトリのクローン:
    whisper.cpp のソースコードを GitHub からクローンします。

    git clone https://github.com/ggerganov/whisper.cpp.git
    cd whisper.cpp
    

ステップ3: マルチ言語モデルのダウンロード

  • モデルのダウンロード:
    日本語と中国語を含むマルチ言語モデルをダウンロードします。ここでは例として multilingual-large モデルを使用します。

    bash ./models/download-ggml-model.sh multilingual-large
    bash ./models/download-ggml-model.sh medium
    bash ./models/download-ggml-model.sh large
    bash ./models/download-ggml-model.sh large-v2
    

ステップ4: コンパイル

  • ソースコードのコンパイル:
    ダウンロードしたソースコードをコンパイルして実行ファイルを生成します。

    make
    

ステップ5: 音声ファイルのトランスクリプション

  • 音声ファイルのトランスクリプト:
    コンパイルされたプログラムを使用して、音声ファイルをトランスクリプトします。-l オプションで対象言語を指定できます。

    # 日本語の音声ファイルのトランスクリプト
    ./main -m models/ggml-multilingual-large.bin -f path/to/japanese-audio.wav -l ja
    
    # 中国語の音声ファイルのトランスクリプト
    ./main -m models/ggml-multilingual-large.bin -f path/to/chinese-audio.wav -l zh
    

この手順を実行することで、Rocky Linux 環境に whisper.cpp-cli を構築し、日本語を含む多言語の音声ファイルをトランスクリプトすることができます。


もっと簡単な構築方法がありました。
参考:https://github.com/charliermarsh/whisper.cpp-cli

コマンドの追加方法はは、以下を参照してください。
whisper-cpp -m ggml-large-v2-q5_0.bin -l ja input.wav --output-txt
whisper-cpp -m ggml-large-v2-q5_0.bin input.wav --output-txt
whisper-cpp -m ggml-large-v2-q5_0.bin -l ja input.wav --output-txt

-l auto を指定しないと日本語の文字起こししてくれないので指定する。もしくは-l jaでもOK
-l zh
-l ja
-l en
-l auto

【事後追記】
オプション:
-h, --help [デフォルト] このヘルプメッセージを表示して終了
-t N, --threads N [4 ] 計算中に使用するスレッドの数
-p N, --processors N [1 ] 計算中に使用するプロセッサの数
-ot N, --offset-t N [0 ] ミリ秒単位の時間オフセット
-on N, --offset-n N [0 ] セグメントインデックスのオフセット
-d N, --duration N [0 ] ミリ秒単位で処理するオーディオの長さ
-mc N, --max-context N [-1 ] 保存するテキストコンテキストトークンの最大数
-ml N, --max-len N [0 ] 文字での最大セグメント長
-sow, --split-on-word [false ] トークンではなく単語で分割
-bo N, --best-of N [5 ] 保持する最良候補の数
-bs N, --beam-size N [5 ] ビームサーチのビームサイズ
-wt N, --word-thold N [0.01 ] 単語タイムスタンプの確率閾値
-et N, --entropy-thold N [2.40 ] デコーダー失敗のエントロピー閾値
-lpt N, --logprob-thold N [-1.00 ] デコーダー失敗の対数確率閾値
-debug, --debug-mode [false ] デバッグモードを有効にする(例:log_melのダンプ)
-tr, --translate [false ] ソース言語から英語へ翻訳
-di, --diarize [false ] ステレオオーディオの話者識別
-tdrz, --tinydiarize [false ] tinydiarizeを有効にする(tdrzモデルが必要)
-nf, --no-fallback [false ] デコーディング時に温度フォールバックを使用しない
-otxt, --output-txt [false ] 結果をテキストファイルで出力
-ovtt, --output-vtt [false ] 結果をVTTファイルで出力
-osrt, --output-srt [false ] 結果をSRTファイルで出力
-olrc, --output-lrc [false ] 結果をLRCファイルで出力
-owts, --output-words [false ] カラオケビデオ生成用スクリプトを出力
-fp, --font-path [/System/Library/Fonts/Supplemental/Courier New Bold.ttf] カラオケビデオ用の等幅フォントのパス
-ocsv, --output-csv [false ] 結果をCSVファイルで出力
-oj, --output-json [false ] 結果をJSONファイルで出力
-ojf, --output-json-full [false ] JSONファイルにより多くの情報を含める
-of FNAME, --output-file FNAME [ ] 出力ファイルのパス(ファイル拡張子なし)
-ps, --print-special [false ] 特殊トークンを表示
-pc, --print-colors [false ] 色を表示
-pp, --print-progress [false ] 進行状況を表示
-nt, --no-timestamps [false ] タイムスタンプを表示しない
-l LANG, --language LANG [en ] 話されている言語('auto' で自動検出)
-dl, --detect-language [false ] 言語の自動検出後に終了
--prompt PROMPT [ ] 初期プロンプト
-m FNAME, --model FNAME [models/ggml-base.en.bin] モデルのパス
-f FNAME, --file FNAME [ ] 入力WAVファイルのパス
-oved D, --ov-e-device DNAME [CPU ] エンコード推論用のOpenVINOデバイス
-ls, --log-score [false ] トークンの最良デコーダスコアを記録
-ng, --no-gpu [false ] GPUを無効にする

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?