Russian Qt Forum

Qt => Мультимедиа => Тема начата: LisandreL от Март 30, 2014, 00:20



Название: Wav => pcm
Отправлено: LisandreL от Март 30, 2014, 00:20
Есть потребность получить из произвольного wav-файла звуковые данные в определённом формате (PCM, mono, 8кГц).
В принципе формат wav-файла не сложный, так что (особенно если ограничить число поддерживаемых кодеков) прочитать звуковые данные можно. Даунмикс каналов и ресемплинг тоже реализовать можно своими силами, но есть явное ощущение что это велосипед.
Может быть подскажете готовые решения в виде библиотек или исходных кодов?


Название: Re: Wav => pcm
Отправлено: xokc от Март 31, 2014, 09:04
libsndfile http://www.mega-nerd.com/libsndfile/ (http://www.mega-nerd.com/libsndfile/) - чтение и конвертация форматов
libsamplerate http://www.mega-nerd.com/SRC/ (http://www.mega-nerd.com/SRC/) - ресемплинг
Обе неоднократно проверенные (используются, в частности, в Adobe Audition), простые и надежные, правда не все просто с лицензией (libsamplerate не имеет LGPL), но там уж разберетесь сами.


Название: Re: Wav => pcm
Отправлено: LisandreL от Апрель 02, 2014, 10:56
libsndfile http://www.mega-nerd.com/libsndfile/ (http://www.mega-nerd.com/libsndfile/) - чтение и конвертация форматов
Спасибо, остальное, пожалуй сам напишу.


Название: Re: Wav => pcm
Отправлено: xokc от Апрель 02, 2014, 20:01
Спасибо, остальное, пожалуй сам напишу.
Вам оно, конечно, виднее, но, в общем случае, быстрый и качественный аудио ресемплинг дело совсем не тривиальное. Впрочем, не зная толком задачи лезть с советами не буду. Но в своё время преобразование файла с частотой дискретизации, например, 11025 Гц в 8000 Гц да ещё на блоках данных по 100 мс, да ещё на сигналах, где где разрыв фазы был категорически недопустим у меня лично попило много крови.


Название: Re: Wav => pcm
Отправлено: LisandreL от Апрель 02, 2014, 22:08
Впрочем, не зная толком задачи лезть с советами не буду
Просто речь, данные целиком, скорость (в разумных пределах) не критична.