All streams
Search
Write a publication
Pull to refresh
56
0

Пользователь

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

По сути, на предварительном этапе слуховая система преобразует акустический сигнал в спектральную форму. Причём, согласно недавним исследованиям, учитывается не только амплитуда, но и фаза сигнала(!), благодаря чему мозг по разности фаз и амплитуд между обоими ушами способен точнее определять направление источника звука.
Оу, большое спасибо за ссылку! Проверил, алгоритм работает!
Бьюсь об заклад, что многие гитарные тюнеры, виденные мной, используют именно его.
Отклик быстрее, чем у преобразования Фурье с окном 2048 при сравнимой точности.
Но алгоритм распознаёт лишь один пик, поэтому применение его ограничено, однако если использовать в связке с преобразованием Фурье, то, вероятно, можно достичь весьма интересных результатов…

Чтобы пример по ссылке заработал с реальным сигналом с микрофона, добавьте в проект ссылку Microsoft.Xna.Framework, затем закомментируйте строчки
            m_timer = new DispatcherTimer();
            m_timer.Interval = TimeSpan.FromMilliseconds(m_timeInterval);
            m_timer.Tick += OnTimerTick;
            m_timer.Start();

и вместо них допишите
            var timer = new DispatcherTimer();
            timer.Tick += (sender, args) => FrameworkDispatcher.Update();
            timer.Start();

            var device = Microphone.Default;
            device.BufferDuration = TimeSpan.FromMilliseconds(100);
            var bufferSize = device.GetSampleSizeInBytes(device.BufferDuration) / 2;
            var sampleBytes = new byte[2 * bufferSize];

            device.BufferReady += (sender, args) =>
            {
                var sampleSizeInBytes = device.GetData(sampleBytes);
                var sampleSize = sampleSizeInBytes / 2;
                var sample = new double[sampleSize];
                for (var i = 0; i < sampleSize; i++)
                {
                    sample[i] = Convert.ToDouble(BitConverter.ToInt16(sampleBytes, 2 * i));
                }
                m_pitchTracker.ProcessBuffer(sample.Select(t=>(float)t).ToArray());

                UpdateDisplay();
            };

            FrameworkDispatcher.Update();
            device.Start();

Скомпилируйте.

А теперь настраивайте гитару!
Посмотрел обучающие видеозаписи по Melodyne, и меня они очень впечатлили, вот что значит профессиональный инструмент обработки аудио. Думаю, он стоит своих денег. Предполагаю, что тут как раз таки активно используются фазовые методы коррекции аудиосигналов, как, например, по этой ссылке www.guitarpitchshifter.com/algorithm.html.
Хороший вопрос.

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

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

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

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

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

Не совсем так. Как мне показалось, фазовый метод корректирует частоту точнее, чем простое увеличение размера окна в два раза, к тому же он не ограничен дискретной сеткой, а это важно, например, для тюнеров. Конечно, можно попробовать добавить ещё больше нулей, но анализ слишком больших кадров уже начинает сказываться на производительности, что заметно на мобильных устройствах.
Спасибо! Пока ещё детально не разобрался, но меня заинтересовал подход.
На текущий момент у меня подобных наработок нету, хотя, возможно, кто-то этим уже занимается. Разработка подобных алгоритмов требует огромного труда и ресурсов, а эта статья, как и мобильное приложение к ней, написаны на энтузиазме :)

Не знаю точно, получится ли дальнейшее развитие в этом направлении. Увидим…
Попробуйте Akoff Music Composer.
Правда, он платный, но 10 секунд можно преобразовать бесплатно :)
Насколько мне удалось понять, в квантовой механике особый взгляд на природу времени, в рамках которого понятия первично и вторично теряют привычный смысл, поэтому вопрос будет некорректен :)
Существует также хорошая программа для подбора нот — Transcribe!.
Только она работает не в реальном времени с потоковым аудиосигналом, а с готовым треком.

image

image
Спасибо! Вы абсолютно правы, иллюстрации брал из интернета и не обратил внимания на эту ошибку. Постараюсь исправить в ближайшее время.
О связи преобразования Фурье с принципом неопределённости Гейзенберга можно подробнее прочитать по ссылкам:
ru.wikipedia.org/wiki/Принцип_неопределённости
pandia.org/text/77/481/644.php
12 ...
37

Information

Rating
Does not participate
Registered
Activity