Автор |
Сообщение |
|
Дата: 14 Июл 2011 17:53:52 · Поправил: Sinus (14 Июл 2011 22:46:52)
#
Programmist, Меш прав: надо прежде всего задачу поставить - что мы хотим проанализировать?
Объясняю, что у нас уже вышло, всё по порядку:
1) Звуковые данные в первом Вашем файле (3clicks) это - массив ~30000 чисел. Все они нули (хотя есть и шум: встречаются -1 среди нулей) кроме трёх точек: 3 числа в массиве равны примерно 3.27e+004. Это ваши 3 "импульса", на слух щелчки.
Смотрю wav-файл я Маткадом. Там есть функция GETWAVINFO, она выдала параметры Вашего файла: 1 канал, 96000 Гц, 16 бит, 29930 точек. В Маткаде можно и график массива смотреть в любом виде: с линейным сглаживанием (как и в аудиоредакторах), либо ступеньками, либо просто точками. Есть и печать массива в файл txt - чтобы смотреть wav-данные в виде чисел. Есть и анализ фурье-спектра, и много чего ещё в Маткаде можно делать. Можно даже преобразовать произвольный массив чисел в wav-файл с заданной частотой дискретизации.
2) Ваша идея, насколько я понял, была такая: если этот массив проредить, то получим сигнал с меньшей частотой дискр. Например, если выкинуть каждую вторую точку, то получим 48000 Гц. Но при этом выкинутыми могут оказаться сами "импульсы" - одиночные ненулевые числа в исходном массиве. Этот пример Вы привели как аналогию того, что в реальном звуке могут быть короткие всплески, которые не попадут в массив wav при низкой частоте дискр.
3) Но! На самом деле понижение частоты дискр. (downsampling) делается не так. Исходный сигнал пропускают через ФНЧ, обрезающий частоты выше половины новой частоты дискр.! (Если этого не делать, то будет нарушено условие Котельникова, и в дальнейшем дискретный сигнал не удастся восстанавливать без искажений!)
ФНЧ же не выкидывает короткие импульсы, а удлиняет их во времени! ФНЧ высокого порядка может даже под действием короткого импульса выдать затухающие колебания. Такие удлинённые импульсы будут в дальнейшем успешно дискретизованы - они не исчезнут! Так же и при оцифровке реального звука с микрофонов: на входе АЦП обязательно должен быть ФНЧ, давящий все частоты выше 1/2 частоты дискретизации.
4) "Pazera" у меня, думаю, верно сконвертила 96 кГц в 44.1 кГц - импульсы удлинились, думаю, из-за программного ФНЧ. На слух они так и остались щелчками, потому что ухо не слышит выше 22 кГц. Для уха важен спектр частот, а не форма импульса. А что такое SA у Меша, я не понял (Сигнал-Анализатор что ли? Дык он, наверное, ничего не конвертит, а только анализирует. Поясните плиз, если будет время...)
5) Не понял я, и на хрена нам файл src_real.wav. Его параметры такие: 1 канал, 48000 Гц, 16 бит, 200 точек. Т.е. это отрывок длительностью чуть более 4 мс. Вот ступенчатый график этого массива (одна ступенька на каждое число), но что с ним делать, и что в нём плохого - мне неясно :)))
Увеличить
Хорошо бы взять реальную wav запись высокого качества с 96 кГц, поконвертить её разными прогами в 48 и 44.1 кГц и устроить слепой тест (тем более, что здесь есть ребята с классной аппаратурой). |
|
Дата: 14 Июл 2011 19:44:11 · Поправил: Programmist (15 Июл 2011 00:57:38)
#
Sinus
Например, если выкинуть каждую вторую точку.
Нет, точки никто не выкидывает, все программы, как правило, считают как положено, с фильтром. Пример показывает только искривление ДД, из трех палок с одинаковой амплитудой, всегда получится три с разной.
Не понял я, и на хрена нам файл src_real.wav
Вот и я ни хрена не понял, с чего это Mesh обиделся, и чем это ему так моя ИХ не понравилась. Уж думаю, электролиты поменять на бескислородные :)
Задачи никакой и не было. Первая часть файла - руками нарисованный импульс, вторая - он же самый, только реально прошедший путь ЦАП-аналог(провод)-АЦП. Просто сделан пример.
устроить слепой тест
Не получится, файлы огромные и в них написано какой дискрет.
Вот тут мой конвертер, чтобы не сомневались, что я тут флудистикой занимаюсь и не знаю, как битрейт конвертировать. Кому надо, могу исходник прислать. Делал только для себя, не факт, что все режимы работают.
//Файл удален из-за обнаруженной ошибки.
|
Реклама Google
|
|
|
Дата: 14 Июл 2011 20:18:14
#
Programmist Ну вот вы демон. С чего вы взяли что Mesh обиделся? Я устал, утомилсо, есь у меня такое махонькое право? :)
Вы ж написали Реал, оно гораздо хуже. Вот сейчас собрал в один файл два импульса (реал - первые сто отсчетов) и он же в записи, через аналоговый тракт (вторые сто).
Ну глянул я. Чего хуже, где хуже, чем что хуже? Я что экстрасенс? Ну и утомило меня всё резко вдруг. Уж пардонте. :)
|
|
Дата: 14 Июл 2011 20:20:10
#
Mesh, спасибо, успокоили :)
|
|
Дата: 14 Июл 2011 21:04:52
#
Programmist
Вот тут мой конвертер
Чем он от этого отличается? |
|
Дата: 14 Июл 2011 21:20:33 · Поправил: Programmist (14 Июл 2011 21:28:30)
#
БЕГЕМОТ
Не знаю, делал давно, было нужно конвертировать большую кучу разномастных файлов в один формат.
Энкодер там Lame, декодер - Mad, пересчет битрейта - самодельный. У меня вообще почти весь софт свой - болезнь такая, наверно :)
Иногда бывает так, что под конкретную задачу быстрей сделать свою программу, чем искать в сети "кота в мешке".
Вот им как раз можно кучу сэмплов причесать под нужный формат, так что не пропадет.
|
|
Дата: 14 Июл 2011 22:04:22 · Поправил: Sinus (14 Июл 2011 22:10:10)
#
Programmist, спасибо, опробовал Ваш конвертер на тех же трёх импульсах. Интересно, что результат близок к тому, который дала прога Pazera. Вот изображения каждого из 3 импульсов после конверта от 96 к 44.1 кГц (картинка взята из аудиоредактора Cakewalk, верхняя дорожка - от Pazera, нижняя - от конвертера Программиста).
Увеличить
Уже нарабатывается статистика :)) Одиночные импульсы длительностью 1/ fдискр в музыке, конечно, не встречаются. Хорошо бы таким же методом посмотреть, сильно ли будут меняться при ресемплинге отрезки синусоид разной частоты или более сложные музыко-подобные сигналы.
ЗЫ. В языках я не особо силён, не знаю, разберусь ли в исходных кодах, если Вы их пришлёте. Но если Вы опишете алгоритм пересчёта, то мог попробовать с ним поэкспериментировать в Маткаде, из любопытства (правда, на днях в деревню уеду, зато осенью будет время повозиться с этими делами).
ЗЫ-ЗЫ Ребята, подскажите плиз, как вставлять сюда картинку в уменьшенном виде с кнопкой "Увеличить" ?? |
|
Дата: 14 Июл 2011 22:34:45 · Поправил: Mesh (14 Июл 2011 22:35:34)
#
Sinus У вас подержка скриптов ява должна быть включёна. Там кнопочка есть "уменьшеная картинка". Над полем ввода текста. Так говорите конвертер вас устроил на все 100? :)
|
|
Дата: 14 Июл 2011 22:39:01 · Поправил: Programmist (14 Июл 2011 22:40:29)
#
Sinus
если Вы опишете алгоритм пересчёта
Если я его начну описывать, весь radioscanner умрет от смеха :))
На самом деле, в Маткаде все должно быть. Переводить с Паскаля нет никакого смысла. Кода там много и с десяток дополнительных модулей. Сейчас посмотрел, еще чего-то не хватает, потерял, не компилируется. Резал спектр FFT, далее стандартным методом.
как вставлять сюда картинку в уменьшенном виде с кнопкой
Как и большую, только следующей кнопкой (imgs).
|
|
Дата: 14 Июл 2011 22:41:39 · Поправил: Mesh (14 Июл 2011 22:42:11)
#
Programmist Если я его начну описывать, весь radioscanner умрет от смеха :)) Не надо ничего описывать, уже усё ясно, смешного правда мало, тут рыдать нуно. :-) И типо вы на базе этой сказать софтинки лепите все свои поделки?
|
|
Дата: 14 Июл 2011 22:41:50 · Поправил: Sinus (14 Июл 2011 22:43:52)
#
Mesh, ну а чё, по-крайней мере радует воспроизводимость результата: два разных конвертора дали почти одно и то же. В физике воспроизводимость результата - один из признаков его достоверности )))
Туплю я, где Там кнопочка есть "уменьшеная картинка"? И можно ли уменьшить то, что я уже вставил (правку как-то сделать, пока сутки длятся)?
А-а-а! всё, спасибо, нашёл, сейчас поправлю.
|
|
Дата: 14 Июл 2011 22:43:13
#
Programmist
из трех палок с одинаковой амплитудой, всегда получится три с разной.
Посмотрите на сколько эти палки по уровню отличаются?
http://www.radioscanner.ru/uploader/2011/3clicks_b.mp3
Иногда бывает так, что под конкретную задачу быстрей сделать свою программу, чем искать в сети "кота в мешке".
Понятно, узко прикладная задача для целулоидных динамиков и розовых ухов :)
Sinus
[img s] ххх [/img s]
Или ручкам буковку s допишите |
|
Дата: 14 Июл 2011 22:44:38
#
Sinus Ага :-) Ладно спешить не буду, время есть, интереснога многа! Если меня не утомит в очередной раз.
|
|
Дата: 14 Июл 2011 22:45:22
#
БЕГЕМОТ, спасибо, отлично! Вообще-то, я как раз ручонками теги пишу, кнопками почти не пользуюсь.
|
|
Дата: 14 Июл 2011 22:46:41
#
Mesh
конвертер вас устроил на все 100
Конвертер сей, далеко не образец, годится в основном для перегонки музыки в сотовый телефон. Ну а если что серьезное делать, надо лезть в исходники и править. Вообще, это я погорячился, что сюда его выложил.
|
|
Дата: 14 Июл 2011 22:50:29
#
БЕГЕМОТ
Посмотрите на сколько эти палки отличаются?
Так не честно, я просил в 44100 или в 44000 :)
|
|
Дата: 14 Июл 2011 22:52:00 · Поправил: Mesh (14 Июл 2011 22:52:37)
#
Programmist Вообще, это я погорячился, что сюда его выложил. Однозананча!
Sinus Как физику, эксперимент. Берёте КулЕдит или чего у вас там под рукой есть. Генерите в нём вав файлик, такой безобидный безобидный. С дискретом 44100, разрядностью 16, моно и синусом в нём с частотой 7777 герц. Этож не запрещено?
Дале берёте эту софтинку котора тут гордо именется конвертер, и конвертите чекитовый вав в вав с дискретом 16000. Ну и как бы раскажите как вам резалты. Как физику так сказать. :)
|
|
Дата: 14 Июл 2011 22:58:40 · Поправил: Sinus (14 Июл 2011 23:01:27)
#
Programmist
Если я его начну описывать, весь radioscanner умрет от смеха :)) ... Резал спектр FFT, далее стандартным методом.
Ничего, не помрут, тут крепкие мужики! А в общем-то Вы уже всё и рассказали. Да, быстрое фурье-преобразование (FFT) в Маткаде есть, а что такое "стандартный метод" ресемплинга - нагуглю!
Ещё подумалось, что смотреть графики из файлов wav - это в любом случае означает смотреть цифровой сигнал. Даже если исходный wav прошёл через звуковую карту, но с выхода его сняли в PCM-оцифровке, это значит, что мы видим оцифровку. Хорошо бы смотреть реальные осциллограмы - фотографировать выходной аналоговый сигнал на экране аналогового осциллографа...
Mesh, ну примерно так и буду делать, как Вы предлагаете. Всё верно.
|
|
Дата: 14 Июл 2011 23:00:30 · Поправил: Programmist (14 Июл 2011 23:06:34)
#
Sinus
Не делайте того, что Mesh советует, лучше выбросьте конвертер в корзину. Ресемплинг - та еще штучка :)
В общем, я сразу честно признался, что работают не все режимы.
|
|
Дата: 14 Июл 2011 23:04:16 · Поправил: Mesh (14 Июл 2011 23:06:24)
#
Programmist Да ладно вам, эксперимент ж. :-) Дык эта, у меня ещё хистори есть про мп3. :-) Расказывать или ну его на фиг? :-)
з.ы. Вы не обижаётесь, я сам-то ну ничего тут особого то не положил не написал, просто люблю софт дрюкать и тихо в ужас приходить. Хобби такое у меня. :)
|
|
Дата: 14 Июл 2011 23:06:08 · Поправил: Sinus (14 Июл 2011 23:09:12)
#
Programmist, Вы не переживайте - у Вас нормальный конвертер (там же на самом-то деле lame конвертит, наверное). Во первых, раз Вы сумели сделать прогу - Вам респект, а не насмешка. Во-вторых, конвертеров в инете так много, что не очень-то народ бросится скачивать отсюда. В любом случае, спасибо!
Mesh, всяко рассказывать, никаких сомнений! :))
|
|
Дата: 14 Июл 2011 23:10:31
#
Sinus Да не, ну сказал чел конвертер бяка, типо он погорячился, ну чего уж тут, ну да бяка. Ну и ладно. :-)
|
|
Дата: 14 Июл 2011 23:11:50 · Поправил: Programmist (14 Июл 2011 23:17:30)
#
Mesh
Вы не обижаётесь
Чего обижаться, я знаю, что он кривой. Потому у меня до сих пор куча записей не в том формате, нормальный конвертер не сделал еще.
Sinus
там же на самом-то деле lame конвертит, наверное
Не, моя халтура, "Lame" и "Mad" для Mp3, ну там и название "Lame" говорит само за себя. Mesh все эти фокусы знает, вот и поймал меня сразу, Респект!
|
|
Дата: 14 Июл 2011 23:17:55 · Поправил: Mesh (14 Июл 2011 23:19:53)
#
Programmist нормальный конвертер не сделал еще. ?! Може оно так надо? Бяка датирована 2007 годом, ещё малька и пятилетка завершится. :-) Да не, чего я знаю, я вобще хотел другое проверить, а тут сразу такой косячище. Ну и собсно всё.
|
|
Дата: 14 Июл 2011 23:22:18
#
А, ну если та хистори про этот конвертер, то всяко не рассказывайте; подождём окончательной версии... )))
Много народу делает mp3-конверторы, и ещё больше народа их материт по чёрному... В принципе, раз уже есть упаковочные алгоритмы lossless (flac например), а проблема нехватки места на жёстких дисках нынче не такая острая, как лет 10 назад, то, наверное, не стоит гробить время на совершенствование именно MP3-конверторов.
|
|
Дата: 14 Июл 2011 23:25:24
#
Mesh
Бяка датирована 2007 годом
На самом деле, гораздо раньше, наверно в 2007ом исходники перебирал. Не надо оно пока, свое дело сделало и лежит себе тихонько, до лучших времен.
|
|
Дата: 14 Июл 2011 23:27:22
#
ну там и название "Lame" говорит само за себя.
А чего оно говорит, тогда уж чё-нить расскажите, сам я быстро не допру... ))
|
|
Дата: 14 Июл 2011 23:28:00 · Поправил: Programmist (14 Июл 2011 23:30:46)
#
Sinus
подождём окончательной версии
Нее, окончательную версию Вам придется делать, тем боле, что это достаточно интересно :)
А чего оно говорит
Убогий, ущербный, ну или типа того, в словаре есть.
|
|
Дата: 14 Июл 2011 23:31:34 · Поправил: Sinus (14 Июл 2011 23:39:21)
#
А какой тогда кодек не убогий?
В этом деле, наверное, есть ещё и такие подводные камни, как авторские права. Чего-нибудь изобретёшь приличное по простоте душевной, а оно окажется уже кем-то раньше запатентованным.. и получишь клизьму вместо радости. А если обходить стороной все приличные идеи, то вот и будет убогий результат...
|
|
Дата: 14 Июл 2011 23:41:39 · Поправил: Programmist (14 Июл 2011 23:44:44)
#
Sinus
А какой тогда кодек не убогий?
Да все они портят звук. Хорошие вещи надо хранить в wav, ну а если так просто, на телефоне послушать, то и Lame-320 сойдет, благо памяти сейчас везде много. Я всегда Lame использую, он бесплатный и исходники есть.
|
Реклама Google |
|