Синтез речи с помощью Python SDK
Ниже приведен пример синтеза речи из текста в TTS-разметке в файл формата WAV
Для остальных настроек синтеза
Для работы с Python SDK нужен пакет yandex-speechkit.
Аутентификация выполняется от имени сервисного аккаунта с помощью API-ключа или IAM-токена. Подробнее об аутентификации в API SpeechKit.
Перед началом работы
- Создайте сервисный аккаунт и назначьте ему роль
ai.speechkit-tts.user. - Для сервисного аккаунта получите и сохраните API-ключ.
Создайте приложение для синтеза речи
-
Установите пакет
yandex-speechkitс помощью менеджера пакетов pip :pip install yandex-speechkitУстановка проверялась на Python 3.9. Минимально допустимую версию Python см. на сайте SDK
.Если возникает конфликт версий пакета
grpcio-tools, см. раздел Решение конфликта версий при установке Python SDK. -
Создайте файл
test.pyи добавьте в него код:from argparse import ArgumentParser from speechkit import model_repository, configure_credentials, creds # Аутентификация через API-ключ. configure_credentials( yandex_credentials=creds.YandexCredentials( api_key='<API-ключ>' ) ) def synthesize(text, export_path): custom_endpoint = ('tts.api.ml.yandexcloud.kz:443', True) model = model_repository.synthesis_model( custom_endpoint=custom_endpoint # Передаем новый эндпоинт ) # Задайте настройки синтеза. model.voice = 'jane' model.role = 'good' # Синтез речи и создание аудио с результатом. result = model.synthesize(text, raw_format=False) result.export(export_path, 'wav') if __name__ == '__main__': parser = ArgumentParser() parser.add_argument('--text', type=str, help='text to synthesize', required=True) parser.add_argument('--export', type=str, help='export path for synthesized audio', required=False) args = parser.parse_args() synthesize(args.text, args.export)Где:
api_key— API-ключ для сервисного аккаунта;voice— голос для синтеза речи;role— амплуа для указанного голоса;text— текст в TTS-разметке для синтеза;export_path— путь к файлу, в который нужно записать аудио.
-
Сохраните текст, который нужно озвучить, в переменную окружения:
export TEXT='Я Яндекс Спичк+ит. Я могу превратить любой текст в речь. Теперь и в+ы — можете!' -
Выполните созданный файл:
python3 test.py --text ${TEXT} --export speech.wavГде:
--text— текст в TTS-разметке, который нужно синтезировать. В примере текст передается в переменной окруженияTEXT;--export— путь к файлу, в который нужно записать аудио.
В результате будет создан файл
speech.wavс синтезированной речью.