Yandex SpeechKit: быстрый старт на Python

Данный мануал предполагает, что у вас уже зарегистрированная учетка на Яндекс Облаке, так же на нем заведен сервисный аккаунт и получен API ключ. Если нет, то сначала воспользуйтесь инструкцией для получения ключа: https://yandex.cloud/ru/docs/iam/operations/authentication/manage-api-keys#create-api-key

Для генерации аудио файла из текста можно использовать следующий код:

from argparse import ArgumentParser
from speechkit import model_repository, configure_credentials, creds
from speechkit.stt import AudioProcessingType

# Аутентификация через API-ключ.
configure_credentials(
   yandex_credentials=creds.YandexCredentials(
      api_key='111222333' # здесь укажите ваш 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__':
   synthesize('Я Яндекс Спичкит. Я могу превратить любой текст в речь. Теперь и вы — можете!', 'speech.wav')

На 8-й строке примера необходимо указать API ключ Яндекс Облака, и в конце кода с помощью первого аргумента функции synthesize() задаем текст, который необходимо перевести в голос, результат будет сохранен в файл speech.wav в директории скрипта.

Для генерации текста из аудио файла:

from argparse import ArgumentParser
from speechkit import model_repository, configure_credentials, creds
from speechkit.stt import AudioProcessingType

# Аутентификация через API-ключ.
configure_credentials(
   yandex_credentials=creds.YandexCredentials(
      api_key='111222333' # здесь укажите ваш API ключ
   )
)

def recognize(audio):
   model = model_repository.recognition_model()

   # Настройки распознавания.
   model.model = 'general'
   model.language = 'ru-RU'
   model.audio_processing_type = AudioProcessingType.Full

   # Распознавание речи в указанном аудиофайле и вывод результатов в консоль.
   result = model.transcribe_file(audio)
   for c, res in enumerate(result):
      print('=' * 80)
      print(f'channel: {c}\n\nraw_text:\n{res.raw_text}\n\nnorm_text:\n{res.normalized_text}\n')
      if res.has_utterances():
         print('utterances:')
         for utterance in res.utterances:
            print(utterance)

if __name__ == '__main__':
   parser = ArgumentParser()
   parser.add_argument('--audio', type=str, help='audio path', required=True)

   args = parser.parse_args()

   recognize(args.audio)

Здесь на 8-й строке необходимо указать API ключ Яндекс Облака и далее скрипт запускается из командной строки:

 python audio2text.py --audio speech.wav

Где «audio2text.py» — адрес данного скрипта, а «speech.wav» — путь к аудиофайлу, который необходимо перевести в текст. Результат обработки будет выведен в консоль.