Как загрузить несколько текстовых файлов в текст Google в речь? - PullRequest
1 голос
/ 07 мая 2020

Я использую API преобразования текста в речь Google из-за того, насколько хороши голоса. Единственная проблема заключалась в том, чтобы найти способ сделать его удобным для пользователя. Самое главное, что преобразование текста в речь Google может принимать только текстовые файлы с 5000 или менее символами. Основная проблема, которую я обнаружил, заключается в том, что в настоящее время все, что я могу сделать, это использовать одну копию текстового файла и вставлять туда свои данные перед сохранением. Кто-нибудь знает, как можно загрузить папку, заполненную текстовыми файлами, чтобы было быстрее? Плюс также сохранение mp3 вместо их перезаписи?

# [START tts_ssml_address_imports]
from google.cloud import texttospeech
import os
import html

os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = 
# [END tts_ssml_address_imports]


# [START tts_ssml_address_audio]
def ssml_to_audio(ssml_text, outfile):
    # Generates SSML text from plaintext.
    #
    # Given a string of SSML text and an output file name, this function
    # calls the Text-to-Speech API. The API returns a synthetic audio
    # version of the text, formatted according to the SSML commands. This
    # function saves the synthetic audio to the designated output file.
    #
    # Args:
    # ssml_text: string of SSML text
    # outfile: string name of file under which to save audio output
    #
    # Returns:
    # nothing

    # Instantiates a client
    client = texttospeech.TextToSpeechClient()

    # Sets the text input to be synthesized
    synthesis_input = texttospeech.types.SynthesisInput(text=ssml_text)

    # Builds the voice request, selects the language code ("en-US") and
    # the SSML voice gender ("MALE")
    voice = texttospeech.types.VoiceSelectionParams(language_code='en-US',
                                                    name="en-US-Wavenet-D",
                                                    ssml_gender=texttospeech.enums.SsmlVoiceGender.MALE))

    # Selects the type of audio file to return
    audio_config = texttospeech.types.AudioConfig(audio_encoding="LINEAR16", pitch = 0, speaking_rate = 0.9)

    # Performs the text-to-speech request on the text input with the selected
    # voice parameters and audio file type
    response = client.synthesize_speech(synthesis_input, voice, audio_config)

    # Writes the synthetic audio to the output file.
    with open(outfile, 'wb') as out:
        out.write(response.audio_content)
        print('Audio content written to file ' + outfile)
    # [END tts_ssml_address_audio]

def main():
    # test example address file
    file = 'input_text.txt'
    with open(file, 'r') as f:
        text = f.read()
    ssml_text = text
    ssml_to_audio(ssml_text, 'file_output_speech.mp3')
    # [END tts_ssml_address_test]


if __name__ == '__main__':
    main()
...