Как стать автором
Обновить

Комментарии 6

Вы не правильно настроили параметр sample_rate, нужно указать такой же, который указали в запросе, скорее всего это одно из трёх значений: 8000, 16000, 48000 (значение по умолчанию).

Sample_rate одинаковый, перебрал все три значения. Причем получаемый файл я и на компе не могу проиграть ни одним проигрывателем, в отличие от обычного wav

Полученный файл не будет проигрываться плеерами, потому что Яндекс возвращает чистые PSM данные, без WAV метаданных, которые как раз и сообщают плееру с какими параметрами проигрывать данные.

Проверьте, что указали параметр format='lpcm' в запросе, по умолчанию Яндекс присылает аудио в формате OGG OPUS.

Еще может быть, что библиотека pyaudio установилась с ошибками, попробуйте воспроизвести с помощью библиотеки simpleaudio, вот так:

import simpleaudio as sa

play_obj = sa.play_buffer(
	audio_data, # audio_data, полученная методом `.synthesize_stream()`
  1, # монодорожка, один канал
  2, # Количество байтов в секунду (16 bit = 2 bytes)
  sample_rate, # такой же как указали при запросе (8000, 16000, 48000)
)
play_obj.wait_done()

Спасибо. Собственно я изначально брал ваш пример из поста и ничего не менял, кроме токенов. Пробовал разными плеерами. Пробовал даже скормить яндексу на распознование, не понимает. Когда отдельно записанный wav распознает отлично.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории