{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "colab": {
      "provenance": [],
      "gpuType": "T4"
    },
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3"
    },
    "language_info": {
      "name": "python"
    },
    "accelerator": "GPU"
  },
  "cells": [
    {
      "cell_type": "markdown",
      "source": [
        "動画ファイルの字幕データ・文字起こしを生成する（Google Colabでの実行を想定）\n",
        "\n",
        "参考にしたサイト：<br>\n",
        "https://qiita.com/vfuji/items/e836f432ed5fb75f4306 <br>\n",
        "https://qiita.com/szktmyk38f/items/374f24d06fe277a1922a <br>\n",
        "https://virment.com/extract-audio-data-from-video-using-ffmepg/ <br>\n"
      ],
      "metadata": {
        "id": "mAC93mriaypA"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "# ffmpeg, whisperをインストール（終わるまで数分かかる）\n",
        "!sudo apt update && sudo apt install ffmpeg\n",
        "!pip3 install -U openai-whisper\n",
        "import torch\n",
        "# PyTorchがGPU対応か確認 (TrueならばOK。Falseの場合はランタイム設定がT4 GPUではないかも)\n",
        "print(torch.cuda.is_available())"
      ],
      "metadata": {
        "id": "ZZ10S_EdKV7N"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "# 自分のGoogleドライブをマウントして使えるように\n",
        "#「Googleドライブに接続」をクリック、自分のアカウント名をクリック、「許可」をクリック。\n",
        "from google.colab import drive\n",
        "drive.mount('/content/drive')"
      ],
      "metadata": {
        "id": "Bjm49FP2j2Yy"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "# マイドライブに動画をアップロードしてください。それが「なにかの動画.mp4」という名前だとします。\n",
        "# 「なにかの動画.mp4」から音声データのみを mp3 として取り出す\n",
        "!ffmpeg -i /content/drive/MyDrive/なにかの動画.mp4  -f mp3 -ab 256k /content/drive/MyDrive/audio-ws09.mp3\n",
        "# whisperでの文字起こし（20分間の音声の場合、10分間程度で出来た。）\n",
        "!whisper /content/drive/MyDrive/audio-ws09.mp3 --language Japanese --device cuda --output_dir /content/drive/MyDrive/ --model large"
      ],
      "metadata": {
        "id": "R_5HtNoYLhQ9"
      },
      "execution_count": null,
      "outputs": []
    }
  ]
}