Автор |
Сообщение |
|
Дата: 08 Фев 2006 22:45:01
#
Знающие люди, подскажите хорошую программу - шумодав, работающую со звуковой картой. Через LineIn подается сигнал от приемника, надо убрать белый шум, который там постоянно звучит и оставить только голос. Думаю такие программы есть, но найти их к сожалению не смог.
|
|
Дата: 08 Фев 2006 23:02:36
#
Гораздо проще сразу писать без шума. Или есть какие-то проблемы с этим?
|
Реклама Google
|
|
|
Дата: 08 Фев 2006 23:12:26
#
Да писать то и не нужно ничего. На приемнике нет шумодава, я его через комп слушаю и хочу все посторонние шумы убрать кроме голоса иначе думаю, скоро тронусь от непрерывного прослушивания белого шума (кстати, есть такой способ человека в дурку загнать).
|
|
Дата: 08 Фев 2006 23:22:14
#
|
|
Дата: 12 Фев 2006 01:38:29
#
Посмотрите программу на http://www.recsound.org/switch Она, по превышению/понижению уровня на входе звуковой карты порогового уровня, включает/выключает заданные пользователем линии микшера воспроизведения. Если Вам удастся подобрать пороговый уровень, то, думаю, что она Вам поможет. |
|
Дата: 12 Фев 2006 02:12:39
#
recsound
Посмотрел программу, спасибо.
Быстро Вы ее сделали!
Сразу скажу об обнаруженных недостатках:
1. включение записи при понижении уровня ниже порога происходит со значительной задержкой, слишком много информации теряется. Задержка должна быть только для выключения записи. Для включения можно ее сделать фиксированной, завязанной на алгоритм принятия решения о включении.
2. если звуковая карта занята другой программой, выскакивают окна об ошибке в огромном количестве.
3. Все-таки, стоит подумать об автокорреляторе или анализаторе спектра для определения момента срабатывания... Так будет надежнее.
|
|
Дата: 12 Фев 2006 10:38:51
#
recsound спасибо, отличная программа! Вот только была бы она чуть-чуть поживее.
|
|
Дата: 12 Фев 2006 11:18:19
#
recsound прошу прощения, сразу не обратил внимание на такой параметр как задержка. Поставил там 0, теперь все работает просто супер! Спасибо.
|
|
Дата: 12 Фев 2006 12:55:00
#
recsound
Да, раз уж у Вас уже использован анализатор спектра, то первое, что приходит на ум, это запомнить исходный спектр шума, а принимать решение о появлении нужного сигнала по среднеквадратичному отклонению текущей огибающей спектра от исходной. Все разницы отсчетов гистограммы возвели в квадрат и сложили,- вот и целевая функция.
|
|
Дата: 12 Фев 2006 18:46:38 · Поправил: recsound
#
john_qkk
>1. включение записи при понижении уровня ниже порога происходит со >значительной задержкой, слишком много информации теряется.
Задержка регулируется. Или я что-то не так понял?
> 2. если звуковая карта занята другой программой, выскакивают окна об
> ошибке в огромном количестве.
Спасибо за замечание! Уже исправил. Кстати, попробуйте, а то у меня почему-то звуковая карта если даже чем-то открыта, ошибок не выдает :(
По поводу использования спектра для определения наличия полезного сигнала на входе (в нашем случае, речи) я над этим подумаю. Я как-то делал нечто подобное - а именно поиск в аудиофайле фрагментов по образцу. В общем-то делал почти так, как Вы (john_qkk) написали, только брал не спектры а первые коэффициенты кепстров (что-то около трети от их общего количества). Думаю, что если получалось определить схожесть - то можно определить и различие между двумя сигналами. В общем, все зависит от наличия свободного времени :)
|
|
Дата: 12 Фев 2006 19:16:03 · Поправил: SergUA6
#
john_qkk
recsound
Возможно проблемы с ОС, вы бы определились у кого какая.
p.s. recsound к Вам у меня пара вопросов по кепстру. Вы брали действительный кепстр или комплексный? Сами писали процедуру или из какой либо библиотеки? Меня интересуют детали, кепстр(действительный) который я получаю, вызывает у меня сильные сомнения, какой то он не совсем получается симпатичный, и я не уверен, что правильно ли все работает.
|
|
Дата: 13 Фев 2006 01:07:55
#
SergUA6
Операционная система - Win XP.
По поводу кепстра - брал действительный кепстр, для сравнения кепстров, на мой взгляд, комплексный не нужен. А получал его очень просто: БПФ -> вычисление модуля спектра ->логарифмирование (я использовал натуральный логарифм) -> обратное БПФ. При обратном БПФ (как, впрочем, и при прямом) мнимые части коэффициентов полагал равными нулю. А в чем сомнения? Если тема не интересна широкой общественности :) можете писать мне на basil@recsound.org |
|
Дата: 13 Фев 2006 01:14:13
#
recsound
Тема про кепстры интересна еще и мне.
Опустим бредовое название и обсудим по сушеству этот спектр логарифма спектра (по сути). Мне не совсем понятно, почему после логарифмирования Вы используете _обратное_ БПФ? По сути этих самых "кепстров" надо использовать оба раза прямое Фурье. Или я чего-то не понимаю?
|
|
Дата: 13 Фев 2006 09:23:32
#
recsound
Ну так по поводу модуля спектра не совсем ясно, прямое БПФ дает в итоге комплексные коэффициенты, модуль берется классический, корень из суммы квадратов мнимой и действительной частей, который затем логарифмируется и таким образом получаем кепстр, или же берется абсолютное значение и логарифмируется каждая из частей спектра(мнимая и действительная), что в итоге и дает кепстр? Как правильно то на самом деле? С направлением последнего БПФ так же не совсем понятно, хотелось бы в общем все прояснить по возможности до конца.
john_qkk
С названием интересная история, сам кепстр появился в радиолокации, с его помощью удавалось обнаружить на фоне мощного импульса подсветки сигнал отражения, с достаточно точной локализацией во времени. Поскольку использовалось нелинейное преобразование спектра, грубо говоря частотная область и временнАя сигнала менялись местами, то же самое сделали и в названии, перевернули часть слова спектр и получили кепстр, то же самое сделали и с результатами визуализации кепстра, частота кепстра превратилась в сачтоту, уже чуть позже оказалось, что кепстр отлично подходит для анализа речи, в силу того, что сигнал представленный ярко выраженными гармониками, в кепстре имеет всего одну сачтоту не зависимо от положения этих гармоник на частотной оси, что в свою очередь позволяет, к примеру, определить одно и то же слово произнесенное разными людьми, женщиной или мужчиной как вариант. Ну это в общем идеализированно, не так все просто, но принцип такой.
|
|
Дата: 13 Фев 2006 22:03:45 · Поправил: recsound
#
SergUA6
john_qkk
IMHO, вы путаете кепстр с гомоморфной обработкой сигналов, где он используется. Кепстр - это ОБРАТНОЕ преобразование Фурье от логарифма спектра. Недаром он имеет размерность времени.
Цитирую: "В общем случае, комплексный кепстр сигнала определяется как обратное преобразование Фурье от логарифма комплексного спектра" (Бондарев В.Н., Трестер Г., Чернега В.С. Цифровая обработка сигналов: методы и средства., Севастополь, 1999).
Повторюсь, что действительный кепстр я считал так: БПФ -> модуль спектра (как правильно указал SergUA6 корень квадратный из суммы квадратов мнимой и действительной части коэффициентов), -> логарифмирование полученых действительных коэффициентов (y=ln(x)) -> обратное БПФ, где действительные значения коэффициентов являются логарифмом из модуля спектра (предыдущий шаг), а мнимые значения равны нулю.
Что еще могу добавить, но это IMHO, несущественно, что перед БПФ отсчеты сигнала я взвешивал окном Хемминга, и при вычислении кепстра усреднял спектры двух соседних окон БПФ.
А для анализа речи кепстр используется во-первых для определения частоты основного тона (по пику в области малых времен кепстра в вокализованых участках речи), а во-вторых для определения формантных частот, так как он позволяет отделить медленно изменяющуюся составляющую спектра (АЧХ голосового тракта) от быстро меняющейся (кстати именно путем гомоморфной обработки).
|
|
Дата: 13 Фев 2006 22:53:54
#
Нашел тут вот эту ссылку, но она только все затуманивает:
http://www.cepstrum.co.jp/1about.htm1. inverse Fourier transform of the logarithm of the power spectrum of a signal
2. Fourier transform of the logarithm of the power spectrum
Это, извините, две большие разницы.
Похоже, надо исходные книжки читать. Или свои писать :) |
|
Дата: 14 Фев 2006 11:08:10
#
recsound
Ок, понятно. Узкий момент, это перед обратным БПФ, для правильного преобразования, "разбавление" полученных значений нулями, к сожалению в моих источниках об этом ни слова, что сильно меня смущало, так как получалась какая-то ерунда, даже теоретически. А так да, все правильно... tnx.
|
|
Дата: 14 Фев 2006 17:05:08
#
В сложности ПО не полезу но прикрутил к Флай 200.Работает Только уровень срабатывания поставил -15 дБ.
|
|
Дата: 15 Фев 2006 19:19:03 · Поправил: recsound
#
john_qkk
IMHO, все понятно
> 1. inverse Fourier transform of the logarithm of the power spectrum
обратное преобразование Фурье логарифма спектра мощности
> of a signal
сигнала
> 2. Fourier transform of the logarithm of the power spectrum
Преобразование Фурье логарифма спектра мощности
Во втром случае имеется ввиду обратное преобразование, ибо какой смысл делать последовательно два прямых преобразования?
Кстати, для любителей кепстра :) завтра выложу вариант программы, (включения/выключения по уровню) который позволяет и посмотреть кепстр.
Так что кому интересно, завтра можете скачать и посмотреть кепстр. Кстати, пик в области малых времен кепстра при вокализованой речи действительно видно :)
Добавлю, уже выложил, можете качать: www.recsound.org/switch |
|
Дата: 01 Мар 2006 00:19:14
#
Решил немного развить тему :)
На том же www.recsound.org/switch уже лежит новая версия переключателя с детектором голоса (присутствия диктора). Теперь включает/выключает линии микшера не только по уровню, но и по наличию голоса. Кому интересно - попробуйте. |
|
Дата: 01 Мар 2006 03:42:20
#
recsound
Теперь включает/выключает линии микшера не только по уровню, но и по наличию голоса.
НЕ работает... Постоянно моргает "голоса нет" вне зависимости от типа сигнала и уровня.
AC`97 WinXP
|
|
Дата: 01 Мар 2006 08:38:44 · Поправил: Вилкер
#
recsound
Решил немного развить тему :)
На том же http://www.recsound.org/switch уже лежит новая версия переключателя с детектором голоса (присутствия диктора). Теперь включает/выключает линии микшера
Гм.
А до попугая этого доделать - слабО?
Собственно мини-ТЗ:
- программирование входа-выхода (использование второй-третей звуковухи системы)
- запоминание своих настроек громкости/баланса для используемых каналов, восстановление ранее действующих при выходе.
- програмное обнаружение передачи, в том числе:
- по разнице абсолютная тишина - легкий шум (шумодав закрыт - шумодав открыт, но в канале тишина соответсвенно)
- по CTCSS (скорее всего будут проблемы в обнаружении CTCSS на фоне голоса, поэтому схема 'триггер' - открываемся при тишине в голосовом участке И сигнале в CTCSS, закрываемся по тишине И отсутсвии CTCSS)
- запись, настройка предельной длины записи
- конец записи - по длительности/прекращению передачи
- воспроизведение на заданный источник звука, настройка момента начала воспроизведения - непосредственное для двухчастотных систем, ожидание для моночастотных, настройка срезания начала/хвоста записи.
- при передаче - выдача наружу коммутирующего сигнала - lpt/rs232/тон по заданному каналу (например - звук по левому, тон по правому), настройка задержки звука относительно коммутации, настройка прямой-инверсный сигнал коммутации, настройка частоты тона (герцы/десятки кГц), выдача CTCSS.
- watchdog - самодиагностика, проверка состояния коммутирующего сигнала, недопущение выдачи коммутирующего сигнала более оговоренного времени, при необходимости - перезагрузка.
Собственно основной затык - програмное обнаружение, програмных попугаев много разных было, но никто этого так и не реализовал.
Благодарные юзеры памятник при жизни поставят. :) |
|
Дата: 01 Мар 2006 21:13:04
#
Вилкер
Сомневаюсь, что благодарных юзеров будет более одного :)
Наверное, я не совсем владею терминологией, но попугай - это имеется ввиду репитер?
Я, по наличию времени, попробую что-нибудь сделать в этом направлении. Для начала, до конца недели попробую сделать обнаружение субтональной сигнализации (CTCSS). Если удастся ее выловить в кефире :)
|
|
Дата: 01 Мар 2006 22:11:38
#
recsound
Сомневаюсь, что благодарных юзеров будет более одного :)
В lpd ветке пионеры визжать будут. Это ж ввобще ничего не надо - два шнурка на звуковуху бросил - и уже крутой репостроитель. :)
Наверное, я не совсем владею терминологией, но попугай - это имеется ввиду репитер?
Эхо-репитер. Который записывает передачу, а потом ее повторяет.
Для начала, до конца недели попробую сделать обнаружение субтональной сигнализации (CTCSS).
В принципе, это как раз можно сделать в последнюю очередь. :)
|
|
Дата: 01 Мар 2006 22:13:38
#
recsound
попробую сделать обнаружение субтональной сигнализации (CTCSS). Если удастся ее выловить в кефире :)
Эти частоты можно получить только с выхода дискриминатора или, по крайней мере, со входа фильтров. Фильтры вырезают нижние частоты с субтонами чтобы не гнать лишнюю мощность в динамик и не тратить зря аккумулятор.
|
|
Дата: 02 Мар 2006 21:58:40
#
john_qkk
У меня есть выход с дискриминатора. А вот в тех сканерах/радиостанциях, с которыми можно будет использовать программу, скорее всего нет.
PS К концу недели, скорее всего не успею :(
|
|
Дата: 02 Мар 2006 22:08:24 · Поправил: john_qkk
#
У меня есть выход с дискриминатора. А вот в тех сканерах/радиостанциях, с которыми можно будет использовать программу, скорее всего нет.
Ну тогда с субтонами ничего не получится. В моей станции, например, эти субтона подавлены практически в ноль, невозможно будет идентифицировать :((
|
|
Дата: 27 Апр 2006 15:38:50
#
Вариант 1 программного компьютерного шумодава. Как движок используется Steinberg Nuendo 3 или Cubase 3, к нему подвешивается DirectX плагин SoundSoap, настраивается для работы "на проход", таким образом успешно чистится практически любой шум, однако импульсные помехи вытягивает в "хвосты". Чищу им фонограммы с кассет от шума с большим удовольствием.
Дополнительно можно подвешивать другие плагины, типа фильтров, эквалайзеров, компрессоров, гейтов (кстати тоже шумодав пороговый!!!) Для варианта обработки файлов может работать автономно - имеет простой интерфейс.
Вариант 2 вообще примитивный - програма DSPFil. Описывалась в журнале Радио, года 3-4 назад, должна быть там на FTP
|
|
Дата: 22 Дек 2006 17:54:52 · Поправил: userkc (22 Дек 2006 17:57:17)
#
|
Реклама Google |
|