Синтез речи с помощью 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): model = model_repository.synthesis_model() # Задайте настройки синтеза. 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-разметке, который нужно синтезировать;--export
— путь к файлу, в который нужно записать аудио.
В результате будет создан файл
speech.wav
с синтезированной речью.