🎙️ 【完全無料】Apple Podcastを自動で文字起こし!話者分離もできるGoogle Colab活用術

ポッドキャストを聴きながらメモを取るのは大変ですよね。今回は、Apple PodcastのURLを貼るだけで「誰が何を話したか」まで区別した文字起こしテキストが自動生成される仕組みを、Google Colab上に構築しました。プログラミング経験がなくても、この記事の手順通りに進めれば動かせます。

🎯 このツールでできること

ざっくり言うと、以下の流れが全自動で走ります。

ステップ処理内容使用技術
Apple PodcastのURLから音声ファイルを取得iTunes API + RSSフィード
音声をWAV形式に変換ffmpeg
音声→テキストに文字起こしfaster-whisper (large-v3)
「誰が話しているか」を識別pyannote.audio(話者分離)
テキストと話者情報を結合してtxt出力Python
💡 ポイント: すべてGoogle Colabの無料GPU(T4)上で動くので、高性能なPCは不要です。ブラウザさえあれば、iPadからでも実行できます。1時間の音声で約10分程度で処理が完了します。

🔧 事前準備

Hugging Faceアカウントの作成(無料・5分)

話者分離に使うAIモデル(pyannote)を利用するために、Hugging Faceという機械学習モデルの共有プラットフォームで無料アカウントを作成します。

STEP 1

アカウント作成

https://huggingface.co/join にアクセスして、メールアドレスとパスワードで登録します。GoogleアカウントやGitHubアカウントでのサインアップも可能です。

登録後、確認メールが届くので必ずリンクをクリックしてください。これをしないと次のステップに進めません。

STEP 2

アクセストークンの発行

https://huggingface.co/settings/tokens にアクセスして「Create new token」をクリックします。

  • Token name:何でもOK(例:colab-whisper
  • Token typeRead(読み取り専用)

作成されたトークン(hf_xxxxxxxxxxxxという形式)をコピーして控えておいてください。一度しか表示されません。

STEP 3

AIモデルの利用規約に同意(3つ)

以下の3つのURLにログイン済みの状態でアクセスし、それぞれ「Agree and access repository」をクリックします。Company/universityとWebsiteの入力欄がありますが、個人利用であれば「personal use」や自分のブログURLなどで問題ありません。

  1. pyannote/segmentation-3.0
  2. pyannote/speaker-diarization-3.1
  3. pyannote/speaker-diarization-community-1

審査はなく、同意すればすぐにアクセスできます。

⚠️ 注意: 3つ目のモデル(speaker-diarization-community-1)を忘れがちです。これに同意していないと、話者分離の段階で「403 Forbidden」エラーが出ます。

💻 Google Colabのセットアップ

ノートブックを開いてGPUを有効化

STEP 4

ノートブックをColabで開く

以下のボタンをクリックすると、Google Colabでノートブックが直接開きます。

または、GitHubリポジトリからノートブックファイル(.ipynb)をダウンロードして、Google Driveにアップロードする方法でもOKです。

STEP 5

GPUを有効にする(重要!)

メニュー → 「ランタイム」 → 「ランタイムのタイプを変更」 → ハードウェアアクセラレータを「T4 GPU」に変更 → 保存

これを忘れるとCPUで実行され、文字起こしに非常に時間がかかります。

STEP 6

パッケージのインストール

ノートブックのSTEP 1セルを実行します。約2〜3分でインストールが完了します。完了後、「ランタイム」→「セッションを再起動する」を実行してください。

💡 なぜ再起動?: pyannote.audioをインストールするとnumpyライブラリが更新されますが、既にメモリに読み込まれている古いバージョンとの競合を防ぐため、再起動して新しいバージョンで読み直す必要があります。

再起動後は、STEP 1を飛ばしてSTEP 2から実行します(インストール済みのパッケージは再起動後も残っています)。

STEP 7

Hugging Faceトークンの設定

Colabの左サイドバーにある🔑(鍵アイコン)をクリックし、以下を設定します。

  • 名前HF_TOKEN
  • :STEP 2で控えたトークン(hf_xxxx...
  • ノートブックからのアクセス:ONにする

一度設定すれば、以降どのノートブックでも自動的に読み込まれます。

▶️ 実際に動かしてみる

文字起こしの実行

STEP 8

設定セル(STEP 3)の編集

PODCAST_URLにApple PodcastのエピソードURLを貼り付けます。

# Apple PodcastのURLを貼る
PODCAST_URL = “https://podcasts.apple.com/jp/podcast/xxx/id1234567890?i=1000654321”

# Whisperモデル(large-v3が最も高精度)
WHISPER_MODEL = “large-v3”

# 話者数(わかっていれば指定すると精度UP)
NUM_SPEAKERS = 2  # 対談なら2、一人語りなら1
STEP 9

実行セル(STEP 4)の▶ボタンを押す

あとは待つだけです。以下の順番で処理が進みます。

  1. 📡 RSSフィードの取得 → エピソード特定
  2. ⬇️ 音声ファイルのダウンロード
  3. 🔄 WAV形式への変換
  4. 🎙️ faster-whisperで文字起こし(初回はモデルDLに数分)
  5. 👥 pyannoteで話者分離
  6. 🔗 テキストと話者情報の結合
  7. 💾 txtファイルに保存
⏱️ 所要時間の目安(T4 GPU):
・30分の音声 → 約3〜5分
・1時間の音声 → 約6〜12分
※初回はWhisperモデル(約3GB)のダウンロードがあるため+数分かかります。

📄 出力結果のイメージ

完了すると、以下のような形式のテキストファイルが生成されます。

============================================================ 文字起こし: #31 AIと本作りと組版と 生成日時: 2026-02-21 15:30 モデル: faster-whisper large-v3 検出話者数: 2人 ============================================================ [00:00] SPEAKER_00: 皆さんこんにちは。からあげ帝国放送局第31回です。 今日はAIと本作りと組版について話していきます。 [00:15] SPEAKER_01: よろしくお願いします。最近AIを使った 組版のワークフローを試しているんですよ。 [01:02] SPEAKER_00: なるほど。具体的にはどういうツールを使って いるんですか?

「SPEAKER_00」「SPEAKER_01」は自動的に割り振られる識別名です。ノートブックの最後のセルで「ホスト」「ゲスト」など実際の名前に置換することもできます。

💡 使いこなしのコツ

精度を上げるためのポイント

1. 話者数は指定した方がいい

NUM_SPEAKERSNone(自動検出)のままでも動きますが、対談番組なら2、3人トークなら3と明示した方が話者分離の精度が格段に上がります。

2. Whisperモデルの使い分け

モデル精度速度おすすめ用途
medium速いざっくり内容を把握したいとき
large-v3 ★標準日本語ポッドキャストに最適

3. URLが使えないポッドキャストの場合

一部のポッドキャストはRSSフィードを非公開にしていて、URLから音声を取得できないことがあります。その場合はPODCAST_URLを空欄にしてセルを実行すると、ファイルアップロードのダイアログが表示されます。手元にダウンロードした音声ファイル(MP3/M4A/WAV)を直接アップロードして処理できます。

4. 文字起こし結果の活用方法

生成されたテキストはそのまま以下の用途に使えます。

  • Claude等のAIに渡してブログ記事の下書きを作成
  • 議事録や要約の作成
  • ポッドキャストの内容を検索可能にする
  • 翻訳にかけて海外向けコンテンツにする

🔧 トラブルシューティング

よくあるエラーと対処法

Q. インストール後にnumpyのエラーが出る

→ 「ランタイム」→「セッションを再起動する」を実行してから、STEP 2以降を再実行してください。パッケージ更新後のメモリ上の不整合が原因です。

Q. 「403 Forbidden」「GatedRepoError」と出る

→ Hugging Faceで3つのモデルすべてに利用規約の同意が必要です。特にspeaker-diarization-community-1を忘れていないか確認してください。

Q. 「torchvision::nms does not exist」と出る

→ STEP 1に !pip install -q torchvision --force-reinstall を追加してから、再度「セッションを再起動」で解消します。

Q. サンプル数のValueErrorが出る

→ MP3ファイルの再生時間情報のずれが原因です。音声ダウンロード後にffmpegでWAV形式に変換するコードを追加してください(本記事配布のノートブックでは対応済みです)。

Q. 話者分離の結果が不正確

NUM_SPEAKERSに正確な話者数を指定してみてください。BGMや効果音が多い番組は分離精度が下がる傾向があります。

📝 まとめ

今回は、Google Colabの無料GPU環境を使って、Apple Podcastの音声を話者分離つきで自動文字起こしするワークフローを構築しました。

✅ この仕組みのメリット:
・完全無料(Google Colab + Hugging Face)
・高性能PC不要、ブラウザだけでOK
・URLを貼って▶を押すだけのシンプル操作
・「誰が話したか」まで自動で識別
・生成したテキストをAIに渡せばブログ記事も自動生成可能

50代からの学び直しでも、こうした最新のAIツールを組み合わせることで、これまで手作業で何時間もかかっていた作業がボタン一つで完了します。「プログラミングは難しそう」と感じるかもしれませんが、Google Colabなら環境構築なしにコピー&ペーストで動かせるので、ぜひ挑戦してみてください。

🎙️ この記事で使用したツール

Google Colab:Googleが提供する無料のクラウドPython実行環境。GPUも無料で利用可能。
faster-whisper:OpenAI Whisperを高速化したオープンソースの音声認識エンジン。
pyannote.audio:フランスCNRS(国立科学研究センター)で開発された話者分離AI。
Hugging Face:機械学習モデルのオープンプラットフォーム。本ツールのモデルの配布元。
ABOUT ME
管理人
地方の普通の人です。