m1macでOpenAIのwhisperを遊ぶ

October 02, 2022

whisperで遊ぶ

今回は,最近話題になっていたOpenAIの音声認識ツールwhisperを使って遊んでみたので,知見を共有します.

実行環境

  • Macbook Air (M1)
  • macOS Monterey: 12.6.1
  • Python3.9.9
    • pyenv+virtualenv
    • local

セットアップ

基本的には公式に従って進めました.

  1. ffmpegのインストール

    MacOS(brew)に従います.

    brew install ffmpeg
  2. Rustが必要とのこと.それに伴ってsetuptools-rustpip installする.

    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh # Rustのインストール
    pip install setuptools-rust #setuptools-rustのインストール
  3. Rustをインストールしたのち,cargoのパスを通す.

    echo export PATH="$HOME/.cargo/bin:$PATH" >> $HOME/.zshenv
  4. shellを再起動するか,以下のコマンドを実行する.

    source "$HOME/.cargo/bin:$PATH"
  5. インストール環境が揃ったので,whisperpip installする.

    pip install git+https://github.com/openai/whisper.git 

これでwhisperが使えるはず.

コケたポイント

  • 5.でgitコマンドの認証に関するエラーを吐く

    これに関して自分も引っかかった.具体的には,cargoコマンドの仕様によるもので,cargoは基本的にはssh-agentを使用して公開鍵認証をパスしてGithubに接続するようです.もちろんssh-agentに秘密鍵を登録しておかないと認証失敗します.従って解決方法は,

    1. ssh-agentに秘密鍵を登録する.
    2. cargoのオプションを指定して,ssh-agentで認証失敗したらgitコマンドでの取得をトライするようにする.

    という二択になります.

    1. ssh-agentに秘密鍵を登録する.

      Githubのssh登録に関しては他のWebサイトに任せます.以下は秘密鍵が$HOME/path/to/secret.keyにあるとします.

      ssh-add --apple-use-keychain $HOME/path/to/secret.key

      ssh-add-Kオプションは--apple-use-keychainに置換えられていくらしい.

    2. cargoのオプションを指定して,ssh-agentで認証失敗したらgitコマンドでの取得をトライするようにする.

      $HOME/.cargo/configに以下を加えるだけ.

      [net]
      git-fetch-with-cli = true