Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум на Исходниках.RU > Программирование звука > Как получить уровень звука с микрофона?


Автор: tsvigo 23.08.14, 19:12
Как получить уровень звука с микрофона?

Автор: Prince 24.08.14, 05:41
Записать звук и посчитать уровень.

Автор: tsvigo 24.08.14, 11:12
Цитата Prince @
Записать звук и посчитать уровень.

А подробней знаете?

Автор: Prince 24.08.14, 13:05
Знаю. Достаточное количество народа знает, но ваш вопрос не подразумевает подробностей, он общего плана. :-?
Спросите как-то иначе, опишите задачу подробно(не забывая про 7-й пункт правил раздела), напишите, что вызывает затруднения, какого рода помощь вам нужна(теория, информация, советы, готовый кусок кода).
Пока вообще не от чего отталкиваться.

Автор: tsvigo 24.08.14, 14:01
Платформа конечно Windows, язык желательно C++. Идея в том чтобы получать уровень звука с микрофона и если больше определённого сразу приглушать весь уровень громкости в системе. То есть вообще не давать компьютеру издавать звуки больше определённой громкости. Помощь мне нужна в готовом куске кода.

Автор: Prince 24.08.14, 19:44
Цитата
Помощь мне нужна в готовом куске кода.
C++

Я пас.
Цитата
Идея в том чтобы получать уровень звука с микрофона и если больше определённого сразу приглушать весь уровень громкости в системе. То есть вообще не давать компьютеру издавать звуки больше определённой громкости.

:scratch:
Для того, чтобы не давать компьютеру издавать звуки больше определенной громкости, необходимо мониторить уровень на выходе. Чтобы мониторить уровень на выходе, необходимо записывать сигнал с выхода. Одновременно с мониторингом выхода необходимо мониторить(записывать) ещё и сигнал микрофона, который служит триггером включения/выключения limiter-а по выходу. Однако раздельная(независимая) запись с нескольких входов в обычных звуковухах не предусмотрена.
В настройках микшеров Realtek есть настройка limited output и в принципе до неё можно попробовать добраться програмно, но никаких регулировок она не имеет, работает as is, что может оказаться препятствием для практического применения.
Или же я не понял идею.
Если limiter не нужен, а достаточно двинуть ползунок в микшере на некоторую величину, тогда как я и говорил, задача сводится к записи сигнала с микрофонного входа, вычислению уровня и принятию решения(выставить регулятор громкости в заданное положение).
Ещё один подводный камень: другая программа(например, скайп) может попытаться "елозить" настройками микшера одновременно с вашей программой; может быть нехорошо.

Какова цель, практическая, вашей идеи?

Автор: MIF 24.08.14, 19:47
А микрофон то причем?

Автор: raxp 25.08.14, 10:32
...такое
нано?

Автор: tsvigo 07.09.14, 13:12
Цитата Prince @
Какова цель, практическая, вашей идеи?

Ну скажем не знаю как у Вас а у меня бывает что уровни громкости в разных источниках разные - файлы которые проигрываются напоминалкой звуковые, кино, в веб-браузере не знаю... любые. И бывает что компьютер начинает орать. Так вот чтоб такого не было.

Добавлено
Цитата tsvigo @
...такое
нано?

Я попробовал так: испытывал на микрофоне в веб-камере. Результаты такие: вроде бы видно что программа работает - уровни бегают, но эффекта физического (реального) я не почувствовал. А проверял на микрофоне веб-камеры, так как чего-то не нашёл обычный микрофон. А потом операционная система у меня заплохела. Я и всё стёр при её переустановке. Может ещё раз пошлёте а я уж сохраню на Yandex.Диск или на Google.Диск?

Автор: Prince 07.09.14, 15:08
Цитата
Ну скажем не знаю как у Вас а у меня бывает что уровни громкости в разных источниках разные - файлы которые проигрываются напоминалкой звуковые, кино, в веб-браузере не знаю... любые. И бывает что компьютер начинает орать. Так вот чтоб такого не было.

Limited output в настройках звуковой карты, если realtek.
"Орать" комп будет в любом случае, в том смысле, что внезапное "громко" на фоне "тихо" субъективно всегда воспринимается как "ор". Но лимитер объективно ограничит максимальный уровень на выходе, как вы и хотите.

Если вы имели в виду поставить микрофон перед колонками и записывать с него звук(чтобы узнать, насколько громко "орёт компьютер") - это лишнее. Достаточно выбрать соответствующий вход(stereo out, stereo mix, what i hear и т.п.)в настройках звуковой карты и писать звук с этого входа.

Автор: raxp 08.09.14, 06:24
Цитата
Я попробовал так
а следует проверять для условий о которых вы оговорили, на кинофильмах, браузере и прочем.

http://rghost.ru/57905002

Цитата
А потом операционная система у меня заплохела
все питомцев разводите :)

Powered by Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)