Форум программистов, компьютерный форум, киберфорум
Delphi: Графика, звук, видео
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/43: Рейтинг темы: голосов - 43, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 19.12.2012
Сообщений: 3

Захват и сохранение звука с микрофона в реальном времени

19.12.2012, 21:08. Показов 9444. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Если есть готовое решение - дайте ссылку где посмотреть.

Нужно следующее:

Программа слушает микрофон, желательно не монопольно, и при возникновении звука определенного уровня начинает его записывать в файл.
Записывать можно определенное время, несколько секунд, или до исчезновения звука.

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

Всем заранее спасибо.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.12.2012, 21:08
Ответы с готовыми решениями:

Воспроизведение звука с микрофона вебкамеры в реальном времени
Хочу сделать так, чтобы например сказал что-то в микрофон вебкамеры и оно тут же воспроизвелось в колонках(ну или наушниках). Возможно ли...

Захват звука с микрофона
Какие существуют средства в HTML5 для захвата звука с микрофона, сохранения и последующей его передачи на динамики компьютера? Меня...

Захват звука с микрофона
Нужно считать звук с двух микрофонов и возможность выбирать микрофон для считывания. audioFormat = new AudioFormat(44100,...

6
 Аватар для raxper
10237 / 6615 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
19.12.2012, 21:23
Нужно следующее:
контроль порогового уровня с микрофона и запись в файл при превышении некоторое время, задаваемое пользователем.

в частности менять его формат, воспроизводить
на какой формат?
0
 Аватар для Alex_pac
1302 / 708 / 107
Регистрация: 25.05.2011
Сообщений: 2,158
Записей в блоге: 51
19.12.2012, 21:31
через bass.dll создать поток HRECORD
C++
1
2
3
4
5
6
7
HRECORD BASS_RecordStart(
    DWORD freq,
    DWORD chans,
    DWORD flags,
    RECORDPROC *proc
    void *user
);
который будет слушать микрофон

далее по таймеру брать у него уровень текущего звука

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
type
  TBassLevel = record
    left: double;
    right: double;
  end;
 
// 
 
// max 32768
function ChannelLevel(stream: cardinal): TBassLevel;
var level: dword; 
begin
    level:=BASS_ChannelGetLevel(stream);
    result.left:=LOWORD(level)/32768;
    result.right:=HIWORD(level)/32768;
end;
после превышения порогового значения писать, либо не писать в файл

все это очень приблизительно. точнее дать не могу ибо догло искать.

подробней можно найти в оригинальной документации в bass.dll

Также есть класс BassSimple но его функционал пока не дотягивает чтобы сделать нечто подобное его же средставами. ибо надо будет спукаться в низкий уровень bass.dll API, зато у него окрытый код и можно посмотреть как организована запись с микрофона в файл
0
0 / 0 / 0
Регистрация: 19.12.2012
Сообщений: 3
20.12.2012, 11:12  [ТС]
Цитата Сообщение от raxp Посмотреть сообщение
контроль порогового уровня с микрофона и запись в файл при превышении некоторое время, задаваемое пользователем.
Спасибо за быстрый ответ, но есть ли исходники данной программы?
Цитата Сообщение от raxp Посмотреть сообщение
на какой формат?
Формат нужен *.FLAKE

Добавлено через 5 минут
Цитата Сообщение от Alex_pac Посмотреть сообщение
через bass.dll создать поток HRECORD
который будет слушать микрофон

далее по таймеру брать у него уровень текущего звука
после превышения порогового значения писать, либо не писать в файл

все это очень приблизительно. точнее дать не могу ибо догло искать.
подробней можно найти в оригинальной документации в bass.dll

Если можно, напишите подробнее, я не совсем понял как использовать код на С++ в Делфи.
Цитата Сообщение от Alex_pac Посмотреть сообщение
Также есть класс BassSimple но его функционал пока не дотягивает чтобы сделать нечто подобное его же средставами. ибо надо будет спукаться в низкий уровень bass.dll API, зато у него окрытый код и можно посмотреть как организована запись с микрофона в файл
Про этот класс я читал, пытаюсь разобраться.
0
 Аватар для Alex_pac
1302 / 708 / 107
Регистрация: 25.05.2011
Сообщений: 2,158
Записей в блоге: 51
20.12.2012, 20:11
на С++ там просто описание функции. Использовать также как и в Delphi
0
 Аватар для raxper
10237 / 6615 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
20.12.2012, 23:48
Формат нужен *.FLAKE
есть догадка, что вы делаете для GoogleSpeech API , и видимо речь про FLAC. Угадал?

Для конвертации использовал два способа: пакет NewAC, либо 'flac.exe' в консоли, поскольку наблюдались ситуации, когда DirectSound глючит.

Описание API вызова библиотеки GoogleSpeechRecognizeAPI2.DLL
0
0 / 0 / 0
Регистрация: 19.12.2012
Сообщений: 3
21.12.2012, 07:50  [ТС]
Цитата Сообщение от raxp Посмотреть сообщение
есть догадка, что вы делаете для GoogleSpeech API , и видимо речь про FLAC. Угадал?

Для конвертации использовал два способа: пакет NewAC, либо 'flac.exe' в консоли, поскольку наблюдались ситуации, когда DirectSound глючит.

Описание API вызова библиотеки GoogleSpeechRecognizeAPI2.DLL
Да, именно это я и хочу сделать. Спасибо огромное.
Сам не догадался спросить на прямую.

По поводу примера в архиве. Ругается, что не может найти файл "audio.flac".
Он просто его не создает, не пишет с микрофона. Буду разбираться.

У меня Windows 7 максимальная x64, может нужно указать откуда брать звук?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.12.2012, 07:50
Помогаю со студенческими работами здесь

Захват звука с микрофона
Подскажите пожалуйста с помощью каких библиотек и каких их функций можно захватить звук с микрофона. Нужен массив звуковых значений для...

Захват звука с микрофона и воспроизведение
Здравствуйте! Подскажите чем можно брать звук с микрофона, чтоб можно было его передавать по сети и воспроизводить с другой стороны?

Захват видео с экрана с записью звука с микрофона
Добрый день. Требуется средствами C# 3.5 записать видео со звуком. Изображение - это состояние экрана, звук с микрофона. Необходима...

Реализовать захват звука с микрофона и его воспроизведение
Мне необходимо реализовать захват звука с микрофона и его воспроизведение. Набросал такой код по этой статье:...

Захват звука с микрофона без графической оболочки
Добрый день, дамы и господа. Сразу скажу, что в C# я нуб полнейший, на уровне чайника писал простейшие скрипты под свои надобности. Сейчас...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определенном условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru