Данный мануал предполагает, что у вас уже зарегистрированная учетка на Яндекс Облаке, так же на нем заведен сервисный аккаунт и получен 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» — путь к аудиофайлу, который необходимо перевести в текст. Результат обработки будет выведен в консоль.