Я занимаюсь звуком, используя режим захвата петли. Захваченный сигнал представляет собой 32-битный сигнал. Я изо всех сил пытаюсь преобразовать это в 16-битную форму сигнала, поэтому кодеры, такие как хромой, могут справиться с ней (это говорит о несохраненном формате данных: 0x0003).Преобразование 32-битной формы волны в 16-битную волновую форму
Я попытался сдвинуть биты (не моя сильная точка) в самом волновом потоке от 32 до 16 бит, но результат все еще звучит искаженно.
Класс Wave32To16Stream кажется взрывать по этому делу: если (sourceStream.WaveFormat.Encoding = WaveFormatEncoding.IeeeFloat!) Певд ApplicationException ("Только 32 бит с плавающей точкой поддерживается");
В идеале я хотел бы просто захватить прямо до 16 бит, нет ли способа установить глубину захвата бит? Если нет, может кто-нибудь помочь мне с преобразованием wavestream?
Примером захваченного сигнала можно найти здесь: http://dl.dropbox.com/u/454409/test.wav (10mb)
Я хотел бы также согласиться на какой-то способ закодировать это в mp3 с хромой, я пытался каждый параметр перестановку я могу думать, чтобы заставить его принять файл волны. Что интересно, Audacity (который использует lame_enc для кодирования mp3) смог создать mp3 из формы волны (но, может быть, Audacity автоматически преобразует его на 16 бит, прежде чем передавать его в ламе).
Это указывало мне в правильном направлении, исправила мою проблему. – hreinn1000