|
Эхоподавление(если можно так сказать), Нужен реальный совет под реальную задачу. |
|
|
|
Jul 31 2009, 22:37
|

I WANT TO BELIEVE
     
Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751

|
Имеем трубку(телефон), режим связи: обычный(не "громкая связь"). Микрофон и динамик имеют аккустическую связь, которую конструктивными методами устранить не удаётся никак. Имеем эффект эха, задержка в канале большая - поэтому эхо мозговым фильтром пользователя не компенсируется и вызывает раздражение  В девайсе использован вокодер Speex, однако стандартная реализация его echo сanceller очень громоздка и предназначена больше для организации громкой связи. Для применения этой фичи as is нет оперативки, да и оптимизировать опять много чего придётся.....в общем не вариант. Нужно как-то организовать простой алгоритм эхоподавления применительно к конкретной трубке, с конкретными параметрами ну и т.д. Как бы сделать простое "вычитание" воспроизводимого динамиком сигнала из того, что поступает в микрофон и не передавать удалённому абоненту его-же голос?
--------------------
The truth is out there...
|
|
|
|
|
 |
Ответов
|
Aug 1 2009, 07:57
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(sigmaN @ Aug 1 2009, 01:37)  Микрофон и динамик имеют аккустическую связь, которую конструктивными методами устранить не удаётся никак. Имеем эффект эха, задержка в канале большая - поэтому эхо мозговым фильтром пользователя не компенсируется и вызывает раздражение  Сдается мне, что Вы все совершенно сумбурно и не правильно описали  ситуацию и причины Первый вопрос у кого из абонентов проблемы - у Вас - у соббеседника - у обоих Второй В каких условиях возникают проблемы - собеседник аналоговый абонент - ISDN - Мобильник - Такой-же как Вы и вообще у Вас своя система коммутации Цитата(fontp @ Aug 1 2009, 10:46)  Где Вы такое прочитали? Рекомендации, тогда еще, МКТТ всосаны, можно сказать, с молком матери. И осенью 25 лет, как занимаюсь связным оборудованием. Посему то, что Вы где-то слышали, читали в интернете, .... можете оставить при себе. Цитата(fontp @ Aug 1 2009, 10:46)  Напротив, я написал.. А я прочитал  и сообщаю, что написанное Вами есть каша из разрозненных явлений, фактов и слухов.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Aug 1 2009, 08:05
|

Эксперт
    
Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183

|
Цитата(zltigo @ Aug 1 2009, 11:57)  А я прочитал  и сообщаю, что написанное Вами есть каша из разрозненных явлений, фактов и слухов.  Я и не писал статью. Здесь, например, можно найти более систематическое изложение http://www.commsdesign.com/showArticle.jht...icleID=16502325Можно догадаться, что канал - всё таки цифровой (раз там где-то кодер SPEEX), тогда "трубка" эмулирует станцию ( не телефон!), следовательно автору нужен линейный эхоподавитель (раз не спикерфон) Совсем простых методов компенсации не получится (акустический эхоподавитель в любом случае сложнее линейного. но и линейный вычислительно тоже не прост) В SPEEX эхоподавитель, насколько я помню, реализован в float и на базе FFT. В этом смысле, алгоритм может быть проще - если реализовать в fixed-point (возможно быстрее) и NLMS (возможно меньше памяти). А в остальном, алггоритм в любом случае не может быть простым. Ближнее эхо только по сравнению с дальним "без задержки", а на самом деле имеет протяжённость во времени и "тупо вычитать" не получится. Нужен ближний эхоподавитель, обычно делают на протяженность 16 мс(128 тапов) импульсной характеристики отклика, может можно попробовать меньше (4 мс ?), если связь чисто аккустическая (прямое подключение АЦП и ЦАП без гибрида и линии) и линейная В open source есть эхоподавители на С, NLMS здесь, хоть тормоз, конечно, но хоть, кажется, не float http://www.rowetel.com/ucasterisk/oslec.htmlЗдесь даётся ещё более лучший эхоподавитель LEC в исходниках C. Он RLS, в исходниках,есть акккустический, есть вариант для tms5х, но, строго говоря, не совсем open source )) http://www.miketdspsolutions.com/Можно попробовать извлечь оттуда содержательный код и сократить линию задержки до минимума...
|
|
|
|
|
Aug 1 2009, 11:41
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(fontp @ Aug 1 2009, 11:05)  Можно догадаться, что канал - всё таки цифровой (раз там где-то кодер SPEEX), тогда "трубка" эмулирует станцию ( не телефон!), следовательно автору нужен линейный эхоподавитель (раз не спикерфон) Трубка есть терминал и ничего она не эмулирует. Что такое Вы назвали "линейным" не совсем понятно, ибо в терминологии по отношению к терминалу эхо "Acoustic" и "Network". Что имел ввиду Автор - еще более непонятно - пока не начнет на наводящие воросы отвечать - сполшное гадание. Цитата Совсем простых методов компенсации не получится (акустический эхоподавитель в любом случае сложнее линейного. но и линейный вычислительно тоже не прост) Если под линейным подразумевается "Network Echo Canceler", то в самом общем случае со стороны сети может быть все, что угодно в том числе и дополнительно Акустическое Эхо удаленной стороны  . В частном случае, действительнго проще. Цитата Нужен ближний эхоподавитель..... А вот "Ближний" уж точно не нужен - у Автора без вариантов цифра, значит "четырехпроводка" и на ближнем конце нет эха по определению. Наиболее вероятно речь идет об эхе дальнего конца с уровнем порядка -20-30dB, возникающим при переходе на аналоговую двухпроводку ТфОП, незаметным при задержках до, примерно, 4ms, но в данном конкретном случае бьющем по ушам из-за очень большой задержки вносимой SPEEX кодеком в "Трубке". Компенсация этого безобразия целиком и полносттью лежит на породившией эту выходящюю за рамки допустимой зажержку "Трубке" и никак не на стороне Сети. Хотя стороны Автор чего-то вещал про невозможность удовлетворительно развязать "трубку", посему вероятны и проблемы из-за акустической связи+большой задержки на удаленном конце, даже при полной "четырехпроводке". Цитата(sigmaN @ Aug 1 2009, 14:06)  Как я понял, это какраз far echo. Т.е. фильтрацией должен заниматься Абонент 2. Нет, это чистой воды акустическое эхо со всеми его прелестями. И давить его должен тот, кто порождает - трубка, которая не обеспечивает физическое подавление. Это правильно, ибо свалив эту проблему с больной головы на здоровую (удаленный конец), Вы только добавите проблем ввиде необходимости еще и ДОПОЛНИЕЛЬНО компенсироваить многосот мииллисекундные, причем нестабильные, задержки канала.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Aug 1 2009, 11:41
|

Эксперт
    
Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183

|
Цитата(zltigo @ Aug 1 2009, 15:34)  Трубка есть терминал и ничего она не эмулирует. Что такое Вы назвали "линейным" не совсем понятно, ибо в терминологии по отношению к терминалу эхо "Acoustic" и "Network". Что имел ввиду Автор - еще более непонятно - пока не начнет на наводящие воросы отвечать - сполшное гадание. Если под линейным подразумевается "Network Echo Canceler", то в самом общем случае со стороны сети может быть все, что угодно в том числе и дополнительно Акустическое Эхо удаленной стороны  . В частном случае, действительнго проще. А вот "Ближний" уж точно не нужен - у Автора без вариантов цифра, значит "четырехпроводка" и на ближнем конце нет эха по определению. Наиболее вероятно речь идет об эхе дальнего конца с уровнем порядка -20-30dB, возникающим при переходе на аналоговую двухпроводку ТфОП, незаметным при задержках до, примерно, 4ms, но в данном конкретном случае бьющем по ушам из-за очень большой задержки вносимой SPEEX кодеком в "Трубке". Компенсация этого безобразия целиком и полносттью лежит на породившией эту выходящюю за рамки допустимой зажержку "Трубке" и никак не на стороне Сети. Хотя стороны Автор чего-то вещал про невозможность удовлетворительно развязать "трубку", посему вероятны и проблемы из-за акустической связи+большой задержки на удаленном конце, даже при полной "четырехпроводке". Автор объяснил уже, что он проигрывает сигнал от удалённого абонента 1 через свой динамик, из-за чего и имеет аккустическое "ближнее" эхо на своём микрофоне. Для абонента 1 - это дальнее эхо, что его раздражает )) Короче, он должен давить его как ближнее эхо на своём конце, очевидно. Ближнее в смысле задержки, а не терминала. В смысле 'короткий" Линейный эхоподавитель - это линейный эхоподавитель. Такой как я дал по ссылке )) У телефонистов может и network, особенно если поставят на станции готовый многоканальный )) В IP-телефонии, те кто его делал, говорят, обычно, линейный. Я делал, потому говорю - линейный. Потому до сих пор дальнее эхо прёт, когда звонишь из Канады в Подмосковье ;-)) Шютка Типа того http://blog.astfin.org/
|
|
|
|
|
Aug 1 2009, 11:57
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(fontp @ Aug 1 2009, 14:41)  У телефонистов может и network, особенно если поставят на станции готовый многоканальный )) Ну и каша у Вас в голове, опосля чтения "интернету"  Причем тут "станции"? Network в обсуждаемом случае не могут поставить на станции просто по той простой причине, что он давит эхо которое пришло из СЕТИ. И стоять он в описываемой системе, может только в терминале aka "Трубка" со стооны СЕТИ. Ну то, что он в данном конкретном случае, после объяснений Автора, не нужен, как класс, я уже писал - для данного случая достаточно одного эхозаградителя в "Трубке" - только с противоположной Сети стороны - Акустического. Поскольку шлюзования в аналоговые двухпроводные сети нет, то и Network заградитель нигде не нужен.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Aug 1 2009, 12:05
|

Эксперт
    
Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183

|
Цитата(zltigo @ Aug 1 2009, 15:57)  Ну и каша у Вас в голове, опосля чтения "интернету"  Причем тут "станции"? Network в обсуждаемом случае не могут поставить на станции просто по той простой причине, что он давит эхо которое пришло из СЕТИ. И стоять он в описываемой системе, может только в терминале aka "Трубка" со стооны СЕТИ. Ну то, что он в данном конкретном случае, после объяснений Автора, не нужен, как класс, я уже писал - нужет эхозаградитель в "Трубке" с противопорложной Сети стороны - Акустический. Где он должен стоять и какой, я давно догадался и объяснил своими словами 5 постов назад :-) Это у Вас каша в голове при чтении меня :-)
|
|
|
|
Сообщений в этой теме
sigmaN Эхоподавление(если можно так сказать) Jul 31 2009, 22:37 fontp Цитата(sigmaN @ Aug 1 2009, 02:37) Имеем ... Aug 1 2009, 07:22 zltigo Цитата(fontp @ Aug 1 2009, 10:22) Главным... Aug 1 2009, 07:42  fontp Цитата(zltigo @ Aug 1 2009, 11:42) С како... Aug 1 2009, 07:46 HardJoker Цитата(sigmaN @ Aug 1 2009, 02:37) Имеем ... Aug 1 2009, 10:46 sigmaN Цитататогда "трубка" эмулирует станцию (... Aug 1 2009, 11:06 fontp Цитата(sigmaN @ Aug 1 2009, 15:06) Как я ... Aug 1 2009, 11:22 sigmaN Хорошо.
Вопрос сводится к минимуму:
На каких прин... Aug 1 2009, 12:07 fontp Цитата(sigmaN @ Aug 1 2009, 16:07) Хорошо... Aug 1 2009, 12:08  shf_05 посмотрите сюда
http://focus-webapps.ti.com/genera... Aug 29 2009, 08:45   fontp Цитата(shf_05 @ Aug 29 2009, 12:45) посмо... Aug 29 2009, 09:40 sigmaN Я в этих делах не так силён....может быть ссылку х... Aug 1 2009, 12:15 fontp Цитата(sigmaN @ Aug 1 2009, 16:15) Я в эт... Aug 1 2009, 12:24 sigmaN Неет. Вы спрашивайте - я ж ничего не скрываю
Прос... Aug 1 2009, 12:40 fontp Цитата(sigmaN @ Aug 1 2009, 16:40) Неет. ... Aug 1 2009, 12:53 sigmaN Спасибо. Если всё так - то и правда speex допилит... Aug 1 2009, 13:04 Harbour oslec вообще-то растет из spandsp, и выковыриваетс... Aug 2 2009, 06:03 Ковылин_Константин Цитата(Harbour @ Aug 2 2009, 13:03) oslec... Aug 11 2009, 10:28 ryhor Аффтар топика
- какая платформа в виде софта? ес... Aug 4 2009, 15:11 sigmaN >- какая платформа в виде софта? если ли оболчк... Aug 4 2009, 20:54 ryhor Цитата(sigmaN @ Aug 5 2009, 00:54) >- ... Aug 5 2009, 13:32 sigmaN >Итак у вас техас 28хх серии для всего с голосо... Aug 5 2009, 14:09 ryhor Цитата(sigmaN @ Aug 5 2009, 18:09) Непроз... Aug 5 2009, 14:30  glock17 Цитата(ryhor @ Aug 5 2009, 23:30) ну кром... Aug 21 2009, 08:42   ryhor Цитата(glock17 @ Aug 21 2009, 12:42) Про... Aug 22 2009, 15:48 sigmaN Спасибо, посмотрим.
Щас пока жду платы, чтоб всё... Aug 11 2009, 18:28 sigmaN Итак, к делу
Почитал пару-тройку статеек с сайта... Aug 22 2009, 00:52 DRUID3 Цитата(sigmaN @ Aug 22 2009, 03:52) По сн... Aug 22 2009, 03:54 Harbour только следует учесть что oslec это линейный эхода... Aug 22 2009, 02:03 sigmaN Ну как. Мы же определяем характеристики эхо канала... Aug 22 2009, 10:14 fontp Цитата(sigmaN @ Aug 22 2009, 14:14) Это д... Aug 22 2009, 17:32 sigmaN 1. Нет. Ну я хоть и чайник в этих делах, но опреде... Aug 22 2009, 16:30 ryhor ну тогда первая строка гугла на запрос "импул... Aug 22 2009, 18:05 fontp Цитата(ryhor @ Aug 22 2009, 22:05) ну тог... Aug 22 2009, 18:15  ryhor Цитата(fontp @ Aug 22 2009, 21:15) Обычно... Aug 22 2009, 18:29   fontp Цитата(ryhor @ Aug 22 2009, 22:29) да лад... Aug 22 2009, 18:39    ryhor Цитата(fontp @ Aug 22 2009, 21:39) Так КИ... Aug 22 2009, 19:52     fontp Цитата(ryhor @ Aug 22 2009, 23:52) Ну как... Aug 23 2009, 09:36      ryhor умилительно читать ваше словоблудие - нет с вам с... Aug 23 2009, 12:55       fontp Цитата(ryhor @ Aug 23 2009, 16:55) чисто ... Aug 23 2009, 13:28      ryhor Цитата(fontp @ Aug 23 2009, 12:36) Станда... Aug 23 2009, 13:34       fontp Цитата(ryhor @ Aug 23 2009, 17:34) ало вн... Aug 23 2009, 13:43        ryhor Цитата(fontp @ Aug 23 2009, 16:43) А G.16... Aug 23 2009, 14:01         fontp Цитата(ryhor @ Aug 23 2009, 18:01) я близ... Aug 23 2009, 14:05 sigmaN Завтра, не смотря на праздник, постараюсь поработа... Aug 23 2009, 23:03 sigmaN В общем-то, по-моему всё очень неплохо складываетс... Aug 27 2009, 00:42 Ковылин_Константин На правом рисунке сколько по времени ширина выделе... Aug 27 2009, 01:46 fontp Эхо хоть и короткое, но и неслабое.
ОSLEC или люба... Aug 27 2009, 11:42 ryhor Вот - половина (большая) дела сделана.
Теперь вы ... Aug 27 2009, 12:00 sigmaN Ой ой ой! Нагнал я вчера по ночи
Пропустил я... Aug 27 2009, 16:52 ryhor Цитата(sigmaN @ Aug 27 2009, 20:52) Ой ой... Aug 27 2009, 19:28 sigmaN Влепил я туда OSLEC.
Попариться пришлось не очень... Aug 28 2009, 23:34 sigmaN Всё кокаколой! Спасибо! Там в ослике надо ... Aug 30 2009, 22:11 Harbour ЦитатаOpen-source реализации таким образом нацелен... Aug 31 2009, 12:30 sigmaN чё-то ослик всё куда-то убегает
После 5 - 7 мин... Sep 4 2009, 01:38 Ковылин_Константин 5-7минут не пробовал - проверю на своём алгоритме.... Sep 4 2009, 03:05 sigmaN даа-так и есть
Скорее всего где-то маху дал, ко... Sep 4 2009, 16:41
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|