Categories
技術メモ

【完全ガイド】MacでWhisper.cppを使って音声ファイルを高速文字起こしする方法

この記事では、AppleシリコンMac(M1/M2/M3)で whisper.cpp を使って、Metal対応GPUを活用し、音声ファイルを高速に文字起こしするための手順をわかりやすく解説します。


🔧 対象環境と前提条件

  • macOS(初期状態でOK)
  • Appleシリコン搭載(M1 / M2 / M3)
  • 音声ファイル:sample.m4a
  • ターミナル操作が可能

✅ 1. Homebrewをインストール(未導入の場合)

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew --version

✅ 2. 必要なツールをインストール

whisper.cppのビルドや音声ファイルの変換に必要なツールをHomebrewでインストールします。

brew install cmake ffmpeg git

✅ 3. whisper.cpp をクローン(最新版を取得)

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

✅ 4. Metal対応でビルド(Apple GPU活用)

cmake -B build -DWHISPER_METAL=ON
cmake --build build --config Release

ビルド後、./build/bin/whisper-cli が実行ファイルになります。

✅ 5. モデルファイル(small)をダウンロード

Whisperモデルは精度と速度のバランスが取れたggml-small.binを使用します。

mkdir -p models
curl -L -o models/ggml-small.bin https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-small.bin

✅ 6. 音声ファイルを WAV形式に変換(ffmpeg使用)

Whisperは.wav形式の入力に最適化されています。

ffmpeg -i sample.m4a -ar 16000 -ac 1 -c:a pcm_s16le sample.wav

✅ 7. Whisperで音声を文字起こし(日本語指定)

./build/bin/whisper-cli -m models/ggml-small.bin -f sample.wav -t 8 -l ja --output-txt --output-srt --output-vtt

出力ファイル:

  • sample.wav.txt:文字起こし結果(テキスト)
  • sample.wav.srt:字幕ファイル(動画編集用)
  • sample.wav.vtt:Web字幕ファイル(HTML5用)

💡 文字起こしが完了したら

ls -lh sample.wav.*

🚀 より高度な使い方・応用

  • 日本語から英語へ翻訳: --translate --language ja
  • より高速処理: モデルを ggml-base.bin に変更
  • 音声が長い: ffmpeg で分割して処理可能

🧪 一括処理コマンド(WAV変換+Whisper文字起こし)

ffmpeg -i sample.m4a -ar 16000 -ac 1 -c:a pcm_s16le sample.wav && \
./build/bin/whisper-cli -m models/ggml-small.bin -f sample.wav -t 8 -l ja --output-txt --output-srt --output-vtt

📎 まとめ:Whisper.cpp をMacで活用して業務効率化

この手順に従えば、macOS環境でwhisper.cppをMetal対応で高速に動作させ、音声ファイルから簡単に文字起こしを行えます。

プログラマー、研究者、ポッドキャスター、ライターなど、あらゆる音声を文字情報に変換したい人におすすめです。

Categories
技術メモ

Amazon Linux 2へ移行完了

このブログは、Amazon EC2の上にWordPressを乗せて構築しているのですが、Amazon Linuxのサポートが2020/12/31で切れるということで、年末の休みの間に重い腰を上げてAmazon Linux 2への移行をしました。

いくつかハマったポイントがあったのでメモ。

MySQLサーバーのインストール

いつも通りyumにepelremiのリポジトリを追加して、MySQL + php-fpm + nginxの環境をつくろうとしたが、MySQLが入ってくれない。MySQLのリポジトリを追加しても依存関係でうまくいかない。

しばらく頑張ったけど、諦めてAmazonのコアリポジトリにあるMariaDBで構築することにした。MySQLと互換性があるみたいなのでしばらく試してみる。

php-fpmのUNIXソケット設定

php-fpmとnginxのブリッジはUNIXソケットを使う派なんだけど、いつも通り/etc/php-fpm.d/www.conf に

listen = /tmp/fpm.socket

を書いてもソケットファイルが作成されない。

CentOS 7以降からsystemdでプロセス管理をするようになり、どうやらSELinuxっぽい感じでセキュリティ対策が施されているらしい。

こちらの記事を参考にphp-fpm.serviceに

PrivateTmp=false

を設定したところ無事/tmp配下にソケットファイルが作成されました。ちなみに、nginxも同様にPrivateTmp=falseにしないとソケットにアクセスできないのでご注意を。

これでずっと個人issuesに上がっていたAmazon Linuxのインスタンスを落とすことができます。

というわけで、2021年もGROOVEをよろしくお願いします。

Categories
技術メモ

iPhone5のテザリング接続方式比較

今日からSoftBankのiPhoneテザリングが開始ということで、早速接続テストしてみました。

設定方法はSoftBankのテザリング設定方法のページを参照。

PCとの接続は、

  1. Wi-Fi
  2. Bluetooth
  3. USB

の3通りの方法があるみたいだけど、どれが一番いいの? ということでそれぞれスピードテストしてみました。

Wi-Fi Bluetooth USB
1回目 13.39Mbps 1.42Mbps 8.53Mbps
2回目 11.50Mbps 1.48Mbps 8.96Mbps
3回目 12.23Mbps 1.51Mbps 8.22Mbps
平均 12.37Mbps 1.47Mbps 8.57Mbps
  • BNRスピードテストで計測
  • インターネット接続はいずれもLTE(USB接続の時だけはWi-Fiから出ることができるみたい)

というわけで、早い順に、

Wi-Fi > USB >> Bluetooth

という結果に。

iPhoneのバッテリーを気にすると、ケーブル持ってればUSB、ちょっと繋ぐだけならWi-Fiという使い方が良さそうですね。

早速、ムダに月額費払っているdocomoのモバイルWi-Fiを解約してこよう。