目的
動画内からセリフのみを抽出して文字起こしをする。
実行環境
Windows10 Home
Python3.7
使用したライブラリなど
youtube-dl
speech_recognition
spleeter 2.1.2
FFmpeg
実行する順番
- 諸々のインストール
- 目的の動画取得
- 動画内の音声抽出
- 文字起こし
1. 諸々のインストール
⚠️ Pythonの環境が一通り整っている事を想定しております。ごめんなさい。
今回はpipを使用して色々インストールさせて頂きます。
youtube-dl のインストール
youtubeに限らずダウンロードする時に便利なのです!
pip install youtube_dl
speech_recognition のインストール
音声認識をする時などにお世話になっております。
pip install SpeechRecognition
↓ Pyaudioも欲しい ↓
pip install pyaudio
インストール確認のために以下のコマンドを実行!!!
python -m speech_recognition
何か言って! と言われるので 英語 で話してみると...
認識結果が表示されるようであれば完了です!!!
spleeter のインストール
ボーカルやらドラムやらベースやら音声を分離できます!!!
pip install spleeter
インストールできたか確認します!
spleeter --help
以下のような文やhelpが出たら完了です!!!
Usage: spleeter [OPTIONS] COMMAND [ARGS]...
FFmpeg のインストール
音声や動画を扱うときによく見かけます
FFmpegのサイトをスクロールして release のLinksから自分に合ったものを選んでDLしてください!
D や C の直下にreleaseフォルダを作ると後々楽です。
※ システム環境変数にPathを通してほしいです!!!
2. 動画の取得
youtube-dlで動画を取得してみましょう!
youtube-dl (DLする動画のURL) -x -f "bestaudio" --audio-format wav --audio-quality 0
これを実行するとwav形式で高音質downloadをしてくれます。
オプションの説明
-
-x or --extract-audio → 音声のみダウンロード
-
-f or --format ”piyopiyo” → ファイル形式を指定できますくわしくはこちらへ
-
--audio-format → downloadフォーマットを指定してます
-
--audio-quality → 音質を指定できます(0~9 小さいほど高音質)
他にも色々あるみたいです。
3. 動画内の音声抽出
spleeterを使って動画内の音声を抽出します!
抽出というよりは分割なんですけどね。
spleeter separate (分割したいファイルへのPath) -o (出力先のPath) -p spleeter:2stems
これを実行すると音声がvocalとaccompanimentに分割されます!
初回実行のみ、自動でdownloadするものがあるので少し時間がかかります。
オプションの説明
-
-o (出力先のPath) → 出力先のフォルダを指定してください
-
-p spleeter: n stems → ( n = 2 , 4 , 5 ) で分割されます
- 2stems → vocal / accompaniment
- 4stems → vocal / bass / drum / other
- 5stems → vocal / bass / piano / drum / other
※ 分割元動画が長すぎると途中で処理が落ちる場合があります!!!
4. 文字起こし
speech_recognitionを使って実際に文字起こしをしてみます
import speech_recognition as sr
AUDIO_FILE = " " #ここに抽出した音声ファイルのPathを
r = sr.Recognizer()
with sr.AudioFile(AUDIO_FILE) as source:
audio = r.record(source)
print('音声データの文字起こし結果:\n\n', r.recognize_google(audio, language='ja'))
すると...
結果 まとめ
一応目的としていた、動画からセリフのみを抽出して文字起こしをすることはできた。
しかし、文字起こし結果は扱えるようなものではなかった...
結局人力で書き起こすことにした。
人力最強!人力最強!
何か良い方法ご存じでしたら是非教えてほしいです。m(_ _)m
最後に
今回初めてQiitaに記事を投稿しました。
至らない点ばかりではありますが、目に留めていただきありがとうございました。
参考
youtube-dl
https://github.com/ytdl-org/youtube-dl/blob/master/README.md#readme
speech_recognition
https://pypi.org/project/SpeechRecognition/
spleeter
https://github.com/deezer/spleeter
FFmpeg
https://rikoubou.hatenablog.com/entry/2019/11/07/144533