Конференция "Media" » Перекодировать wav с 22050hz на 8000
 
  • ВладОшин © (01.02.19 08:23) [0]
    Беру wav с nSamplesPerSec = 22050
    Создаю новую шапку, где nSamplesPerSec = 8000
    И перегоняю данные

    Когда проигрываю новый wav он становится длиннее примерно в 3 раза и "тянет" звук
    т.е. примерно в 22050/8000 раза длиннее

    А как надо? Может, писать каждый 3й байт?
    (Или не байт, а 4байта.. Каждый третий "четыре байта")
  • dmk © (01.02.19 19:30) [1]
    Интерполяция нужна.
  • Pavia © (04.02.19 15:05) [2]
    Перекодирование, а вернее операция ресемплирования состоит из двух частей сглаживания и децимации.
    Причем на верх и вниз алгоритмы разные.

    А за подробностями читайте учебник:
    А.Б.Сергиенко_Цифровая обработка сигналов(2003)
  • ВладОшин © (12.02.19 14:32) [3]
    спасибо )

    читал-читал..
    "немцы какие-то .. конгресс.."

    В итоге, через bass.dll сделал. А именно надо скачать bassenc.dll
    Там есть и пример. Плюс форум у них неплохой, нашел что нужно почти 1:1, одну строку поправил только ) И rate собственно свой во второй строке )
  • ВладОшин © (12.02.19 19:56) [4]
    кстати, вдруг кто будет делать
    глубина float32 и signed16 - одно и тоже получается, походу.
    А то полдня убил, не понял как конвертировать
    Потом отрезал шапку - 44 байта и скормил оборудованию - все нормльно, схавало
    Хотя wav, как пишет audacity - float32, а оборудование заточено на signed16 - 100%
 
Конференция "Media" » Перекодировать wav с 22050hz на 8000
Есть новые Нет новых   [134427   +29][b:0][p:0]