ITAコーパスをファイル名と本文のみに変換するスクリプトを作成する

初めに

TTSの学習データを作る際に 音声コーパスにはよく ITAコーパスが用いられることがあります。このコーパスは以下のフォーマットで作成されています.

ファイル名:本文,ヨミ

こちらを学習に使う際にヨミの部分は、必要がないので「ファイル名:本文」のみに変更するスクリプトを作成します。

環境

変換コード

以下のコードで変換することができます

import sys

def process_file(input_file_path, output_file_path):
    with open(input_file_path, 'r', encoding='utf-8') as input_file, \
         open(output_file_path, 'w', encoding='utf-8') as output_file:
        for line in input_file:
            # 「:」で1列目と2列目を分割
            parts = line.strip().split(':')
            if len(parts) >= 2:
                # 2列目をさらに「,」で分割して、最初の要素を取得
                first_part, rest = parts[0], parts[1].split(',')[0]
                # 1列目と2列目の最初の要素を出力ファイルに書き込む
                output_file.write(f'{first_part}:{rest}\n')

if __name__ == '__main__':
    if len(sys.argv) < 3:
        print("Usage: python script.py <input_file_path> <output_file_path>")
        sys.exit(1)
    
    input_file_name = sys.argv[1]
    output_file_name = sys.argv[2]

    process_file(input_file_name, output_file_name)

実行

以下のように引数に 入力ファイル名 + 出力ファイル名 を入れて実行します。

python convert_ita_corpus.py emotion_transcript_utf8.txt output_ita_convert_corpus.txt

結果は以下のようになります

入力ファイル

EMOTION100_001:えっ嘘でしょ。,エッウソデショ。
EMOTION100_002:シュヴァイツァーは見習うべき人間です。,シュヴァイツァーワミナラウベキニンゲンデス。
EMOTION100_003:デーヴィスさんはとても疲れているように見える。,デーヴィスサンワトテモツカレテイルヨーニミエル。
EMOTION100_004:スティーヴはジェーンから手紙をもらった。,スティーヴワジェーンカラテガミヲモラッタ。

出力ファイル

EMOTION100_001:えっ嘘でしょ。
EMOTION100_002:シュヴァイツァーは見習うべき人間です。
EMOTION100_003:デーヴィスさんはとても疲れているように見える。
EMOTION100_004:スティーヴはジェーンから手紙をもらった。