import os
import subprocess
from gtts import gTTS
class Record:
def __init__(self, file, path):
self.file_name = f'{file.split(".")[0]}.mp3'
self.file_path = os.path.join(path, file)
self.out_path = os.path.join(path, self.file_name)
def create_recordings(self):
subprocess.call(['gtts-cli', '-f' + self.file_path, '-o' + self.out_path])
path = r'C:\Users\xxxx\Desktop\create_recordings'
for file in os.listdir(path):
if file.endswith('.txt'):
Record(file, path).create_recordings()
私がやろうとしていること:
subprocess.call コマンドで言語を変更します。self.file_path の後に 'lang=' + 'en-uk' を追加しようとしましたが、エラーが返されます。
Usage: gtts-cli [OPTIONS] <text>
Error: Invalid value for "<text>": <text> and -f/--file <file> can't be used together
そのため、別の言語を追加するために変更する方法がよくわかりません
ID が本当に気に入っているのは、言語を Record クラスに渡して、それを subprocess.call コマンドで使用できるかどうかです。
変更する言語はたくさんありますが、コマンド ラインで gtts-cli --all を使用して表示される英語の言語はすべて次のとおりです。
en-au: English (Australia)
en-ca: English (Canada)
en-gb: English (UK)
en-gh: English (Ghana)
en-ie: English (Ireland)
en-in: English (India)
en-ng: English (Nigeria)
en-nz: English (New Zealand)
en-ph: English (Philippines)
en-tz: English (Tanzania)
en-uk: English (UK)
en-us: English (US)
en-za: English (South Africa)