Как получить фонемы из Google Cloud API Text-to-Speech

Я следую руководству Google Cloud API Text-to-Speech Python. Я хотел бы знать, есть ли способ вернуть фонемы и их продолжительность, промежуточный шаг в генерации интерпретируемой речи. Это возможно? Если да, не могли бы вы отослать меня к документации и, надеюсь, к некоторому примеру кода, который это делает. Я искал и не мог найти ничего, что уже ответило на мой вопрос.

Спасибо! гма


person gma    schedule 05.05.2021    source источник


Ответы (2)


Упоминание всех шагов для получения фонем из Google Cloud API Text-to-Speech. В части 3 вы можете найти пример кода. Вот шаги, которые вы можете выполнить:

[Часть-1]

  1. В Google Cloud Console на странице выбора проекта выберите или создайте проект Google Cloud.

  2. Убедитесь, что биллинг включен для вашего облачного проекта.

  3. Включите облачный API преобразования текста в речь.

  4. Создайте учетную запись службы: а. В Cloud Console перейдите на страницу Создать учетную запись службы. б. Выберите проект. в. В поле Имя учетной записи службы введите имя. Облачная консоль заполняет поле идентификатора учетной записи службы на основе этого имени. д. Нажмите «Готово», чтобы завершить создание учетной записи службы. Не закрывайте окно браузера. Вы будете использовать его на следующем шаге.

  5. Создайте ключ сервисной учетной записи: a. В Cloud Console щелкните адрес электронной почты созданной учетной записи службы. б. Щелкните Ключи. в. Нажмите «Добавить ключ», затем нажмите «Создать новый ключ». д. Щелкните Создать. Файл ключа JSON загружается на ваш компьютер. е. Щелкните Закрыть.

  6. Задайте для переменной среды GOOGLE_APPLICATION_CREDENTIALS путь к файлу JSON, содержащему ключ вашей служебной учетной записи. Эта переменная применяется только к вашему текущему сеансу оболочки, поэтому, если вы открываете новый сеанс, установите переменную снова.

    Пример 1. Linux или macOS export GOOGLE_APPLICATION_CREDENTIALS="KEY_PATH"

    Замените KEY_PATH на путь к файлу JSON, содержащему ключ вашей учетной записи службы.

    Например:- export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/service-account-file.json"

    Пример 2. Windows

    Для пауэршелла:

    $env:GOOGLE_APPLICATION_CREDENTIALS="KEY_PATH"

    Замените KEY_PATH на путь к файлу JSON, содержащему ключ вашей учетной записи службы.

    Например:

    $env:GOOGLE_APPLICATION_CREDENTIALS="C:\Users\username\Downloads\service-account-file.json"

    Для командной строки:

    set GOOGLE_APPLICATION_CREDENTIALS=KEY_PATH

    Замените KEY_PATH на путь к файлу JSON, содержащему ключ вашей учетной записи службы.

  7. Установите и инициализируйте облачный SDK.

[Часть 2]

Установите клиентскую библиотеку

pip install --upgrade google-cloud-texttospeech

[Часть 3]

Создать аудиоданные

Теперь вы можете использовать Text-to-Speech для создания аудиофайла с синтетической человеческой речью. Используйте следующий код, чтобы отправить запрос синтеза в API преобразования текста в речь.

from google.cloud import texttospeech

client = texttospeech.TextToSpeechClient()

synthesis_input = texttospeech.SynthesisInput(text="Hello, World!")

voice = texttospeech.VoiceSelectionParams(
    language_code="en-US", ssml_gender=texttospeech.SsmlVoiceGender.NEUTRAL
)

audio_config = texttospeech.AudioConfig(
    audio_encoding=texttospeech.AudioEncoding.MP3
)

response = client.synthesize_speech(
    input=synthesis_input, voice=voice, audio_config=audio_config
)

with open("output.mp3", "wb") as out:
    out.write(response.audio_content)
    print('Audio content written to file "output.mp3"')

Если вы столкнулись с какой-либо проблемой, перейдите по ссылке ниже:

https://cloud.google.com/text-to-speech/docs/quickstart-client-libraries#client-libraries-install-python

person Akshansha Singhal    schedule 05.05.2021

Спасибо за ваш ответ @Akshansha. Я знаю, как создать аудиофайл из синтетической человеческой речи. Мой вопрос был больше о том, как получить метаданные, такие как фонема или визема. Например, с помощью API Amazon Polly вы можете получить такие данные при использовании преобразования текста в речь:

{"time":0,"type":"sentence","start":0,"end":23,"value":"Mary had a little lamb."}
{"time":6,"type":"word","start":0,"end":4,"value":"Mary"}
{"time":6,"type":"viseme","value":"p"}
{"time":73,"type":"viseme","value":"E"}
{"time":180,"type":"viseme","value":"r"}
{"time":292,"type":"viseme","value":"i"}
{"time":373,"type":"word","start":5,"end":8,"value":"had"}
{"time":373,"type":"viseme","value":"k"}
{"time":460,"type":"viseme","value":"a"}
{"time":521,"type":"viseme","value":"t"}
{"time":604,"type":"word","start":9,"end":10,"value":"a"}
{"time":604,"type":"viseme","value":"@"}
{"time":643,"type":"word","start":11,"end":17,"value":"little"}
{"time":643,"type":"viseme","value":"t"}
{"time":739,"type":"viseme","value":"i"}
{"time":769,"type":"viseme","value":"t"}
{"time":799,"type":"viseme","value":"t"}
{"time":882,"type":"word","start":18,"end":22,"value":"lamb"}
{"time":882,"type":"viseme","value":"t"}
{"time":964,"type":"viseme","value":"a"}
{"time":1082,"type":"viseme","value":"p"}

Я спрашивал, можем ли мы получить аналогичный результат с Google Cloud API TTS?

Спасибо, гма

person gma    schedule 05.05.2021
comment
Похоже, что из запроса варианты, которые Google только начал (в бета-версии), поддерживающие метки SSML, но не обеспечивающие синхронизацию фонем, как AWS - person Luke; 05.05.2021
comment
Спасибо за ваш ответ @Luke. Это может меня заинтересовать, но я не могу найти примеров того, как это использовать. У вас есть образцы кода или ссылки, которые более подробно раскрывают эту тему, потому что документация Google не очень точна, и я не понимаю, как ее использовать. Спасибо - person gma; 06.05.2021
comment
Документы AWS Polly более удобны или даже документы IBM Watson - person Luke; 08.05.2021