Конференция "Media" » Тональный сигнал DTMF [D7, WinXP]
 
  • Rodelim (21.01.10 12:12) [0]
    Здравствуйте! Нужна Ваша помощь. Имеется достаточно много записанных аудио (wav) файлов, в которых записывается интервью. Помимо самого интервью, в самом начале файла есть запись тонального набора номера телефона. Необходимо расшифровать набранный номер, для идентификации каждой записи. Может что нибудь посоветуете? Если есть исходник или компонент -  было бы здорово!
  • Вариант (21.01.10 12:36) [1]

    > Rodelim   (21.01.10 12:12)

    Поищи в гугле по словам Фурье преобразование, косинусные и синусные преобразования, алгоритм Гертцеля, DTMF - статей много, есть и примеры.
    Все это было у интела в свое время в библиотеке, Signal Processing Library - там и готовая библиотека, и дока хорошая и примеры и описание математического аппарата. Кстати в примерах был и код для определения DTMF сигнала насколько мне помнится.
  • Jeer © (21.01.10 12:59) [2]
    Если коротко, то

    s_prev = 0
    s_prev2 = 0
    coeff = 2*cos(2*PI*normalized_frequency);
    for each sample, x[n],
     s = x[n] + coeff*s_prev - s_prev2;
     s_prev2 = s_prev;
     s_prev = s;
    end
    power = s_prev2*s_prev2 + s_prev*s_prev - coeff*s_prev2*s_prev;
  • Jeer © (21.01.10 13:19) [3]
    P.S.
    Это Гертцель ( Goertzel )

    power вычисляется после каждого блока семплов

    http://focus.ti.com/lit/an/spra168/spra168.pdf
  • Rodelim (21.01.10 14:02) [4]
    Спасибо! Буду смотреть. Jeer, а нет чуть более подробного кода?
  • Jeer © (21.01.10 14:48) [5]
    Код - это твое дело.
    Вышеприведенный пример на псевдо-языке легко транслируется на нужный.
    Но это ядро для вычисления отклика на заданной частоте.

    Основная программа должна перебрать все используемые частоты при кодировании и определить две частоты с максимальной энергией.
    Опять же это упрощенно.
    В реальности добавляются проверки на 1 и 2 гармоники, шум и тп
  • Bob (22.01.10 12:16) [6]
    2 Rodelim

    Вот неплохая статейка про декодирование DTMF:

    http://www.rid.mv.ru/dsp/dtmf/dtmf.htm

    Там ссылка на СИ-шный пример.
  • Bob (22.01.10 12:38) [7]
    2 Rodelim

    Наверное еще можно изогнуться через  LineMonitorDigit
    Она мониторит вход Line-In на звучке и выдает мессагу при получении
    и расшифровке DTMF-цифры.
    В подробности не вникал, смотри MSDN.
  • Jeer © (22.01.10 15:52) [8]
    Вполне достаточно SoundForge и аналоги, чтобы извлечь через FFT нужную информацию.
    Это если человек ни бум-бум в программировании, что видимо и правда.
  • Rodelim (25.01.10 19:39) [9]
    Чтож. Может и ни бум-бум в данной области программирования. Вот и задал вопрос. Но всё равно всем спасибо, кто откликнулся! Материала много. Будем изучать.
  • Jeer © (26.01.10 17:45) [10]

    > Если есть исходник или компонент -  было бы здорово!


    Да ты не обижайся - реакция на такую просьбу здесь практически предсказуема.


    > Материала много. Будем изучать.


    Задавай конкретные вопросы и гарантированно получишь конкретный ответ. :)
 
Конференция "Media" » Тональный сигнал DTMF [D7, WinXP]
Есть новые Нет новых   [120173   +8][b:0][p:0]