Почему сбор входящего и исходящего звука приводит к искажению звука?Python

Программы на Python
Ответить Пред. темаСлед. тема
Гость
 Почему сбор входящего и исходящего звука приводит к искажению звука?

Сообщение Гость »


Я пытаюсь передать аудиобайты в общий буфер и передать их через модель транскрипции. Звук поступает из веб-сокета, семплируется на частоте 8 кГц и закодирован по закону Mu-law. Мне удалось воспроизвести несколько секунд аудио для себя, если я перевожу его в отдельные отдельные аудиобуферы (ibuffer и obuffer) для входящего и исходящего звука, но если я собрать в общий буфер, звук очень медленный и задерживается. Вот выдержка из моего тестового кода:

obuffer = b"" ибуфер = б"" общий = б"" пока правда: данные = ожидание очереди.get() если данные["событие"] == "медиа": websocket_payload = данные["медиа"]["полезная нагрузка"] чанк = audioop.ulaw2lin(base64.b64decode(websocket_payload), 2) if data["media"]["track"] == ВХОДЯЩИЙ: обуфер += чанк if data["media"]["track"] == ИСХОДЯЩИЕ: ibuffer += чанк общий += чанк Я тестировал, собирая obuffer, ibuffer и shared, маринуя буферы и затем сохраняя их как .wav. файлы и воспроизводить их на своем компьютере. Отдельные буферы воспроизводятся нормально, и их даже можно объединить, просто усреднив их, что тоже работает нормально, но почему их сбор в общий буфер не может обеспечить такое же качество звука? Получаемый звук довольно далек от оригинала, и я пробовал разные частоты дискретизации до 16 кГц и т. д. Есть ли у кого-нибудь идеи, что здесь делать?

Это странно, поскольку в документации Twilio указано, что вы можете сделать это без проблем.

импортировать маринованные огурцы волна импорта с open("all_bytes.pkl", "rb") как f: loading_audio_bytes = Pickle.load(f) нканалов = 1 ширина выборки = 2 частота кадров = 8000 nframes = len(loaded_audio_bytes) // (nchannels * ширина выборки) с wave.open("wav.wav", 'wb') как wf: wf.setnchannels(нканалы) wf.setsampwidth(ширина выборки) wf.setframerate(частота кадров) wf.setnframes(nframes) wf.writeframes(loaded_audio_bytes) В этом ответе предлагается использовать только исходящую связь, но мне нужны обе дорожки!
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Проблема регистрации входящего и исходящего трафика WebClient
    Anonymous » » в форуме JAVA
    0 Ответы
    40 Просмотры
    Последнее сообщение Anonymous
  • Freeswitch: Как определить, был ли ответ на звонок при перевороте входящего и исходящего звонка?
    Anonymous » » в форуме Python
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Перемещение последней вкладки HorizontalPager приводит к искажению
    Anonymous » » в форуме Android
    0 Ответы
    44 Просмотры
    Последнее сообщение Anonymous
  • Java BufferedImage: рисование пиксельного изображения с исходным размером пикселей приводит к искажению пикселей.
    Anonymous » » в форуме JAVA
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Spring Integration: обработка ошибок для исходящего адаптера Jpa
    Гость » » в форуме JAVA
    0 Ответы
    75 Просмотры
    Последнее сообщение Гость

Вернуться в «Python»