Форум программистов, компьютерный форум, киберфорум
Delphi: Графика, звук, видео
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/55: Рейтинг темы: голосов - 55, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 22.12.2013
Сообщений: 21
1

Эмулятор микрофона

29.12.2013, 23:36. Показов 10829. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем доброго времени суток!
Многие программы для изменения голоса создают такой виртуальный микрофон, и туда выдают звук, ну а этот виртуальный микрофон можно выбрать например в скайпе, аське, аудио-чате и т.п.
Мне нужно как-то сделать такой вот виртуальный микрофон, и звук из программы чтоб шел не в динамики, а в этот микрофон.
Может кто-то сталкивался с таким, и знает как это сделать?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.12.2013, 23:36
Ответы с готовыми решениями:

Запись с микрофона
Кто нибудь может дать простой примерчик записи звука с микрофона в файл! И вобще возможно ли такое...

Особая запись с микрофона
Добры день/вечер уважаемые программисты и обитатели форма. В некой программе нужно реализовать...

Включение микрофона программно
Ребята, здравствуйте! Подскажите, как в Windows 7 включить настольный микрофон из программы?...

Записать звук с микрофона в файл
sobuf - TmemoryStream; procedure TForm16.OnWaveMessage(var msg: TMessage); begin ...

13
Пишу на Delphi...иногда
1423 / 1278 / 286
Регистрация: 03.12.2012
Сообщений: 3,914
Записей в блоге: 5
30.12.2013, 00:17 2
Цитата Сообщение от Karkas Посмотреть сообщение
и звук из программы чтоб шел не в динамики, а в этот микрофон.
программа как-то будет в микрофон что-то говорить? микрофон - это input, а не output устройство, хотя при определенных способностях может что-то и удастся послушать с мембраны микрофона (если он мембранный)

самое простое - писать в файл и из этого файла читать
0
10231 / 6609 / 498
Регистрация: 28.12.2010
Сообщений: 21,156
Записей в блоге: 1
30.12.2013, 00:47 3
...если, чтобы другие программы воспринимали как устройство и работало REALTIME в кавычках, только драйвер свой писать.

Мне нужно как-то сделать такой вот виртуальный микрофон, и звук из программы чтоб шел не в динамики, а в этот микрофон.
допустим есть audio-cable. Допустим пришел звук, перенаправили, дальше то что с потоком?
0
0 / 0 / 0
Регистрация: 22.12.2013
Сообщений: 21
30.12.2013, 09:44  [ТС] 4
Цитата Сообщение от cotseec Посмотреть сообщение
программа как-то будет в микрофон что-то говорить? микрофон - это input, а не output устройство, хотя при определенных способностях может что-то и удастся послушать с мембраны микрофона (если он мембранный)
самое простое - писать в файл и из этого файла читать
Ну не настоящий же микрофон я имею ввиду.. Попробуйте скачать программу MorphVOX, например..
Если зайти в список микрофонов, то там создается какой-то еще микрофон. И когда программа выполняет свое действие, то звук с уже измененным голосом не слышен в динамиках, если зайти в настройки этих микрофонов, то можно увидеть, что есть колебания звука, как будто мы что-то говорим в него.. Но получается что не мы говорим в него а "программа говорит в него"
0
10231 / 6609 / 498
Регистрация: 28.12.2010
Сообщений: 21,156
Записей в блоге: 1
30.12.2013, 11:57 5
Мне известен принцип работы программ изменения голоса. Вы не ответили, что дальше вы сами будете делать с этим потоком? Для того же смещения речевого спектра и наложения характерных формант другой личности?
0
0 / 0 / 0
Регистрация: 22.12.2013
Сообщений: 21
30.12.2013, 15:12  [ТС] 6
Цитата Сообщение от raxp Посмотреть сообщение
Мне известен принцип работы программ изменения голоса. Вы не ответили, что дальше вы сами будете делать с этим потоком? Для того же смещения речевого спектра и наложения характерных формант другой личности?
Ну просто программа воспроизводит.. например музыку. Эту музыку должен услышать человек, который говорит со мной в скайпе. Для этого, насколько я понимаю, нужно сделать так: Создать виртуальный микрофон, программа будет "петь" в этот микрофон, ну и этот микрофон я выбираю в настройках в скайпе..
Вообще можно в скайпе выбрать в меню микрофона "стереомикшер", и в программе делать ничего не нужно...
Но это не выход. Нужно сделать именно так, как описано выше.
0
10231 / 6609 / 498
Регистрация: 28.12.2010
Сообщений: 21,156
Записей в блоге: 1
30.12.2013, 17:14 7
Сами себя перехитрить хотите.

Во-первых - для того, чтобы системные звуки шли наравне с вашим голосом человеку на той стороне достаточно поставить птичку на стерео-микшере вкладки запись, а во-вторых - если месье желает извращений, то выше вам уже подсказал - virtual-audiocable (виртуальный аудиокабель, он позволит и создать виртуальное аудиоустройство и завернуть нужные вам потоки с разных устройств туда куда требуется).
0
0 / 0 / 0
Регистрация: 22.12.2013
Сообщений: 21
30.12.2013, 18:34  [ТС] 8
Цитата Сообщение от raxp Посмотреть сообщение
Сами себя перехитрить хотите.
Во-первых - для того, чтобы системные звуки шли наравне с вашим голосом человеку на той стороне достаточно поставить птичку на стерео-микшере вкладки запись, а во-вторых - если месье желает извращений, то выше вам уже подсказал - virtual-audiocable (виртуальный аудиокабель, он позволит и создать виртуальное аудиоустройство и завернуть нужные вам потоки с разных устройств туда куда требуется).
Да просто не знаю как правильнее сформулировать. В том то и дело, мне нужно чтоб звук, который идет с программы "говорился" в виртуальный микрофон, при этом, самого человека слышно быть не должно. Чистый звук из программы должен слышать собеседник, сейчас почитаю про virtual-audiocable, и отпишусь, что как получилось

Добавлено через 55 минут
Мда.. мне не очень понятно как использовать ее в моей программе..
0
10231 / 6609 / 498
Регистрация: 28.12.2010
Сообщений: 21,156
Записей в блоге: 1
30.12.2013, 18:55 9
http://software.muzychenko.net/eng/vac.htm
Кликните здесь для просмотра всего текста
Идея создания виртуального звукового кабеля возникла вскоре после появления программ для создания и обработки цифрового звука — виртуальные генераторы звуковых сигналов, синтезаторы музыкальных тембров, ритм-машины, эквалайзеры, компрессоры/экспандеры, процессоры эффектов и т.п. Поначалу каждая из этих программ была автономной: получала звуковой сигнал непосредственно со входа звукового адаптера или из звукового файла и выводила результат на выход адаптера или в другой звуковой файл. Такой подход позволял использовать программы на любом компьютере, имеющем звуковой адаптер, однако имел три основных недостатка:

* Отсутствие универсальности. Несколько программ не могли быть соединены в цепочку, как это делается в студии или даже дома, в случае блочной аппаратуры (проигрыватель, предварительный усилитель, эквалайзер, усилитель мощности и т.п.). Таким образом, каждая программа представляла собой «моноблок» с определенным набором функций, расширить который было довольно сложно.
* Потеря качества при работе в реальном времени. Запись результатов работы с выхода звукового адаптера при работе программы в реальном времени неминуемо влекла потерю качества исходного цифрового звука при преобразовании его в аналоговую форму. Чтобы сохранить качество сигнала неизменным, требовался адаптер с цифровым интерфейсом вместе с цифровым же магнитофоном (ценой порядка 1000 долл.).
* Ограничение оперативности при работе в режиме записи. Некоторые программы позволяли записывать результаты в звуковой файл на диске, и тогда никаких потерь качества не происходило. Однако при этом терялась возможность оперативного управления параметрами звука, и прослушать созданный фрагмент можно было лишь после завершения его записи на диск.

Программа Virtual Audio Cable позволяет практически полностью решить все эти проблемы, организуя в системе компьютерный вариант обычного звукового соединительного кабеля, которым подключаются друг к другу блоки звуковой аппаратуры — бытовой или студийной. Можно сказать, она эмулирует набор звуковых адаптеров, у каждого из которых вход и выход намертво соединены изнутри.

Назначение программы

* Соединение нескольких звуковых программ в цепочку так, что каждая очередная программа получает звук непосредственно от предыдущей, без каких-либо промежуточных устройств или операций.
* Передача цифрового звука в неизменном виде, без какой-либо потери качества звучания.
* Сохранение в неизменном цифровом виде звукового сигнала, созданного программами, позволяющими только проигрывать сигнал в реальном времени на звуковой адаптер.
* Смешивание звуковых сигналов от различных программ, подсоединенных к одному концу кабеля.
* Размножение звукового сигнала, передаваемого по кабелю, для передачи нескольким программам одновременно.

Устройство и работа программы

Виртуальный звуковой кабель VAC представляет собой звуковой (Wave) драйвер Windows, создающий в системе два звуковых устройства (порта): Virtual Cable n In и Virtual Cable n Out, где n — номер кабеля начиная с 1. К каждому из портов может быть присоединено любое количество приложений (клиентов); эта возможность в зарубежных документах носит название multi-client feature. Звуковые сигналы, выводимые приложениями в порт Out, смешиваются в единый сигнал, который затем передается всем приложениям, извлекающим звук из порта In. От приложений требуется лишь умение работать со стандартными Wave-устройствами Windows — и ничего больше.

В Windows 9x/Me VAC создает для каждого кабеля порт вывода DirectSound, доступный через соответствующие интерфейсы и работающий параллельно с обычным выводным портом (Wave Out). Ввиду несовершенства реализации подсистемы DirectSound в Windows отсутствует возможность корректно предотвратить эмуляцию Wave-устройств подсистемой, в связи с чем в списке устройств DirectSound одновременно присутствуют и «родные» устройства VAC, и эмулируемые. Разумеется, при работе следует выбирать «родные» порты, имеющие суффикс (DirectSound).

VAC смешивает звуковые сигналы с насыщением (saturation), называемым также клипированием (clipping — обрезание), что позволяет избежать заметных искажений в результате превышения максимальной амплитуды полученного сигнала.

Смешивание и передача звуковых данных выполняются внутри VAC строго равномерно, по событиям (прерываниям) от системного таймера, с тем чтобы каждое виртуальное устройство работало, как реальное, обеспечивая заданную скорость звукового потока. По каждому прерыванию передается блок определенного размера, зависящего от интервала между таймерными прерываниями (latency). Минимальный интервал — 1 миллисекунда — обеспечивает наиболее плавную передачу потока, однако на «слабых» компьютерах может привести к чрезмерным накладным расходам.

Проводя аналогию с «железными» звуковыми устройствами, необходимо напомнить, что каждое из них имеет входы и выходы, которые соединяются между собой межблочными кабелями. Обычные звуковые кабели, как правило, симметричны, хотя некоторые допускают включение только в одном направлении, когда у кабеля тоже есть вход и выход. Выход устройства соединяется со входом кабеля, а выход кабеля — со входом следующего устройства и т.д.

Точно так же у каждой программы обработки звука, взаимодействующей со звуковым адаптером, могут быть вход и выход. Путем выбора устройства записи (Wave In) вход программы соединяется с выходом АЦП нужного звукового адаптера, а путем выбора устройства воспроизведения (Wave Out) ее выход подключается ко входу ЦАП того же или другого адаптера. Здесь налицо определенная путаница в терминах, поскольку в Windows мультимедийные устройства классифицируются не по входам-выходам, а по портам ввода-вывода. Понятно, что порт ввода (In) — это на самом деле выход устройства, обращенный внутрь системы, а порт вывода (Out) — такой же обращенный внутрь системы вход. Звук, поданный, например, на внешний линейный вход адаптера (Line In), преобразуется АЦП в цифровую форму и передается адаптером во внутренний порт ввода, а цифровой звук, переданный программой во внутренний порт вывода, преобразуется в аналоговую форму в ЦАП, после чего выводится на внешний выход (Line Out или Speaker Out).

Поскольку VAC является цифровым кабелем, он передает на свой выход звуковые данные именно в том формате (сочетании частоты дискретизации, разрядности отсчета и количества каналов), в каком они получены от источника звука. Это означает, что пока один конец кабеля (порт In или Out) открыт в каком-либо формате, другой может быть открыт только в точно таком же формате. Преобразования форматов при передаче VAC не выполняет.

Для того чтобы можно было подключать к кабелю не только программы, но и сами звуковые адаптеры, в комплект VAC входит программа Audio Repeater (звуковой повторитель). Она делает то же, что и драйвер VAC, но наоборот — передает звуковой поток от одного устройства Wave In к другому устройству Wave Out. Повторитель полезен для контроля сигнала, передаваемого по кабелю, или для

«раздачи» сигнала от звукового адаптера нескольким программам обработки. Повторитель обычно включается между кабелем и звуковым адаптером — с входного или выходного конца кабеля.

Таким образом, с помощью VAC можно соединить в цепочку несколько обычных звуковых программ, передавая звук от одной к другой в цифровом виде, без преобразования, при этом совершенно не теряя качества звука. Единственной проблемой здесь являются задержки, неминуемо возникающие из-за буферизации звуковых данных в каждой из программ. На качество звука это никак не влияет, но при наличии в цепочке более двух-трех программ затрудняет управление звуком в реальном времени.

Когда один из концов кабеля свободен (не имеет присоединенной программы), он ведет себя как обычный провод. Звук, выводимый в порт Out, теряется, а из порта In вводится абсолютная тишина.

Добавление, установка и удаление

В настоящее время распространением VAC занимается компания NTONYX (http://www.ntonyx.com/). Демонстрационные версии доступны на страницах http://www.ntonyx.com/vac.html (VAC 2.05) и http://www.ntonyx.com/vac111.html (VAC 1.11). Версия 2.05 — современная, с поддержкой DirectSound, улучшенными алгоритмами реального времени, в вариантах для Windows 95/98/Me и NT 4/2000. Версия 1.11 — устаревшая, только для Windows 3.x/95, без поддержки DirectSound.

Последующие версии VAC будет распространять другая компания, о чем я сообщу после достижения договоренности с нею на сайте моих программ (http://www.spider.nrcde.ru/music/software.html).

Демонстрационные версии предоставляют все возможности VAC, ограничение касается только количества независимых кабелей (один) и интервала между таймерными прерываниями — 100 мс. Этого вполне достаточно для большинства применений программы.

Документация к VAC сделана только на английском языке — главным образом из-за почти полного отсутствия в России покупателей полной версии. По этой же причине рынок VAC ориентирован в основном на зарубежных пользователей.

Для установки VAC необходимо вначале распаковать дистрибутивный архив в любой пустой каталог. Установка выполняется стандартными средствами системы из панели управления:

* в Windows 95/98/Me/2000 — при помощи мастера установки оборудования. Следует отказаться от автоматического поиска нового оборудования, выбрать в списке класс звуковых устройств, нажать кнопку «Установить с диска», указать каталог, в котором находится дистрибутив программы, после чего следовать указаниям системы;
* в Windows NT 4 — при помощи панели Мультимедиа. В закладке «Устройства» необходимо нажать кнопку «Добавить», выбрать в списке «Установить с диска», указать путь к каталогу дистрибутива и следовать указаниям системы.

При успешной установке перезагрузки системы не потребуется и звуковые порты будут доступны сразу же.

Удаление программы также выполняется стандартными средствами через панель управления:

* в Windows 95/98/Me/2000 — при помощи общего списка устройств (Система). Список доступен также через пункт «Свойства» контекстного меню объекта «Мой компьютер». В списке следует открыть класс звуковых устройств, выбрать Virtual Audio Cable и нажать «Удалить»;
* в Windows NT 4 — при помощи той же панели Мультимедиа. В закладке «Устройства» необходимо выбрать «Аудиоустройства», далее — Virtual Audio Cable и нажать «Удалить».

Удаляется драйвер также без перезагрузки.

Пример использования

Предположим, что в системе имеется один виртуальный кабель с портами Virtual Cable 1 In и Virtual Cable 1 Out. Необходимо записать результат работы некоей программы, которая не предлагает возможности выбора звукового устройства, а выводит звук исключительно на стандартное системное устройство (Wave Mapper).

Открываем Панель управления, там — панель Мультимедиа. В закладке Аудио выбираем устройство воспроизведения Virtual Cable 1 Out. После этого пропадает значок регулятора громкости из панели задач — этого пугаться не нужно, так как VAC не имеет собственного микшера.

Запускаем любую программу цифровой записи (Sound Forge, Cool Edit, Gold Wave, WaveLab) и выбираем в списке устройств записи Virtual Cable 1 In. Если формат цифрового звука программы, результат которой нам необходим, заранее известен (например, 44100/16/стерео), — сразу устанавливаем его в программе записи. Иначе запускается «играющая» программа и производится подбор в программе записи нужного формата из числа стандартных. Как только запись включилась — формат подобран верно.

Наконец, включаем запись, стартуем «играющую» программу сначала, записываем фрагмент, выключаем запись. Если в процессе записи необходимо слушать звук, проходящий по кабелю — запускаем Audio Repeater, выбираем устройством ввода Virtual Cable 1 In, а устройством вывода — реальный звуковой адаптер, выставляем формат, нажимаем Start. Повторитель снимает с выхода кабеля копию звукового потока и отправляет «железному» адаптеру, не влияя на процесс записи.

По завершении работы рекомендуется вернуть реальному адаптеру статус стандартного системного устройства в панели Мультимедиа, иначе все звуки, отправляемые по кабелю, будут теряться, поскольку к выходу кабеля ничего не подключено.
0
0 / 0 / 0
Регистрация: 22.12.2013
Сообщений: 21
30.12.2013, 20:27  [ТС] 10
Если вы разобрались, то можете "по пунктам" объяснить как пользоваться данной программой..
И как-то можно сделать сетап какой-то, чтоб устанавливалась данная программа уже с нужными настройками?
0
0 / 0 / 0
Регистрация: 22.12.2013
Сообщений: 21
02.01.2014, 14:17  [ТС] 11
UP , после нового года прошло полтора дня, а в разделе нету ни одного нового сообщения))
0
10231 / 6609 / 498
Регистрация: 28.12.2010
Сообщений: 21,156
Записей в блоге: 1
02.01.2014, 15:14 12
...а что вы хотели еще услышать? По примеру использования от самого автора VAC все работает.
0
0 / 0 / 0
Регистрация: 22.12.2013
Сообщений: 21
02.01.2014, 15:42  [ТС] 13
вот..
Если вы разобрались, то можете "по пунктам" объяснить как пользоваться данной программой..
И как-то можно сделать сетап какой-то, чтоб устанавливалась данная программа уже с нужными настройками?
0
10231 / 6609 / 498
Регистрация: 28.12.2010
Сообщений: 21,156
Записей в блоге: 1
02.01.2014, 15:44 14
...повторяю еще раз - пост #9 "пример использования".
0
02.01.2014, 15:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.01.2014, 15:44
Помогаю со студенческими работами здесь

Запись и конвертация аудио с микрофона
Добрый день/ночь программисты. Кто может помочь манулом по данной теме? п.с. Не хотелось бы...

Запись звука с микрофона в файл WAV
Здравствуйте друзья! Думаю многим начинающим программистам Delphi будет интересна эта тема. К делу!...

Запись с микрофона и сохранение с дальнейшим использованием
Доброго времени суток. Пару дней назад возникла потребность написать программу для записи звука с...

Программное усиление звука с микрофона(не системное!)
Здраствуйте. Давно я не обращался к форуму, но в данном случае мне это необходимо. Короче дело в...


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

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