Я захватывал звук, используя режим захвата обратной петли. Захваченный сигнал представляет собой 32-битный сигнал. Я изо всех сил пытаюсь преобразовать это в 16-битную форму сигнала, чтобы кодировщики, такие как lame, могли с этим справиться (он говорит, что формат данных не поддерживается: 0x0003).
Я пробовал сдвигать биты (не моя сильная сторона) в самом волновом потоке с 32 бит на 16 бит, но результат все равно звучит искаженно.
Класс Wave32To16Stream в этом случае, похоже, не работает:
В идеале я хотел бы просто захватить прямо в 16 бит, нет ли способа установить битовую глубину захвата? Если нет, может ли кто-нибудь помочь мне с преобразованием волнового потока?
Пример захваченного сигнала можно найти здесь: http://dl.dropbox.com/u/454409/test.wav (10 МБ)
Я бы также согласился на какой-то способ кодирования этого в mp3 с помощью lame, я пробовал все перестановки параметров, которые только мог придумать, чтобы заставить его принимать волновой файл. Что интересно, Audacity (который использует lame_enc для кодирования mp3) смог создать mp3 из сигнала (но, возможно, Audacity автоматически преобразует его в 16-битный перед передачей в lame).