REAPER+Pythonを使用した音声切り分け(たいうおさんの記事を受けて)

この記事をベースに、自分なりの音声切り分けについて書こうと思います。

きっかけですが、私の場合まずテキストファイルにセリフを書き出すので、それをテイク名の編集なしにファイル名にしたいなあというモチベがありました。

適当なプログラミング言語を知っていればすぐできる処理だとは思いますが、プログラミングに慣れていない方に、こういう便利な方法があると知ってほしいので書きました。

Pythonについては完全に初心者なので、もっとうまいコーディングがあると思いますが、そこはご容赦ください。

REAPERでの処理

REAPER側での処理はほとんど同じです。ただし、テイク名は編集しなくても大丈夫です。また、書き出し時のファイル名は「$start-$track」とします。書き出す音声ファイル専用のフォルダがあるとよいでしょう。ここでは「第1話_pre」とします。

セリフファイルの作成

次にセリフのテキストファイルを作ります。
(もちろんREAPERでの処理の前にやってもらっても大丈夫です。)

適当なエディタでセリフを書いていきます。

よっしゃ、時間切れや!ウチの逃げ切り勝ちやで!

た、タマ姉ちゃん、めっちゃ速え~!

みんなで追いかけたのに、全然触れなかった~。ちょっとは手加減してよ~!

だっはっは!勝負の世界は厳しいんや。子どもやからって、ウチは手加減せぇへんからな!

(上のセリフはタマモクロスのウマ娘ストーリー第1話より)

この場合だと1行空けしていますが、セリフごとに改行していれば何行空けていても(0行空けでも)かまいません。

ここでは「第1話.txt」で保存するとします。UTF-8で保存しますが、以下のコードを書き換えれば何でも大丈夫です。

Pythonでの処理

そのあとPythonを使ってファイル名を書き換えたものを作成します。

当たり前ですがPythonのインストールが必要です。Python 3.x.x なら動くと思います。(3.10.0で動作しています。)

import os
import re
import shutil

dialogue_path = "第1話.txt"
pre_audio_folder = "第1話_pre"
new_audio_folder = "第1話"

os.makedirs(new_audio_folder, exist_ok=True)

f = open(dialogue_path, 'r', encoding='UTF-8')
dialogue_list_pre = f.readlines()
dialogue_list = [a.rstrip('\n') for a in dialogue_list_pre if a.rstrip('\n') != '']

audio_file_list = os.listdir(pre_audio_folder)
audio_file_list.sort()

print("セリフ数:" + str(len(dialogue_list)) + ", 音声ファイル数:" + str(len(audio_file_list)))

if len(dialogue_list) != len(audio_file_list):
    print("個数が異なります.")
    exit()

file_index = 0

for audio_file in audio_file_list:
    pre_audio_file = pre_audio_folder + "\\" + audio_file
    new_audio_file = new_audio_folder + "\\" + str(file_index + 1).zfill(3) + audio_file[8:-4] \
        + "_" + re.sub(r'[\\/:*?"<>|]+', '-', dialogue_list[file_index]) + ".wav"
    shutil.copy(pre_audio_file, new_audio_file)
    file_index += 1

上のコードをここではrenamer.pyで保存します。(なんでもいいです)

dialogue_pathにはセリフのテキストのパスを、pre_audio_folderにはファイル名変更前の音声が入ったフォルダのパスを、new_audio_folderにはファイル名変更後の音声を入れたいフォルダのパスを、renamer.pyに対する相対参照で入れます。

そしてrenamer.pyを実行します。ここでは「第1話」というフォルダにファイル名変更後の音声ファイルが入っていると思います。

この方法について

この方法のメリットとして、拡張性が高いことが挙げられると思います。セリフを別の形で読み込みたい、ファイル名をもっと便利にしたいなどというときには適宜コードを変更することで対応できます。

自分なりにうまく使ってください。

この記事が気に入ったらサポートをしてみませんか?