Запись звука и анализ.
От: Spaun2002 Россия  
Дата: 20.08.04 09:38
Оценка:
Доброго всем времени суток.
У меня возникла такая проблема: нужно написать программу, которая будет постоянно мониторить состояние микрофона, и, если величина шума увеличится (кто-то скажет в микрофон), то начнется запись. Соответственно, если в течении какого-то времени из микрофона поступает только шум, то запись должна быть прекращена.

Кто-нибудь знает как это можно сделать, или, хотя бы, с какой стороны к этому подступиться.
Сам я первый раз работаю со звуком, и не знаю, с чего даже начать.

Заранее благодарен.
Re: Запись звука и анализ.
От: Fastwit  
Дата: 22.08.04 17:58
Оценка:
Здравствуйте, Spaun2002, Вы писали:



MSDN->Graphics and Multimedia->Windows Multimedia->SDK Documentation->Multimedia Audio->Waveform Audio


Или вставь это в адресную строку MSDN:
ms-help://MS.MSDNQTR.2003APR.1033/multimed/wave_7jcf.htm
... << RSDN@Home 1.1.4 @@subversion >>
Re[2]: Запись звука и анализ.
От: Spaun2002 Россия  
Дата: 25.08.04 14:03
Оценка:
Здравствуйте, Fastwit, Вы писали:

F>Здравствуйте, Spaun2002, Вы писали:




F>
MSDN->>Graphics and Multimedia->Windows Multimedia->SDK Documentation->Multimedia Audio->Waveform Audio
F>


F>Или вставь это в адресную строку MSDN:

F>
F>ms-help://MS.MSDNQTR.2003APR.1033/multimed/wave_7jcf.htm
F>


Я читал этуот раздел, но там ничего не говорится о том, как обрабатывать звуковой поток. Нужно сделать что-то типа гистограммы.
Может кто-нибудь знает, в каком формате хранятся данные в буфере?
Re[3]: Запись звука и анализ.
От: Fastwit  
Дата: 26.08.04 09:54
Оценка:
Здравствуйте, Spaun2002, Вы писали:

Audio Data Blocks

The waveInAddBuffer and waveOutWrite functions require applications to allocate data blocks to pass to the device drivers for recording or playback purposes. Both of these functions use the WAVEHDR structure to describe its data block.


help://MS.MSDNQTR.2003APR.1033/multimed/wave_7msz.htm
... << RSDN@Home 1.1.4 @@subversion >>
Re[3]: Запись звука и анализ.
От: PSP Беларусь  
Дата: 27.08.04 10:55
Оценка:
Здравствуйте, Spaun2002, Вы писали:

S>Я читал этуот раздел, но там ничего не говорится о том, как обрабатывать звуковой поток.


Для записи звука рекомендую использовать библиотеку PORTAUDIO. Она черезвычайно простая и не требует замороченной работы как стандартные функции винды.

S> Нужно сделать что-то типа гистограммы.

А гистограмму зачем строить???


S>Может кто-нибудь знает, в каком формате хранятся данные в буфере?

В PORTAUDIO можно задать формат данных FLOAT и не надо ни с чем разбираться.
Всегда Ваш, PSP.
Re: Запись звука и анализ.
От: PSP Беларусь  
Дата: 27.08.04 11:12
Оценка:
Здравствуйте, Spaun2002, Вы писали:

S>Доброго всем времени суток.

S>У меня возникла такая проблема: нужно написать программу, которая будет постоянно мониторить состояние микрофона, и, если величина шума увеличится (кто-то скажет в микрофон), то начнется запись. Соответственно, если в течении какого-то времени из микрофона поступает только шум, то запись должна быть прекращена.

Как правило шум -- это высокочастотный сигнал. Чтобы определять шумовые участки необходимо джелать классификатор речь/шум. Наиболее простые характеристики для классификации это:
1) Количество пересечений сигналов нулевой оси.
2) энергия высоких частот
3) Корреляция

С первой характеристикой всё понятно.

Вторая характеристика K2 рассчитывается по следующей формуле


K2=сумма((x(i)-x(i-1)))


Где x(i) -- это звуковой сигнал. Сумма должна рассчитываться на участке 50 мс.


 x(i)-x(i-1)
это простейший дифференциатор который отфильтровывает низкие частоты.

Третий признак K3. В данном случае лучше использовать не полный расчёт корреляции, а коррелляцию сигнала со сдвигом на 1 сэмпл.


K3=сумма((x(i)*x(i-1)))


Где x(i) -- это звуковой сигнал. Сумма должна рассчитываться на участке 50 мс.


Для надёжного определения сигнал/шум необходимо фильтровать полученные коэффициенты примерно следующим образом:


Kfiltered=Kfiltered*0.9+0.1Knew;


Конечным решением должна быть некая система которая по фильтрованым характеристкам принимает решение является ли сигнал шумом или полезным сигналом.
Всегда Ваш, PSP.
Re[4]: Запись звука и анализ.
От: Spaun2002 Россия  
Дата: 27.08.04 17:34
Оценка:
Здравствуйте, PSP, Вы писали:

PSP>Здравствуйте, Spaun2002, Вы писали:


S>>Я читал этуот раздел, но там ничего не говорится о том, как обрабатывать звуковой поток.


PSP>Для записи звука рекомендую использовать библиотеку PORTAUDIO. Она черезвычайно простая и не требует замороченной работы как стандартные функции винды.


S>> Нужно сделать что-то типа гистограммы.

PSP>А гистограмму зачем строить???


S>>Может кто-нибудь знает, в каком формате хранятся данные в буфере?

PSP>В PORTAUDIO можно задать формат данных FLOAT и не надо ни с чем разбираться.

Я уже встечал где-то упоминание об этой библиотеке на RSDN, только я не нашел ее в Интернете.
Не могли бы вы дать ссылку на нее или выслать на е-mail?
Re[5]: Запись звука и анализ.
От: PSP Беларусь  
Дата: 31.08.04 11:03
Оценка:
Здравствуйте, Spaun2002, Вы писали:

S>>>Может кто-нибудь знает, в каком формате хранятся данные в буфере?

PSP>>В PORTAUDIO можно задать формат данных FLOAT и не надо ни с чем разбираться.

S>Я уже встечал где-то упоминание об этой библиотеке на RSDN, только я не нашел ее в Интернете.

S>Не могли бы вы дать ссылку на нее или выслать на е-mail?

Элемнтарный поиск дал бы вам ответ. Но раз лень мучает то привожу ссылку: здесь
Всегда Ваш, PSP.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.