mcpField
O
openai-whisper

openai-whisper

github.com/alphaonedevクリエイティブ・メディア59 回インストール
リポジトリ

openai-whisper について

openai-whisperは、OpenAI Whisperモデルでローカル音声ファイルを文字起こしするスキルです。多言語、単語単位のタイムスタンプ、任意の話者分離、複数の出力形式に対応し、音声処理ワークフローに利用できます。

主な機能

  1. 01ローカル音声の文字起こし
  2. 0290以上の言語に対応
  3. 03単語単位のタイムスタンプ
  4. 04任意で話者分離
  5. 05JSONとSRTの出力
  6. 06モデルサイズの選択

活用シーン

  1. 01インタビューの文字起こしとメモ作成
  2. 02タイムスタンプ付きポッドキャスト原稿の作成
  3. 03複数話者の会議録音の処理

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/alphaonedev/openclaw-graph --skill openai-whisper

インストール後、Claude Code で/openai-whisperを入力して読み込まれたか確認します。

詳細

目的

このスキルを使うと、OpenAI Whisper モデルでローカルの音声を書き起こせます。ファイルをデバイス上で直接処理するため、プライバシーを保護しながら高速に処理できます。多言語対応、単語単位のタイムスタンプ、話者ダイアライゼーションなどの機能を備えており、音声のテキスト化に最適です。

使用する場面

ネットワークへの依存やデータのプライバシーに関する懸念を避けるためにオフライン処理が必要な場合は、インタビュー、ポッドキャスト、会議などのローカル音声ファイルを書き起こすタスクでこのスキルを使用します。コンテンツ制作や分析など、正確なタイムスタンプや話者の識別が必要なワークフローにも適しています。

主な機能

  • 書き起こし:90 を超える言語の音声をテキストに変換します。--language フラグで言語を指定します(例:英語の場合は --language en)。
  • タイムスタンプ:単語単位のタイミングを出力します。詳細な区間(各単語の開始・終了時刻を秒単位で表示するなど)を有効にするには、--word-level を指定します。
  • 話者ダイアライゼーション:音声内の話者を識別します。Pyannote ライブラリなどの追加設定が必要です。設定済みの場合は --diarize フラグを使用します。
  • 複数の形式に対応:MP3、WAV、FLAC などの入力形式を扱い、解析しやすい JSON または SRT 形式で出力します。
  • モデルの選択:tiny、base、small、medium、large などのモデルから選択できます。大きなモデルほど精度は向上しますが、計算リソースも多く必要になります(例:--model medium)。

使用パターン

Whisper は、ライブラリをインストールした Python 環境で必ず実行してください。基本的な書き起こしでは、音声ファイルを読み込み、CLI でオプションを指定します。テキスト分析スキルなどの他のツールに出力をパイプして、パイプラインで使用することもできます。話者ダイアライゼーションを行う場合は、事前に依存関係をインストールしてください。例 1:メモを取るため、短い音声クリップを書き起こします。例 2:会議の要約を作成するため、複数の話者による録音を処理します。

書き起こしを行うには、次の手順に従います。

  1. 依存関係をインストールします:環境で pip install git+https://github.com/openai/whisper.git pyannote.audio を実行します。
  2. 音声を読み込んで処理します:Whisper CLI を使用して、ファイルを直接処理します。
  3. 出力を処理します:JSON の結果からタイムスタンプを解析し、より大きなスクリプトに組み込みます。

主なコマンド/API

簡単なタスクには Whisper CLI を使用します。API と連携する場合は、Python ライブラリを直接呼び出します。

  • 基本的な書き起こしの CLI コマンド:
    whisper path/to/audio.mp3 --model base --language en --output_format json
    ファイルを書き起こして、タイムスタンプを含む出力を JSON 形式で保存します。

  • タイムスタンプと話者ダイアライゼーションを使用する CLI:
    whisper path/to/audio.wav --model medium --word-level --diarize
    単語単位のタイミングと話者ラベルを生成します。Pyannote で話者ダイアライゼーションが設定されていることを確認してください。

  • Python API の例:

    import whisper  
    model = whisper.load_model("base")  
    result = model.transcribe("path/to/audio.mp3", language="en")  
    print(result["text"])  # Outputs transcribed text
    
  • 設定形式:Whisper はバッチ処理にシンプルな JSON 設定を使用します。例:
    { "model": "small", "language": "es", "task": "transcribe" }
    CLI で --config config.json を指定して渡します。ローカルでの使用に認証キーは必要ありません。クラウドサービスに拡張する場合は、外部 API 用の $WHISPER_API_KEY などの環境変数を使用します。

コードで使用するには、ライブラリをインポートしてモデルを読み込み、ファイルパスを指定する fp やモードを指定する task などのパラメーターを指定して transcribe() を呼び出します(例:task="transcribe")。

統合に関する注意事項

Whisper を Python スクリプトまたは CLI 呼び出しでラップして、AI ワークフローに統合します。たとえば、テキスト処理ツールと連携させ、JSON の出力を感情分析スキルにパイプできます。インタラクティブな書き起こしには Jupyter ノートブックを使用します。処理を高速化するには、環境が GPU に対応していることを確認してください(例:CUDA を使用)。より大きなアプリケーションに組み込む場合は、ファイルの入出力を明示的に処理します。soundfile ライブラリで音声ファイルを読み込み、Whisper に渡してください。複数段階のタスクでは、他のスクリプトから subprocess を使って Whisper CLI を呼び出し、標準出力を取得して JSON を解析します。

エラー処理

よくあるエラーには、依存関係の不足、無効な音声形式、大規模モデルでのメモリ不足などがあります。対処方法:

  • ファイルが見つからない場合:実行前にファイルパスを確認します。Python では try-except を使用します:
    try:  
        result = model.transcribe("path/to/audio.mp3")  
    except FileNotFoundError:  
        print("Audio file missing; verify path.")  
    
  • モデルの読み込みに失敗した場合:十分な RAM があることを確認します。必要に応じて、より小さなモデルに切り替えます(例:--model large を --model base に変更します)。
  • 話者分離エラー:Pyannote が失敗した場合は、pip check pyannote.audio でインストールを確認します。エラーを記録し、基本的な文字起こしで再試行します。
  • 一般的なパターン:スクリプトで subprocess を使って CLI 呼び出しをラップし、戻り値を確認します。API の場合は、whisper.utils.DecodeError などの例外を捕捉し、異なるパラメーターで再試行します。

常に詳細なエラーを記録し(例:Python の logging モジュールを使用)、「エラー:選択したモデルでは音声が長すぎます。より小さなモデルをお試しください。」のような、ユーザーにわかりやすいメッセージを表示します。

グラフの関係

  • 関連先:「audio-processing」クラスター。ノイズ低減などの上流タスクに使用します。
  • 接続先:文字起こし結果の下流処理を行う「text-analysis」スキル。
  • 連携先:AI による要約で文字起こし結果を改善する「openai-gpt」。

コメント