Обновить
128K+

Звук

Это «ж-ж-ж» неспроста

94,92
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Локальный ассистент для зумов, часть 3: кто это говорит — и почему я трижды ошибся, отвечая на этот вопрос

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели5.2K

Обещал в прошлой части честный замер локальных моделей распознавания — выполнял целый день, и результат вышел самым обидным: менять нечего. А три дефекта, которые я за этот день торжественно нашёл, оказались дефектами не системы, а моего измерительного стенда.

Про диаризацию на рабочем созвоне: как размечался эталон, почему в системном канале нет твоего собственного голоса, чем закончился A/B четырёх эмбеддеров (место в бенчмарке VoxCeleb никак не предсказало результат на живой записи), что показали VibeVoice и MOSS и почему адаптивный фильтр не вычитает эхо из микрофона.

Читать далее

Новости

Локальный ассистент для зумов, часть 2: как граф встреч становится памятью и почему ему можно верить

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели8K

В первой части я собрал локального ассистента для созвонов: диаризация, стенограмма, граф знаний в Obsidian, ноль облаков. За полтора месяца ежедневной работы оказалось, что записать встречу — меньшая половина дела. Вторая часть — про то, как граф живёт неделями и почему ему можно верить: факты с датами «с» и «по», провенанс цитат из стенограммы, досье как этаж между поиском и графом, ночной прогон, песочница для облака, поиск по блокам и скрипт «забыть встречу целиком». Кода мало, устройства много.

Читать дальше

FM‑синтез звука в браузере. Часть 2

Уровень сложностиСложный
Время на прочтение11 мин
Охват и читатели7.1K

Рассмотрим FM-синтез на реальном примере. Сделаем эмулятор синтезатора Yamaha DX7 и добавим в него возможность читать картриджы с инструментами.

Читать далее

Чтобы осуществить эту доработку электрогитары, мне пришлось выковать специальное сверло

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели17K

Привет, Хабр! Совсем неожиданно получилось так, что экспериментальная минималистичная электрогитара «Ласточкин хвост», которую предполагалось просто собрать, опробовать и вскоре обменять на что-нибудь интересное, стала моим любимым инструментом на каждый день.

Всего-навсего 1800 граммов массы, идеальная эргономика и именно такое звучание, какого мне хотелось, в сочетании с оригинальным внешним видом, покорили моё сердце навсегда.

Однако совершенству нет предела. Многие гитаристы постоянно модифицируют свои инструменты, и я тоже этим увлекаюсь.

Сейчас вы всё увидите и услышите

Меньше шума, больше смысла: опыт SESAME для Speech Enhancement

Уровень сложностиСложный
Время на прочтение11 мин
Охват и читатели9K

Привет, Хабр! Мы — Александр Забурдаев, Ксения Золина, Даниил Марценюк, Илья Трофименко, Илья Кулешов — студенты мастерской по сервисам и платформам ИИ в Инженерно-математической школе НИУ ВШЭ и VK. Хотим поделиться опытом, который мы накопили, пытаясь перестать кормить весь речевой сигнал одной и той же нейросети целиком, и дать разным экспертам разбираться с разными типами шума. 

Речь пойдёт о задаче улучшения качества речи (Speech Enhancement, SE) и о том, как получилось интегрировать в неё разреженную смесь экспертов (sparse Mixture of Experts, MoE). Это архитектура, которая в языковых моделях уже стала стандартом, а в обработке аудио до сих пор не прижилась.

Модель мы назвали SESAME — Speech Enhancement with Sparse Adaptive Mixture of Experts. Она построена на базе MP-SENet. В ней стандартные полносвязные блоки внутри трансформера заменены на разреженный MoE-модуль. Код проекта доступен на GitHub.

Зачем вообще понадобилась очередная модель шумоподавления, когда их и так десятки — расскажем ниже. А заодно разберём, какие трюки из мира LLM в аудио работают, а какие нет (например, Expert Choice) — и почему.

Читать далее

Как я научил пип‑бой принимать голосовые команды

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели8.5K

Я делаю полностью работающую реплику пип‑боя для ролевых игр по вселенной Fallout. Сама по себе эта задача тривиальная с инженерной точки зрения, но есть в ней кое‑что, что, возможно, заинтересует пытливые умы. Расскажу, как научил телефон распознавать вейк‑слово, с матюгами заставил правильно работать речевой парсер и сплясал чечётку на полном ассортименте садовых инструментов, связанных с голосовым управлением вещами.

Читать далее

Один пакет — один мини-плеер: почему мы перенесли голос БОЛТУНа в AudioWorklet

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели6.2K

Почему исправные 20-мс аудиопакеты всё равно превращались в щелчки? В БОЛТУНе каждый пакет запускался как отдельный AudioBufferSourceNode — до 50 мини-плееров в секунду на одного говорящего. Мы заменили это расписание одним непрерывным AudioWorklet с кольцевым буфером и проверили новую схему тестами.

Разобраться в звуке

Искажения: где они живут

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели8.8K

Это вторая часть пятой статьи цикла о том, почему акустика, которая хорошо измеряется, может плохо звучать.

В первой статье выяснилось то, что АЧХ суммирует всю поступившую энергию независимо от времени её прихода. Во второй — что помещение добавляет к звуку большое количество отраженных копий и резонансов, с которыми надо научиться дружить. В третьей — что качество воспроизведения низких частот сухие цифры характеристик не отражают. Четвёртая спустилась глубже — до самого динамика: идеального решения не существует, а ошибки проектирования после покупки уже не исправить.

В данной же статье будет идти продолжение разговора про искажения. В первой части мы разобрались, что показатель THD суммирует энергию всех гармоник в одно число, измеренное на лабораторном синусоидальном сигнале. Форма передаточной характеристики диктует появление тех или иных гармоник: плавная асимметрия порождает вторую, плавное симметричное поджатие — третью, резкий излом — целый ряд высоких разом. Восприятие же зависит гораздо сильнее от номера гармоники, чем от её количества: ближние прячутся в тени основного тона, дальние пробиваются сквозь неё. Показатель Gm предсказал оценки слушателей успешнее, чем традиционные коэффициенты THD и интермодуляции.

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

Читать далее

После сборки на Tauri затрещал голос и почернел стрим: разбираем три ошибки одного теста

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели6.3K

После сборки на Tauri голос начал трещать, автокалибровка почти минуту вмешивалась в разговор, а демонстрация экрана через минуту становилась чёрной. Разбираем запись и логи, находим усиление до ×4 без лимитера, резкие разрывы 20-мс аудиопакетов и зависший видеотрек при живом соединении LiveKit — и показываем, как исправили каждый сбой в версии 0.0.26.

Разобраться в причинах

Хранение информации в звуковой волне?

Время на прочтение6 мин
Охват и читатели11K

За многие годы существования электронных устройств мы привыкли к тому, что по большому счёту, сложные интеллектуальные компоненты представляют собой, утрированно, массив запоминающих ячеек разного рода, позволяющих в совокупности, как просто хранить информацию, так и выстраивать разнообразную логику — собственно говоря, именно из этого и проистекает постоянно слышимая характеристика, например, насчёт процессоров — о содержании «такого-то количества транзисторов». 

Многим хорош современный подход — можно как записать информацию, так и получить практически мгновенно к ней доступ, в нужный момент времени; причём, так как время переключения самой ячейки обычно весьма ничтожно (и в том числе, благодаря этому), современные интеллектуальные системы работают достаточно быстро…однако, так было не всегда! 

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

Скажем, как вам понравится, хранение информации в звуке?! Причём, не записанном куда-либо (нашёл чем удивить), а непосредственно, распространяющимся в среде, то есть, в динамике?!

Читать далее

Шум как первоязык: системно-информационный взгляд на лингвистику

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели7.5K

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

Знаковой работой в данном направлении становится «Искусство шумов» (L’arte dei Rumori) Л. Руссоло, который выделяет роль шума (именно шума, а не звуков как таковых) как нового способа описания современной ему эпохи. Самое важное — он проводит кодирование шумов по семантизации, то есть способности заставить слушателя пережить определенный опыт.

Читать далее

Искажения: о чём молчат нули

Уровень сложностиСредний
Время на прочтение20 мин
Охват и читатели11K

Это пятая статья цикла о том, почему акустика, которая хорошо измеряется, может плохо звучать.

В первой статье выяснилось то, что АЧХ суммирует всю поступившую энергию независимо от времени её прихода. Во второй — что помещение добавляет к звуку большое количество отраженных копий и резонансов, с которыми надо научиться дружить. В третьей — что качество воспроизведения низких частот сухие цифры характеристик не отражают. Четвёртая спустилась глубже — до самого динамика: идеального решения не существует, а ошибки проектирования после покупки уже не исправить.

Во всех предыдущих статьях я специально обходил общее свойство перечисленных явлений: они абсолютно не зависят от уровня воспроизводимого сигнала. Та же точка излома направленности на 3500 Гц одинакова и при тихом, и при громком воспроизведении, а комнатные моды на 30 Гц стабильно занимают одни и те же положения вне зависимости от громкости. Именно поэтому в четвёртой статье я сделал допущение об идеальности магнитной системы, отложив рассмотрение нелинейностей на потом: сначала хотел разобраться с линейной частью отдельно.

Сегодня займёмся второй половиной проблемы: явлениями, зависящими от уровня сигнала и изменяющимися вместе с громкостью.

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

Читать далее

Робот оглох и молчит об этом: как мы учили гуманоида замечать, что микрофон «отвалился»

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели7.1K

Слышит ли вас робот прямо сейчас? А если микрофон «отвалился» — как быстро вы об этом узнаете?

Штатный микрофон гуманоида Walker Tienkung предполагает, что оператор стоит в полутора метрах перед работающей машиной ростом 173 см — неудобно и небезопасно. Мы взяли недорогую беспроводную петличку и думали, что задача решается за вечер: воткнул USB, написал pip install, готово. Реальность: выведенный наружу порт нашёлся только на другом бортовом компьютере, звук пришлось гнать по сети, а приёмник в случае любой неисправности отвечает одинаково — молча шлёт нули. Сел аккумулятор, выключили передатчик, выдернули донгл — для софта всё это неотличимо.

Рассказываем, как мы научили робота самому замечать, что он оглох, и говорить об этом голосом: диагностика по тишине, пять состояний аудиотракта, подсказки оператору, которые пришлось переписывать, потому что «технически верно» и «понятно человеку» — разные вещи. И как починили переподключение за десять секунд вместо двух из-за системного сервиса.

Читать далее

Ближайшие события

Провожу тест‑драйв GigaChat Audio в рабочих условиях

Время на прочтение17 мин
Охват и читатели13K

Привет, Хабр! Сбер недавно выкатил новую модель, GigaChat Audio. Сейчас я надиктовываю модели этот текст голосом — финальный штрих в истории о том, как я проводил её тест‑драйв. 

Когда прочитал, что GigaChat Audio запоминает контекст, ориентируется в больших аудиозаписях и даже чувствует эмоции говорящего, сразу захотел проверить. Я задеплоил эту модель локально на рабочем компьютере и целый день проверял на рабочих задачах. Результат — в этой статье.

Меня зовут Данила @pushnoydan, я мидл‑разработчик и занимаюсь бэкендом микросервисов. А параллельно — большой любитель ИИ‑моделей: в свободное время копаюсь в них, чтобы лучше понимать возможности свежих релизов, стараюсь применять на работе, чтобы упростить рутинные задачи. 

GigaChat Audio — audio‑native LLM. В течение дня я поручал ей разбирать голосовые коммуникации от коллег, составлять саммари по аудиозаписям и выводить ключевой контекст из записей различных встреч. Давайте посмотрим, как модель показала на реальных задачах.

Читать далее

2,2 МБ против 128 МБ: честный бенчмарк Win32 и Tauri на живом голосовом клиенте

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели7.8K

После статьи о выборе Tauri нас спросили, сколько памяти будет занимать программа, которая живёт в трее рядом с игрой. Мы запустили старый БОЛТУН на Win32 и новый на Tauri в одинаковом пустом лобби. Получилось 2,2 МБ против 128 МБ. Разбираемся, откуда взялись девять процессов WebView2, что показал замер и почему это не стало автоматическим отказом от нового интерфейса.

Читать бенчмарк

Как я обучила нейросеть рисовать спектрограммы (и что из этого получилось)

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели5.3K

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

Читать далее

Корейский Squier Standard Telecaster 1997 года — джентанёт или нет?

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели16K

Привет, Хабр! Фронтмен одной известной группы принёс мне на доработку интересный инструмент и разрешил показать его на Хабре.

Многострадальный старый Телекастер, которому довелось пройти через многие концерты и съёмки, не говоря о репетициях, используется в качестве модерновой ритм-гитары с кастомным комплектом из пяти струн для необычного пониженного строя, да ещё и перевёрнут в леворукое положение.

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

В неё вселился БЕШ!

После комментариев на Хабре мы развернули тестовую ветку БОЛТУНа: Electron, WinUI 3 или Tauri 2?

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели6.7K

После первой статьи о БОЛТУНЕ мы развернули отдельную тестовую ветку и начали выбирать новый стек интерфейса. С помощью ИИ сравнили Electron, WinUI 3 и Tauri 2, проверили выводы по документации и собрали прототип на Tauri. Рассказываем, почему не переносим звук из C++ в WebView, как устроили границу WebView → Rust → C++, что уже работает, а что ещё предстоит измерить.

Читать эксперимент

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

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели7.6K

«Мой номер заказа... сейчас, секунду...» — и бодрое «Да, я вас понял, минуточку!» прямо в середину фразы.

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

Формулируется она так: понять, что человек в трубке закончил говорить, а не взял паузу. Ниже — про то, почему готовые VAD эту задачу не решают в принципе, что мы перебрали, прежде чем взяться за свое, и где у нас до сих пор не получается.

Дисклеймер: работаю в аутсорсинговом контакт-центре, мы несколько лет делаем свой голосовой стек — телефония, распознавание, ассистенты на LLM. Продукт не называю и ссылок не будет, статья про задачу.

Читать далее

Думал, Android пишет двигатель хуже iOS. Передумал. Потом оказалось, что прав, но по своему

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели5.8K

Полторы тысячи записей моторов с телефонов. Виноват был не бренд и не цена телефона, а то, чей DSP отрабатывает запрос браузера.

На iOS та же правка сработала наоборот.
1
23 ...