Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Работа со звуком  (Прочитано 2563 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн new_neo

  • Автор темы
  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
Работа со звуком
« : 04 Января 2013, 14:02:33 »
Здравствуйте. Работал со звуком на вижуалке в винде, разобрался c DirectSound, но Windows не отвечала требованиям (мне необходима минимально возможная задержка, при обработке звука, в винде же она не постоянная и слишком большая порядка 20-50 мс). Поэтому подсказали попробовать в Линуксе. Ну и поставил я Ubuntu, и в ней поставил NetBeans. Так как я здесь ужасно пока ориентируюсь, но сделать нужно, подскажите, учитывая что я ноль), что нужно для работы со звуком (что установить, чем пользоваться), задачи необходимы такие мне выполнить: взять звук с микрофона, обработать и выдать на динамики, всё это желательно в реальном времени, или с задержкой около 1 мс?

Оффлайн Чистый

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 3473
  • nix - вот оно счастье...
    • Просмотр профиля
Re: Работа со звуком
« Ответ #1 : 04 Января 2013, 22:42:43 »
Тестовый репозиторий kdeNeur ppa:devcode/kdeneur
各々が死ぬことをどのように決定する

Оффлайн maks05

  • Старожил
  • *
  • Сообщений: 6787
    • Просмотр профиля
Re: Работа со звуком
« Ответ #2 : 04 Января 2013, 23:50:17 »
Может стоит глянуть Ubuntu Studio? Там под звук многое заточено.
« Последнее редактирование: 04 Января 2013, 23:57:12 от maks05 »

Оффлайн Чистый

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 3473
  • nix - вот оно счастье...
    • Просмотр профиля
Re: Работа со звуком
« Ответ #3 : 04 Января 2013, 23:55:53 »
думаю вопрос стоит именно в программировании звуковых устройств, а не простая работа со звуком, хотя ждем отписки ТС
Тестовый репозиторий kdeNeur ppa:devcode/kdeneur
各々が死ぬことをどのように決定する

Axa-Ru

  • Гость
Re: Работа со звуком
« Ответ #4 : 05 Января 2013, 00:36:25 »
взять звук с микрофона, обработать и выдать на динамики, всё это желательно в реальном времени, или с задержкой около 1 мс?

Какая интересная задача.

Микрофон->канал->динамик
|<-- Задержка 1 мс. -->|

Если от микрофона до динамика 1 метр, то сначала появится звук из динамика и через 2 миллисекунды он дойдет по воздуху.

Крайне интересная задача.
« Последнее редактирование: 05 Января 2013, 00:38:09 от Axa-Ru »

Оффлайн Phlya

  • Старожил
  • *
  • Сообщений: 2219
  • Фля, Цыганский барон, Винни Пух
    • Просмотр профиля
Re: Работа со звуком
« Ответ #5 : 05 Января 2013, 01:30:41 »
Какая интересная задача.

Микрофон->канал->динамик
|<-- Задержка 1 мс. -->|

Если от микрофона до динамика 1 метр, то сначала появится звук из динамика и через 2 миллисекунды он дойдет по воздуху.

Крайне интересная задача.


Как насчет необходимости ретранслировать на большое помещение? Не знаю, правда, зачем необходима обязательно такая маленькая задержка..
Ubuntu 14.04 (Unity), MSI GE40

Оффлайн new_neo

  • Автор темы
  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
Re: Работа со звуком
« Ответ #6 : 05 Января 2013, 12:29:56 »
Спасибо а ссылку. Передо мной сейчас стоит задача написать программу, которая забирает звук с микрофона, обрабатывает этот оцифрованный сигнал, и затем, в тот же момент, когда звук достигает уже динамика, динамик выдал обработанный сигнал), и всё это должно работать постоянно без хрипов (просто в винде я экспериментировал, по всякому получалось, при уменьшении звукового буфера хрипеть начинало сильно, но и задержка уменьшалась). В этой задаче намного важнее постоянство задержки, нежели её величина, но и величина желательно, чтобы была ниже 10-20 мс где-то, так как расстояние микрофона с динамиком можно варьировать в разумных пределах размера обычной комнаты или коридора.

Оффлайн Phlya

  • Старожил
  • *
  • Сообщений: 2219
  • Фля, Цыганский барон, Винни Пух
    • Просмотр профиля
Re: Работа со звуком
« Ответ #7 : 05 Января 2013, 12:59:21 »
Все-таки если не секрет, зачем Вам это нужно, чтобы одновременно два звука слышать? =) Любопытно просто.
Ubuntu 14.04 (Unity), MSI GE40

Оффлайн new_neo

  • Автор темы
  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
Re: Работа со звуком
« Ответ #8 : 05 Января 2013, 13:05:27 »
У меня бака была на эту тему, но в винде не получилось, смысл прост - заглушить, хотя бы частично, звук источника, инвертированным сигналом этого источника. Т.е. -1 + 1 = 0, в физике сложение волн, если помните в школе было)

Оффлайн Phlya

  • Старожил
  • *
  • Сообщений: 2219
  • Фля, Цыганский барон, Винни Пух
    • Просмотр профиля
Re: Работа со звуком
« Ответ #9 : 05 Января 2013, 13:08:22 »
Да, понятно. Офигеть. Какой источник заглушаете? =)
Ubuntu 14.04 (Unity), MSI GE40

Оффлайн new_neo

  • Автор темы
  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
Re: Работа со звуком
« Ответ #10 : 05 Января 2013, 13:17:02 »
Ну задачу я изначально сам придумал, всё началось из-за утилизации боеприпасов) Я жил в тот момент в военном городке в непосредственной близости от полигона, взрывы досаждали) Ну и подумал можно же заглушить по идее взрывную волну, которая по сути звуковая, противофазной, в узком направлении. Так родилась идея. Сейчас хотя бы заглушить какой-нибудь непостоянный источник звука, речь музыку. В вижуале в винде то я разобрался более менее как работать со звуком устройствами и т.п., проверил на практике, две колонки, стерео сигнал в одну колонку в одной фазе, в другую в противоположной, гармонический сигнал довольно хорошо приглушился, получилось даже кусочек музыкального фрагмента, приглушить. Конечно от оборудования многое зависит - у меня колонки почему то одно громче другой звучали, пришлось подстраивать громкость.

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: Работа со звуком
« Ответ #11 : 05 Января 2013, 14:00:58 »
new_neo,
для реального времени возьми ПЛИС(FPGA)
все остальное копромис

Оффлайн new_neo

  • Автор темы
  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
Re: Работа со звуком
« Ответ #12 : 05 Января 2013, 14:19:58 »
Да, идея хорошая, я так понимаю это выход уже на аппаратный уровень, но у меня нет таких возможностей(

Axa-Ru

  • Гость
Re: Работа со звуком
« Ответ #13 : 05 Января 2013, 21:00:37 »
На первый взгляд утопичная идея.

В помещении очень много переотражений.
Чтобы их компенсировать нужно ставить микрофон в точке прослушивания: в середине головы человека.
Далее, одним излучателем не обойдетесь. Нужно как минимум два - по числу ушей.
Эти излучатели будут воздействовать друг на друга.

Далее, не в зоне прослушивания (не внутри головы) шум возрастет максимум в sqrt(2) раза.

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

Посмотрите на компанию Брюль и Кьер. Они занимаются похожими вещами. Может там что то сможете найти, но на сайте обычно только рекламная инфа.

ЗЫ . На второй взгляд утопичная идея.
Для точечного источника звука может и решаемая, но для помещения - скорее нет.
Был такой советский инженер Эфрусси Михаил. Он был спец в вопросах звука. Математика там сложная с кучей моделей. Поищите его книги. Может пригодится.

Зы2. На третий взгляд задача не решаемая (или точнее, крайне сложная).
Для компенсации необходимо, чтобы в точке приема фаза волны была проинвертирована. Скорость распространения звуковых волн в газе зависит от температуры газа и давления.
Это значит, что перед компенсацией необходимо проводить калибровку системы. Далее источники звука в слышимом звуковом диапазоне имеют неравномерность по фазе, связанную с геометрией излучателей.  И так далее.
« Последнее редактирование: 05 Января 2013, 21:28:08 от Axa-Ru »

Оффлайн new_neo

  • Автор темы
  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
Re: Работа со звуком
« Ответ #14 : 05 Января 2013, 23:31:17 »
Да я не отрицаю, что очень сложно сделать полноценную трёхмерную систему глушения, предусмотреть все факторы, в этом вы правы, но мне этого сейчас не нужно :) (для решения этой задачи нужны ресурсы, которые у меня отсутствуют) Просто решить проблему для одномерного случая, т.е. источник->микрофон->обработка->динамик->тишина(в идеале, на самом деле будет просто приглушение звука, так как от стен и предметов будет отражение в помещениях). Просто я уже писал зачем всё это нужно (глушение взрывной волны), поэтому достаточно решить только одномерную задачу, причём для локальной области. Я уже пытался осуществить идею под виндой, возникли проблемы. Вот у меня и возникли затруднения с освоением новой для себе системы.

P. S. пытался установить OSS по инструкции https://help.ubuntu.com/community/OpenSoundRU , проблемы начались на Можем собирать!, пишет типо команду make неправильно юзаешь.

 

Страница сгенерирована за 0.062 секунд. Запросов: 25.