0 / 0 / 0
Регистрация: 19.12.2012
Сообщений: 3
1

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

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

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

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

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

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

Всем заранее спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.12.2012, 21:08
Ответы с готовыми решениями:

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

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

Захват звука с микрофона
Нужно считать звук с двух микрофонов и возможность выбирать микрофон для считывания. ...

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

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

в частности менять его формат, воспроизводить
на какой формат?
0
1302 / 708 / 107
Регистрация: 25.05.2011
Сообщений: 2,158
Записей в блоге: 51
19.12.2012, 21:31 3
через 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  [ТС] 4
Цитата Сообщение от raxp Посмотреть сообщение
контроль порогового уровня с микрофона и запись в файл при превышении некоторое время, задаваемое пользователем.
Спасибо за быстрый ответ, но есть ли исходники данной программы?
Цитата Сообщение от raxp Посмотреть сообщение
на какой формат?
Формат нужен *.FLAKE

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

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

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

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

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

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

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

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

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

У меня Windows 7 максимальная x64, может нужно указать откуда брать звук?
0
21.12.2012, 07:50
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.12.2012, 07:50
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru