Голос, звук, анализ звуковой волны: акустика — один из наиболее интересных и сложных каналов сбора данных в мультимодальной логике детекции и распознавания эмоций человека. Помимо прочего, обращение к этому источнику информации ставит перед исследователями задачи разного порядка, решение которых открывает новые научные и технологические перспективы. Мы в Neurodata Lab, занимаясь темой эмоций, сумели попутно разобраться с фундаментальной проблемой: одноканальным разделением голосов, достигнув точности, превышающей 91-93%, для английского, русского и некоторых других ключевых языков (по ним продолжаются эксперименты, приоритет отдан двум первым).
image

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

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

  • На входе имеется одноканальная запись разговора двух (потенциально больше) человек в формате WAV;
  • Из записи удаляются все фрагменты, где одновременно звучат два (или больше) голоса; удаление связано с необходимостью в дальнейшем обрабатывать речь конкретного человека, например, для определения характеристик голоса и эмоционального состояния говорящего;
  • Оставшиеся фрагменты записи разбиваются на две группы таким образом, чтобы каждая из них содержала речь только одного конкретного человека;
  • На выходе – два аудиоканала: в первом звучит речь одного, во втором – другого человека; тайминг сохраняется.

Технологической основой решения являются три подсистемы:

  1. Выделитель (речевых) фраз;
  2. Детектор одновременной речи;
  3. Идентификатор голоса.

Выделитель фраз


Под фразой в данном контексте понимается непрерывный участок речи между двумя микропаузами. Понятие неточное, условное, результат применения выделителя фраз сильно зависит от особенностей произношения (отрывистая или “сглаженная”, непрерывная речь), от параметров “микропауз” и т.п. Типовые настройки выделителя фраз приводят к тому, что фраза, как правило, представляет собой последовательность фонем, слогов, иногда слов длительностью от 0.2 до нескольких секунд. Точные настройки определителя фраз будут приведены в его техническом описании.

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

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

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

Детектор одновременной речи


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

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

В связи с таким наблюдением в основе решения лежат 2D-свёрточные сети, как раз призванные выделять графические особенности. Однако текущий прототип содержит дополнительные, 1D-свёрточные нейросетевые решения для повышения качества детекции.

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

Результат работы детектора – число от 0 до 1. Для классификации предполагается, что если это число меньше 0.5, то в рассматриваемом фрагменте записи одновременного звучания двух голосов нет, иначе имеет место “перехлёст” голосов.

Основным ограничителем в применении детектора сейчас являются записи с заметной реверберацией (“гулкие” помещения, заметное эхо и т.п.), в которых в каком-то смысле воспроизводится эффект одновременного говорения.

Идентификатор голосов


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

В основе лежит нейросетевое решение, обученное на базе из 100 мужских и 100 женских голосов (выборки непрерывно расширяются и диверсифицируются). Результат – число от 0 до 1. Если он меньше 0.5, то считается, что фрагменты принадлежат голосу одного человека, иначе – разным людям.

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

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

Графически схема представлена на рисунке:

image

Куратор проекта: Михаил Гриненко, д.ф-м.н., научный консультант Neurodata Lab по глубокому обучению и анализу данных.

Комментарии (6)


  1. pewpew
    09.11.2017 21:31

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


    1. IgorLevin Автор
      09.11.2017 21:39

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


      1. SystemXFiles
        10.11.2017 06:41

        Так может стоило проявить немного терпения и выложить полною версию? А то конфетку показали, а внутри пусто.


        1. IgorLevin Автор
          10.11.2017 11:06

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


        1. Foveator
          11.11.2017 20:03

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


          1. Детектируешь, кто говорит каждую фразу.
          2. Устанавливаешь для каждого говорящего свой "уровень громкости"
          3. Привязываешь фразы к таймеру.
            Зачастую только из записи узнаешь, что эксперт нашептал судье ( подойдя к судейскому столу, под видом разъяснения рисунков, ) ложные сведения, которые можно было опровергнуть в ходе заседания, если бы разобрал речь.

          Для облегчения работы авторов хочу предложить им использование аудиосигнала, сразу от нескольких микрофонов.
          Это позволяет по запаздыванию звука определить координаты каждого источника звука.
          Кроме того, предлагаю отдельным алгоритмом изучить эхо в данном помещении, привязать его АЧХ к каждому источнику звука.


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


          У фирмы Евромани Трайдинг посещал недельный курс английского языка для работы на бирже (6000 фт. ст.)
          Профессора мотивировали изучать английский язык брокеров с целью получения своей зарплаты.
          "Не расслышал сообщение заинтересовавшего тебя клиента — упустил свой шанс!"
          Для работы на биржевых площадках, там где не боты шуруют, Ваш алгоритм и приложение будут востребованы.


          Успехов в работе. Жду с нетерпением продажи приложений.


  1. taisiadance
    10.11.2017 22:19
    +1

    интересно будет все же взглянуть именно на продукт, какие будут действительно его возможности, будет ли он готовым к использованию или сырым<a href=".">.… как будут выбираться стандартизированные параметры, можно ли дальше развивать эту же продукцию но более углубленно, какие у нее пределы… интересно это все, жду прототипа :)