初めに
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:スティーヴはジェーンから手紙をもらった。