Обновить
64K+

Звук

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

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

Где живёт ИИ? Как я вынес звук из головы

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

Эта статья о том, как маленький домашний эксперимент со звуком привёл меня к вопросу, который сейчас, по‑моему, никто толком не задаёт: где должен жить ИИ‑помощник?

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

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

Читать далее

Новости

Почему одного Whisper оказалось мало: ASR на 100 песнях для домашней игры

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

К Новому году мы с друзьями договорились, что каждый подготовит по конкурсу. Мне хотелось сделать что‑нибудь музыкальное, а идеи нашлись в воспоминаниях о двух корпоративах: с одного я принёс желание сочинить песню для нашей компании, с другого позаимствовал механику конкурса. Так появилась What The Track, в которой нужно угадать последнее слово оборванной строки.

Первую версию с вопросами, нарезанными вручную, мы довольно быстро опробовали на друзьях. Когда захотелось сыграть ещё, я решил автоматизировать подготовку, чтобы самому не знать все ответы заранее. Оказалось, что между «нейросеть умеет распознавать речь» и «ей можно доверить музыкальный конкурс» помещается отдельный проект по сравнению систем автоматического распознавания речи (ASR, automatic speech recognition).

Читать далее

Три ловушки в VOSK: моя программа удаляла корректные модели после скачивания

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

Мне нужно было приложение, которое распознаёт речь и никуда не отправляет аудио. Не «не отправляет по умолчанию» и не «у нас есть офлайн‑режим» — а физически не может, потому что сети нет в процессе.

Когда я начал искать, выяснилось, что выбор небольшой.

Читать далее

Локальный ассистент для зумов, часть 9: Nemotron от NVIDIA — почему взял и что получил

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

Чароит записывает мои созвоны, а после кнопки Стоп собирает стенограмму, протокол и граф встречи. Самое капризное место во всей цепочке — понять, кто что сказал. Это называется диаризацией. Ошиблась она, и решение в протоколе повисает на другом человеке.

23 сентября NVIDIA выложила нейросеть, которая только этим и занимается. Через пять дней она уже работала у меня. Сейчас через неё идут оба канала звонка, очные встречи и живая лента.

Читать далее

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

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

Как расшифровщик созвонов на Go превратился в бота для Яндекс.Телемоста: сам заходит в звонок, пишет, ведёт заметки ИИ и принимает дозвон с телефона.

Читать далее

Винтажный электрофон Россия 321 Стерео

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

Привет, Хабр! Иногда в обмен на электрогитары и педали эффектов для них мне предлагают неожиданные и, мягко говоря, малоприменимые в современных контекстах, но при этом весьма интересные вещи из времён моего детства.

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

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

Читать далее

Yue Studio: попытка сделать нейромузыку, от которой не мутит (по крайней мере меня)

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

Альбом из треков, которые я собрал в этом инструменте, у каждого трека своя страница, где написано, как делалось и есть примеры было — стало: Static and Gold.

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

Читать далее

Как плеер угадывает тональность трека: 12 чисел и одна корреляция

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

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

Читать далее

Трек на 46 минут долго молчал: отдаём перекодированный звук, пока ffmpeg его ещё пишет

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

Сервер перекодирует длинный трек в Opus и отдаёт его только целиком. Пока ffmpeg пишет файл, клиент молчит: на 46-минутной записи это 19 секунд тишины. Экономный режим, в котором человек ждёт быстрой загрузки, грузится дольше оригинала. ▎ ▎ Разбираю, как отдавать файл, пока ffmpeg его ещё пишет, и сохранить при этом кеш и один прогон ffmpeg на все запросы. Почему не подошёл пайп, где прячется гонка на последнем чтении, что делать с переименованием на Windows и почему M4A без фрагментации не играет с первых байтов.

Читать далее

Зарубежные нейросети для транскрибации аудио

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

Привет, дорогой Хабр!

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

Читать далее

Частоту Audio CD выбрала видеокассета: откуда взялись ровно 44 100 Гц

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

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

Я тоже много лет жила с этим объяснением и считала вопрос закрытым, пока не попробовала пересказать его вслух и не споткнулась на последнем шаге: откуда взялись именно эти сто герц сверху? Почему не ровно 44 000, почему не 45 000, почему не 48 000, как у студийного видео? Спойлер для тех, кто не любит интригу, уже вынесен в заголовок, а остальным предлагаю пройти тот же путь, что прошла я, от учебника через подозрительную арифметику к телевизионной развертке, которая до сих пор сидит в каждом компакт-диске и в огромной части музыки на стримингах.

Читать далее

Обработка цифрового звука фильтрами

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

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

Читать далее

xk6-sip: проверка качества звука в нагрузочных и автоматизированных функциональных тестах VoIP/SIP

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

Разберём, как в xk6-sip, расширении нагрузочного инструмента k6 для тестирования VoIP/SIP-звонков, устроена проверка качества звука: запись звонка, оценка того, что услышал абонент, по эталону, и как это работает в функциональных тестах и под нагрузкой.

200 OK означает, что АТС соединила звонок, но не означает, что люди слышат друг друга. Исчерпанные порты медиасервера, ошибки NAT, перепутанные медиапотоки, транскодинг на пределе CPU дают звонок с успешной сигнализацией и тишиной, чужим голосом или хрипом в трубке. SIPp и большинство нагрузочных инструментов для телефонии проверяют сигнализацию, а RTP в лучшем случае считают пакетами. Для контакт-центра такой звонок — потерянный клиент, а в отчёте нагрузочного теста он зелёный.

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

В статье:

Читать далее

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

Локальный анализ звонков без GPU. Что происходит на пути от аудио до резюме

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

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

Я сделал desktop приложение на Tauri, Rust, React и SQLite. Оно распознаёт речь, разделяет спикеров, анализирует тональность, эмоции и риски, а в конце локальная модель формирует резюме и рекомендации. Всё работает на компьютере, интернет нужен только для скачивания моделей.

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

Читать далее

Я написал свой музыкальный плеер со своим стримингом: Android, Windows, Linux и сервер на Rust

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

У меня есть коллекция музыки, которой нет ни в одном стриминге: FLAC, японские альбомы, редкие релизы. Слушать её хотелось так же удобно, как Spotify, с телефона и компьютера, с текстами и итогами года. Готовые решения закрывали задачу по кусочкам, поэтому я написал своё: Nami — плеер для Android, Windows и Linux и собственный сервер на Rust. Внутри: синхронизация между устройствами через одну SQL‑таблицу вместо девяти, караоке‑тексты с выравниванием по словам нейросетью прямо на телефоне, фуригана и ромадзи для японских песен, bit‑perfect‑вывод на USB‑ЦАП и сервер, который занимает 69 МБ памяти.

Читать далее

Синхронизация камер по звуку без хлопушки: что я понял, пока делал плагин для Premiere Pro с нейросетью

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

Я монтажер, не программист. За месяц вместе с нейросетью сделал плагин для Premiere Pro: он синхронизирует камеры с рекордером по звуку, режет паузы и дубли и собирает секвенцию. Историю я уже рассказывал на vc.ru, а здесь будут внутренности: как найти сдвиг между файлами, почему одного порога корреляции мало, как отличить готовый ролик от исходника и почему тесты на каждый релиз оказались важнее любого кода.

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

Читать далее

Как нейросеть переводит видео. Часть 2: русский длиннее не текстом, а звуком

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

Я делаю speeek, сервис дубляжа видео, один. В первой части был вход конвейера: как звук становится текстом с таймкодами и что Whisper с этим текстом вытворяет. Эта про середину: перевод и укладку перевода в тайминг оригинала.

Середина — самое больное место всего проекта. Распознавание я более-менее победил, синтез покупаю готовый. А вот что делать с русской фразой, которая не лезет в секунды английской, я до сих пор не уверен. В конце будет эксперимент, после которого стало немного понятнее.

Читать далее

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

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

В третьей части я написал, что не вижу чужой модели, ради которой стоит менять связку. sherpa-onnx на диаризации, свой второй проход поверх, канал собеседников двадцатиминутного звонка размечается минут семь. Жить можно.

23 сентября NVIDIA выложила Nemotron 3 Diarization. Вечером 28-го я включил её в разбор своих созвонов. Тот же канал — три секунды.

Читать далее

Оффлайн телесуфлёр поверх Instagram и TikTok: распознавание речи на телефоне, выравнивание по словам

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

Мой телесуфлёр для Android называется Суфлёр. Он распознаёт речь на телефоне и прокручивает текст по голосу поверх Instagram, TikTok или системной камеры. Во время записи видео Android отдаёт микрофон камере, и Суфлёр получает звук параллельно с ней через службу специальных возможностей. Такое исключение описано в разделе 5.4.5 Android CDD. Место в сценарии Суфлёр находит, выравнивая восемь последних распознанных слов по всему тексту. Ещё в статье есть правила, которые понадобились трекеру для английского языка.

Читать далее

Как я выбирал софт для измерения параметров усилителей и почему остановился на Room EQ Wizard

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

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

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

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

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

Читать далее
1
23 ...