ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Изобретение в целом относится к способу и устройству для обнаружения голосовой активности (VAD).
УРОВЕНЬ ТЕХНИКИ
В системах кодирования речи, используемых для разговорной речи, для того, чтобы увеличить эффективность кодирования, обычно используется прерывистая передача (DTX). Причина этого заключается в том, что разговорная речь содержит большое количество пауз, например, в то время как один человек говорит, другой слушает. Так, при прерывистой передаче кодировщик речи является активным в среднем приблизительно 50 процентов времени, и остаток может быть закодирован с использованием комфортного шума. Некоторыми примерными кодеками, у которых есть этот признак, являются адаптивное кодирование с переменной скоростью (AMR NB) и улучшенный кодек с переменной скоростью передачи данных (EVRC). AMR NB использует прерывистую передачу, а EVRC использует переменную скорость передачи данных (VBR), где алгоритм определения скорости передачи данных (RDA) решает, какую скорость передачи данных использовать для каждого фрейма, на основе решения VAD. При прерывистой передаче активные фреймы речи кодируются с использованием кодека, в то время как фреймы между активными областями заменяются комфортным шумом. Параметры комфортного шума оцениваются в кодировщике и отправляются декодеру, использующему уменьшенную частоту фреймов и более низкую скорость передачи данных, чем он использует для активной речи.
Для высококачественной прерывистой передачи, то есть для передачи без ухудшения качества речи, важно обнаруживать периоды речи во входном сигнале. Это обычно делается детектором голосовой активности (VAD) (который используется как в прерывистой передаче, так и в RDA). Фиг. 1 показывает обзорную блок-схему примера обобщенного VAD 100, который принимает входной сигнал 111, обычно поделенный на фреймы данных длиной от 5 до 30 мс в зависимости от реализации, в качестве ввода и формирует решения VAD в качестве вывода, обычно по одному решению для каждого фрейма. Таким образом, решение VAD является решением для каждого фрейма, указывающим, содержит ли фрейм речь или шум.
Предварительное решение vad_prim 113 в этом примере формируется первичным голосовым детектором 101, и в данном примере в основном является всего лишь сравнением признаков текущего фрейма и признаков фона (обычно оцениваемых по предыдущим входным фреймам), причем разность, превышающая некоторый порог, формирует положительное первичное решение. В других примерах предварительное решение может быть получено другими способами, некоторые из которых кратко обсуждаются далее в настоящем документе. Детали внутренней работы первичного голосового детектора не имеют первостепенной важности для настоящего изобретения, и любой первичный голосовой детектор, формирующий предварительное решение, будет полезен в данном контексте. Блок 102 добавления хвостов сигнала в данном примере используется для того, чтобы расширить первичное решение на основе прошлых первичных решений и сформировать окончательное решение vad_flag 115. Причина использования хвостов сигнала главным образом заключается в том, чтобы уменьшить/устранить риск отсечения середины речи и окончания речевых пакетов. Однако хвосты сигнала могут также использоваться для того, чтобы избежать отсечения в музыкальных пассажах.
Также возможно добавлять дополнительные хвосты сигнала с целью прерывистой передачи. На Фиг. 1 это проиллюстрировано дополнительным выходом vad_flag_dtx 117. Следует отметить, что обычно существует только один выход vad_flag, но логика хвостов сигнала использует другие настройки, когда выход должен использоваться для прерывистой передачи. В данном описании два выхода окончательного решения vad_flag 115 и vad_flag_dtx 117 будут разделяться в большинстве вариантов осуществления для того, чтобы упростить описание. Однако решения, основанные на альтернативных настройках хвостов сигнала и одном выходе, также являются применимыми.
Существуют две главные причины для использования различных выходов окончательного решения или настроек хвостов сигнала в зависимости от того, используется ли решение VAD для прерывистой передачи или нет. Во-первых, с точки зрения качества речи к VAD предъявляются более высокие требования, когда он используется для прерывистой передачи. Следовательно, прежде, чем переключиться на комфортный шум, желательно удостовериться, что речь закончилась. Во-вторых, дополнительные хвосты сигнала могут использоваться для оценки характеристик фонового шума. Например в AMR NB первая оценка комфортного шума делается в декодере на основе конкретных используемых хвостов сигнала DTX.
Как было упомянуто выше, существует ряд различных признаков, которые могут быть использованы для обнаружения VAD. Одна возможность заключается в том, чтобы отслеживать только энергию фрейма и сравнивать ее с некоторым порогом для того, чтобы решить, содержит ли фрейм речь или нет. Эта схема достаточно хорошо работает при условиях, в которых отношение сигнал-шум (SNR) является хорошим, но плохо работает в случае низких значений SNR. При низких значениях SNR предпочтительно используются другие метрики, например, сравнение характеристик речи и шумовых сигналов. Для реализаций в реальном времени дополнительным требованием к функциональности VAD является вычислительная сложность, которая отражается в частом представлении VAD для SNR поддиапазона в стандартных кодеках. VAD поддиапазона обычно комбинирует отношения SNR различных поддиапазонов в некоторую общую метрику, которая сравнивается с порогом для принятия первичного решения.
VAD 100 включает в себя блок 106 извлечения признаков, обеспечивающий энергию поддиапазона признака, и блок 105 оценки фона, который обеспечивает энергетические оценки поддиапазона. Для каждого фрейма VAD 100 вычисляет признаки. Для того, чтобы идентифицировать активные фреймы, признак (признаки) текущего фрейма сравниваются с оценкой того, как этот признак "выглядит" для фонового сигнала.
Блок 102 добавления хвостов сигнала используется для того, чтобы расширить решение VAD от первичного VAD на основе прошлых первичных решений с тем, чтобы сформировать заключительное решение VAD «vad_flag», то есть более старые решения VAD также принимаются во внимание. Как было упомянуто ранее, причина использования хвостов сигнала главным образом заключается в том, чтобы, уменьшить/устранить риск отсечения середины речи и конца речевых пакетов. Однако хвосты сигнала могут также использоваться для того, чтобы избежать отсечения в музыкальных пассажах. Контроллер 107 может корректировать порог (пороги) для первичного детектора и длину добавляемых хвостов сигнала в соответствии с характеристиками входного сигнала.
Известны также решения, где множественные признаки с различными характеристиками используются для первичного решения. Для определения голосовой активности, основанного на принципе SNR поддиапазона, было показано, что введение нелинейности в вычисление SNR поддиапазона, иногда называемой порогами значимости, может улучшить работу VAD для условий с неустановившимся шумом, например, для невнятных переходных разговоров или офисного шума. Однако в этих случаях обычно имеется одно первичное решение, которое используется для добавления хвостов сигнала, которое может адаптироваться к условиям входного сигнала для того, чтобы сформировать окончательное решение. Кроме того, многие алгоритмы определения голосовой активности имеют порог входной энергии для обнаружения тишины, то есть для достаточно низких уровней входного сигнала первичное решение сбрасывается в неактивное состояние.
Один пример, в котором пороги значимости использовались для того, чтобы создать двойное решение VAD, описывается в опубликованной международной патентной заявке WO 2008/143569 A1. В этом случае двойное определение речевой активности использовалось для того, чтобы улучшить обновление фонового шума и обнаружение музыки. Однако только агрессивный первичный VAD использовался для окончательного решения vad_flag.
В документе WO 2008/143569 A1 для того, чтобы обнаружить присутствие музыки, использовалась метрика, основанная на отфильтрованной кратковременной активности низких частот. Эта метрика отфильтрованных низких частот обеспечивает медленно изменяющееся численное значение, подходящее для нахождения более или менее непрерывных типов звука, типичных для, например, музыки. Дополнительное решение vad_music может быть тогда обеспечено для добавления хвостов сигнала, позволяя обработать музыкальный звук определенным образом.
Существует несколько различных способов генерации множественных первичных решений VAD. Наиболее базовым было бы использовать те же самые признаки, что и исходный VAD, но получать второе первичное решение с использованием второго порога. Другой возможностью является переключать VAD в соответствии с оцениваемыми условиями SNR, например, путем использования энергии в условиях высоких значений SNR и переключения на работу с SNR поддиапазона для условий средних и низких значений SNR.
В опубликованной международной патентной заявке WO 2011/049516 A1 раскрываются детектор голосовой активности и соответствующий ему способ. Детектор голосовой активности выполнен с возможностью обнаруживать голосовую активность в принятом входном сигнале. VAD включает в себя комбинационные логики, выполненные с возможностью получения сигнала от первичного голосового детектора VAD, указывающего на первичное решение VAD. Комбинационные логики далее получают по меньшей мере один сигнал от внешнего VAD, указывающий на решение о наличии голосовой активности, принятое внешним VAD. Процессор объединяет решения о наличии голосовой активности, содержащиеся в полученных сигналах, для того, чтобы сгенерировать модифицированное первичное решение VAD. Модифицированное решение VAD передается в блок добавления хвостов сигнала.
Одна проблема с хвостами сигнала состоит в том, чтобы решить, когда и в каком количестве их использовать. С точки зрения качества речи добавление хвостов сигнала является в основном положительным. Однако нежелательно добавлять слишком длинные хвосты сигнала, так как любое удлинение хвостов сигнала уменьшит эффективность решения DTX. Поскольку нежелательно добавлять хвосты сигнала к каждой кратковременной вспышке активности, со стороны первичного детектора vad_prim обычно существует требование наличия минимального числа активных фреймов для того, чтобы рассматривать добавление некоторого хвоста сигнала для генерирования окончательного решения vad_flag. Однако для того, чтобы избежать отсечения речи, желательно сохранять это необходимое количество активных фреймов настолько малым, насколько это возможно.
Для неустановившегося шума малое количество необходимых активных фреймов может позволить самому шуму вызвать достаточно длительные события VAD, которые инициируют добавление хвостов сигнала. Таким образом для того, чтобы избежать чрезмерной активности, такое решение обычно не допускает длинных хвостов сигнала.
Другой проблемой с необходимым количеством активных фреймов перед добавлением хвостов сигнала для высокоэффективного VAD является его способность обнаруживать короткие паузы внутри фрагмента речи. В этом случае имеется фрагмент речи, который был обнаружен правильно, но говорящий делает небольшую паузу перед тем, как продолжить. Это заставляет VAD обнаружить паузу и еще раз требует нового периода активных первичных фреймов до того, как хвост сигнала вообще может быть добавлен. Это может вызвать раздражающие артефакты с отсечением концов последних речевых сегментов, такие как речевой фрагмент, заканчивающийся неречевым взрывом.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Задача вариантов осуществления настоящего изобретения состоит в том, чтобы решить по меньшей мере одну из обрисованных выше проблем, и эта задача решается с помощью способов и устройств в соответствии с прилагаемыми независимыми пунктами формулы изобретения, а также с помощью вариантов осуществления в соответствии с зависимыми пунктами формулы изобретения.
В соответствии с одним аспектом настоящего изобретения предлагается способ для обнаружения голосовой активности (VAD), включающий в себя создание сигнала, указывающего на первичное решение VAD, и определение того, должно ли выполняться добавление хвостов сигнала первичного решения VAD. Определение необходимости добавления хвостов сигнала делается в зависимости от меры краткосрочной активности и меры долгосрочной активности. Сигнал, указывающий на окончательное решение VAD, создается затем в зависимости от по меньшей мере определения необходимости добавления хвостов сигнала.
В одном варианте осуществления мера краткосрочной активности выводится из N_st последних первичных решений VAD.
В одном варианте осуществления мера долгосрочной активности выводится из N_lt последних окончательных решений VAD или из N_lt последних первичных решений VAD.
В одном варианте осуществления создаются две версии окончательных решений: первое окончательное решение VAD и второе окончательное решение VAD. Второе окончательное решение VAD может быть сделано без использования меры краткосрочной активности и/или меры долгосрочной активности, и мера долгосрочной активности может быть выведена из N_lt последних вторых окончательных решений VAD.
В одном варианте осуществления окончательное решение VAD равно первичному решению VAD, если определено, что добавление хвостов сигнала выполнять не надо. В случае, если определено, что добавление хвостов сигнала выполнять надо, окончательное решение VAD равно решению голосовой активности, указывающему на активный фрейм.
В соответствии с другим аспектом настоящего изобретения предлагается устройство для обнаружения голосовой активности. Это устройство включает в себя секцию ввода, механизм первичного голосового детектора и блок добавления хвостов сигнала. Секция ввода выполнена с возможностью приема входного сигнала. Механизм первичного голосового детектора соединяется с секцией ввода. Механизм первичного голосового детектора выполнен с возможностью обнаружения голосовой активности в принятом входном сигнале, а также создания сигнала, указывающего на первичное решение VAD, связанное с принятым входным сигналом. Блок добавления хвостов сигнала соединяется с механизмом первичного голосового детектора. Блок добавления хвостов сигнала выполнен с возможностью определения, должно ли быть выполнено добавление хвостов сигнала первичного решения VAD, а также создания сигнала, указывающего на окончательное решение VAD, по меньшей мере частично зависящее от определения необходимости добавления хвостов сигнала. Устройство дополнительно включает в себя блок оценки краткосрочной активности и блок оценки долгосрочной активности. Блок оценки краткосрочной активности соединяется с входом блока добавления хвостов сигнала. Блок оценки долгосрочной активности соединяется с выходом блока добавления хвостов сигнала. Блок добавления хвостов сигнала соединяется с выходом блока оценки краткосрочной активности и блока оценки долгосрочной активности. Блок добавления хвостов сигнала дополнительно выполнен с возможностью выполнения определения необходимости добавления хвостов сигнала в зависимости от меры краткосрочной активности и от меры долгосрочной активности.
В одном варианте осуществления блок оценки краткосрочной активности выполнен с возможностью определения меры краткосрочной активности из N_st последних первичных решений VAD.
В одном варианте осуществления блок оценки долгосрочной активности выполнен с возможностью определения меры долгосрочной активности из N_lt последних окончательных решений VAD или из N_lt последних первичных решений VAD.
В одном варианте осуществления предлагается устройство. Этот вариант осуществления основан на процессоре, например на микропроцессоре, который выполняет компонент программного обеспечения для создания сигнала, указывающего на первичное решение VAD, компонент программного обеспечения для определения, нужно ли выполнять добавление хвостов сигнала первичного решения VAD, а также компонент программного обеспечения для создания сигнала, указывающего на окончательное решение VAD, по меньшей мере частично зависящее от определения необходимости добавления хвостов сигнала. В этом варианте осуществления процессор выполняет компонент программного обеспечения для определения меры краткосрочной активности из N_st последних первичных решений VAD и/или компонент программного обеспечения для определения меры долгосрочной активности из N_lt последних окончательных решений VAD. Эти компоненты программного обеспечения хранятся в памяти.
В соответствии с другим аспектом настоящего изобретения предлагается компьютерная программа. Компьютерная программа включает в себя компьютерно-читаемые блоки кода, которые при их выполнении на устройстве заставляют устройство создавать сигнал, указывающий на первичное решение VAD, определять необходимость добавления хвостов сигнала первичного решения VAD на основе меры краткосрочной активности и меры долгосрочной активности, и создавать сигнал, указывающий на окончательное решение VAD, по меньшей мере частично зависящее от определения необходимости добавления хвостов сигнала.
В соответствии с другим аспектом настоящего изобретения предлагается компьютерный программный продукт. Компьютерный программный продукт включает в себя компьютерно-читаемый носитель и компьютерную программу для создания сигнала, указывающего на первичное решение VAD, определения необходимости добавления хвостов сигнала первичного решения VAD на основе меры краткосрочной активности и меры долгосрочной активности, и создания сигнала, указывающего на окончательное решение VAD, по меньшей мере частично зависящее от определения необходимости добавления хвостов сигнала, хранимую на компьютерно-читаемом носителе.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Для более полного понимания вариантов осуществления настоящего изобретения в качестве примера приводится следующее описание, сопровождаемое чертежами, на которых:
Фиг. 1 показывает пример типичного VAD с оценкой фона;
Фиг. 2 иллюстрирует примерный вариант осуществления VAD в соответствии с настоящим изобретением;
Фиг. 3 представляет собой блок-схему, иллюстрирующую пример способа VAD в соответствии с одним вариантом осуществления настоящего изобретения;
Фиг. 4A иллюстрирует один примерный вариант осуществления VAD в соответствии с настоящим изобретением;
Фиг. 4B иллюстрирует другой примерный вариант осуществления VAD в соответствии с настоящим изобретением;
Фиг. 4C иллюстрирует еще один примерный вариант осуществления VAD в соответствии с настоящим изобретением;
Фиг. 5 иллюстрирует дополнительный примерный вариант осуществления VAD в соответствии с настоящим изобретением;
Фиг. 6 показывает вариант осуществления VAD с хвостами сигнала;
Фиг. 7 показывает один вариант осуществления дополнительного VAD.
ПОДРОБНОЕ ОПИСАНИЕ
Было найдено, что одним способом смягчения таких проблем является использование временных характеристик метрик первичного детектора и метрик окончательного решения. Было найдено, что они хорошо подходят для подстройки дополнительных хвостов сигнала. По меньшей мере одно из первичного решения, введенного в блок добавления хвостов сигнала, и окончательного решения, выведенного из блока добавления хвостов сигнала, предпочтительно используется для того, чтобы влиять на добавление хвостов сигнала, и наиболее предпочтительно используются оба решения. Первичное решение, введенное в блок добавления хвостов сигнала, может быть исходным первичным решением, полученным от первичного голосового детектора, или оно может быть модифицированной версией такого исходного первичного решения. Такая модификация может быть выполнена на основе выходов из других VAD.
Один вариант осуществления типичного VAD 200, использующий первичное решение, введенное в блок 202 добавления хвостов сигнала, и окончательное решение, выведенное из блока 202 добавления хвостов сигнала, иллюстрируется на Фиг. 2.
Блок 206 извлечения признаков обеспечивает энергию поддиапазона признака, блок 205 оценки фона обеспечивает энергетические оценки поддиапазона, контроллер 207 может корректировать порог (пороги) для первичного детектора и длину добавляемых хвостов сигнала в соответствии с характеристиками входного сигнала, и первичный голосовой детектор 201 принимает предварительное решение vad_prim 213, как описано со ссылкой на Фиг. 1.
В этом варианте осуществления детектор 200 голосовой активности дополнительно включает в себя блок 203 оценки краткосрочной активности и/или блок 204 оценки долгосрочной активности. Временные характеристики определяются с использованием признаков краткосрочной активности первичного решения vad_prim 213 и долгосрочной активности окончательного решения vad_flag 215. Эти метрики затем используются для того, чтобы скорректировать добавление хвостов сигнала для улучшения характеристик VAD для использования в прерывистой передаче путем создания альтернативного окончательного решения vad_flag_dtx 217.
В данном случае краткосрочная активность измеряется путем подсчета количества активных фреймов в памяти последних N_st первичных решений vad_prim 213. Аналогичным образом долгосрочная активность измеряется путем подсчета количества активных фреймов в окончательном решении vad_flag 215 в последних N_lt фреймах. N_lt имеет значение больше, чем N_st, предпочтительно значительно больше. Эти метрики затем используются для того, чтобы создать альтернативное окончательное решение vad_flag_dtx 217. Преимущество использования этих метрик заключается в том, что это упрощает настройку хвостов сигнала, поскольку легче добавить хвосты сигнала в те моменты времени, когда активность уже высока.
Высокая краткосрочная активность указывает либо на начало, либо на середину, либо на конец активного пакета. На первый взгляд эта метрика может показаться похожей на обычно используемый способ, требующий только количества последовательных активных фреймов, как отмечалось ранее. Однако основное различие заключается в том, что краткосрочная активность не сбрасывается, когда появляется решение о неактивности. Вместо этого имеется память, которая помнит вплоть до N_st активных фреймов прежде, чем они в конечном счете будут удалены из памяти. Следовательно, неактивный фрейм лишь несколько уменьшит среднюю краткосрочную активность. Для достаточно высокой краткосрочной активности было бы безопасно добавить несколько фреймов хвоста сигнала, поскольку краткосрочная активность уже высока, и дополнительный хвост сигнала будет оказывать лишь небольшое влияние на общую активность. Рассеянные фреймы неактивности не будут уменьшать краткосрочную активность в достаточной степени для того, чтобы прервать такую работу хвостов сигнала.
Рассеянные фреймы неактивности могут соответствовать коротким паузам в середине речевой активности или могут быть ложным обнаружением неактивности, например, вызванным короткими последовательностями невокализированной речи. Путем использования краткосрочной активности описанным выше способом, добавление хвостов сигнала может поддерживаться во время таких случаев.
Аналогичным образом высокая долгосрочная активность указывает на то, что речевой пакет был активным в течение некоторого времени. Если долгосрочная активность является высокой, существует большая вероятность того, что можно добавить несколько дополнительных хвостовых фреймов, практически не влияя на общую активность.
В одном варианте осуществления краткосрочная активность и долгосрочная активность соответственно сравниваются с соответствующим предопределенным порогом. Если активность выше соответствующего порога, то добавляется предопределенное соответствующее количество фреймов хвостового сигнала.
Так как долгосрочная активность реагирует на фактический конец речевой активности относительно медленно, есть риск того, что большое количество добавленных хвостовых фреймов будет использоваться относительное длительное время после конца речевого пакета. В связи с этим можно также использовать низкую краткосрочную активность в качестве индикатора конца речевого пакета. Следовательно, в одном варианте осуществления может быть желательно ограничить длину дополнительного хвостового сигнала, если краткосрочная активность падает ниже предопределенного порога. Другими словами, достаточно низкая краткосрочная активность может переопределить добавление хвостовых фреймов сигнала, требуемое высокой долгосрочной активностью.
Далее приведенные выше варианты осуществления в большинстве случаев описываются как модификации существующих решений, в которых увеличение сложности является небольшим. Однако возможно также спроектировать абсолютно новый VAD, который должен использовать вышеупомянутые метрики для того, чтобы обеспечить более надежное решение VAD.
В одном варианте осуществления, схематично проиллюстрированном на Фиг. 3, способ в детекторе голосовой активности для обнаружения голосовой активности в полученном входном сигнале включает в себя создание 310 сигнала, указывающего на первичное решение VAD, связанное с полученным входным сигналом, предпочтительно путем анализа характеристик полученного входного сигнала. Определяется 320, должно ли быть выполнено добавление хвостов сигнала первичного решения VAD. Создается 330 сигнал, указывающий на окончательное решение VAD. Окончательное решение VAD равно первичному решению VAD, если определено, что добавление хвостов сигнала не нужно. Окончательное решение VAD равно решению голосовой активности, если определено, что добавление хвостов сигнала должно быть выполнено. Так как хвосты сигнала добавляются, решение голосовой активности указывает на активный фрейм, то есть на фрейм, содержащий речь, а не шум. Мера краткосрочной активности определяется 340 по последним N_st первичным решениям VAD, и/или мера долгосрочной активности определяется 342 по последним N_lt окончательным решениям VAD. Определение необходимости добавления хвостов сигнала выполняется в зависимости от меры краткосрочной активности и/или от меры долгосрочной активности. Независимо от того, что Фиг. 3 изображена как один поток событий, реальная система будет обрабатывать фреймы один за другим. Пунктирные стрелки показывают, что зависимость меры краткосрочной активности и/или меры долгосрочной активности справедлива для последующего фрейма.
Следует понимать, что Фиг. 3 иллюстрирует не поток сигналов, а скорее этапы способа, которые выполняются в соответствии с одним вариантом осуществления настоящего изобретения. Таким образом, создание окончательного решения 330 VAD может включать в себя создание альтернативного окончательного решения (например, vad_flag_dtx 217) на основе мер краткосрочной активности и/или долгосрочной активности. Альтернативное окончательное решение, однако, не используется в качестве входа для блока 204 оценки долгосрочной активности, поскольку это создало бы обратную связь активности (из-за модификации признака, который должен быть измерен с добавлением скорректированных хвостов сигнала). Следовательно, создание окончательного решения 330 VAD может также включать в себя создание окончательного решения (например, vad_flag 215) на основе традиционного способа хвостов сигнала и/или мер краткосрочной активности, но не мер долгосрочной активности, которое затем используется в качестве входа для блока 204 оценки долгосрочной активности, как показано на Фиг. 2.
В одном варианте осуществления, схематично проиллюстрированном на Фиг. 4A, детектор 400 голосовой активности включает в себя секцию 412 ввода, механизм 401 первичного голосового детектора и блок 402 добавления хвостов сигнала. Секция ввода выполнена с возможностью получения входного сигнала. Механизм 401 первичного голосового детектора соединяется с секцией 412 ввода. Механизм 401 первичного голосового детектора выполнен с возможностью обнаружения голосовой активности в полученном входном сигнале, а также создания сигнала, указывающего на первичное решение VAD, связанное с полученным входным сигналом. Блок 402 добавления хвостов сигнала соединяется с механизмом 401 первичного голосового детектора. Блок 402 добавления хвостов сигнала выполнен с возможностью определения необходимости добавления хвостов сигнала упомянутого первичного решения VAD, а также создания сигнала, указывающего на окончательное решение VAD. Окончательное решение VAD равно первичному решению VAD, если определено, что добавление хвостов сигнала не нужно. Окончательное решение VAD равно решению голосовой активности, если определено, что добавление хвостов сигнала должно быть выполнено. Детектор 400 голосовой активности дополнительно включает в себя блок 403 оценки краткосрочной активности и/или блок 404 оценки долгосрочной активности. Блок 403 оценки краткосрочной активности соединяется с входом блока 402 добавления хвостов сигнала. Блок 403 оценки краткосрочной активности выполнен с возможностью определения меры краткосрочной активности по последним N_st первичным решениям VAD. Блок 404 оценки долгосрочной активности соединяется с выходом блока 402 добавления хвостов сигнала. Блок 404 оценки долгосрочной активности выполнен с возможностью определения меры долгосрочной активности по последним N_lt окончательным решениям VAD. Блок 402 добавления хвостов сигнала соединяется с выходом блока 403 оценки краткосрочной активности и/или блока 404 оценки долгосрочной активности. Блок 402 добавления хвостов сигнала дополнительно выполнен с возможностью выполнения определения хвостов сигнала в зависимости от меры краткосрочной активности и/или от меры долгосрочной активности. Определение хвостов сигнала в зависимости от меры краткосрочной активности и/или от меры долгосрочной активности может затем использоваться для того, чтобы скорректировать добавление хвостов сигнала с тем, чтобы улучшить характеристики VAD для использования в прерывистой передаче путем создания альтернативного окончательного решения.
Детектор голосовой активности обычно предусматривается в голосовом или звуковом кодеке. Такие кодеки обычно предусматриваются в различных оконечных устройствах, например, в телекоммуникационных сетях. Неограничивающими примерами являются телефоны, компьютеры и т.д., в которых выполняется обнаружение или запись звука.
В одном варианте осуществления окончательное решение VAD дается как дополнительный флаг 410, помимо окончательного решения VAD, принятого без использования мер краткосрочной активности или меры долгосрочной активности, обычно как окончательное решение VAD для использования в прерывистой передаче, как проиллюстрировано на Фиг. 4B. Две версии окончательных решений могут тогда использоваться параллельно различными блоками или функциональностями. В другом альтернативном варианте осуществления использование меры краткосрочной активности или меры долгосрочной активности может включаться и отключаться в зависимости от контекста, в котором предполагается использование решения VAD.
В другом варианте осуществления, где окончательное решение VAD не является доступным или является неподходящим для выполнения какого-либо анализа долгосрочной активности, анализ долгосрочной активности вместо этого может быть выполнен на первичном решении VAD. В таком варианте осуществления блок 404 оценки долгосрочной активности вместо этого соединяется с входом блока 402 добавления хвостов сигнала, как показано на Фиг. 4C, и мера долгосрочной активности оценивается по N_lt последним первичным решениям VAD.
В еще одном варианте осуществления оценки краткосрочной и долгосрочной активности могут быть выполнены на первичном и/или окончательном решении VAD, отличающемся от первичного и/или окончательного решения VAD, на котором должна быть выполнена дополнительная корректировка хвостов сигнала. Одна возможность заключается в том, чтобы иметь простой VAD, создающий первичное решение VAD, и простой блок добавления хвостов сигнала, модифицирующий его в окончательное решение VAD. Затем может быть проанализировано поведение краткосрочной и долгосрочной активности таких первичных и/или окончательных решений VAD. Однако другая настройка VAD, например более усложненная, может затем использоваться для обеспечения представляющего интерес первичного решения VAD для корректировки добавления хвостов сигнала. Проанализированная активность из простой системы может затем быть использована для управления работой блока 402 добавления хвостов сигнала более тщательно продуманной системы VAD, давая надежное окончательное решение VAD.
Далее будет описан пример варианта осуществления детектора 500 голосовой активности со ссылкой на Фиг. 5. Этот вариант осуществления основан на процессоре 510, например микропроцессоре, который выполняет компонент 501 программного обеспечения для того, чтобы создать сигнал, указывающий на первичное решение VAD, компонент 502 программного обеспечения для того, чтобы определить, должно ли быть выполнено добавление хвостов сигнала первичного решения VAD, и компонент 503 программного обеспечения для того, чтобы создать сигнал, указывающий на окончательное решение VAD. В этом варианте осуществления процессор 510 выполняет компонент 504 программного обеспечения для того, чтобы получить меру краткосрочной активности из последних N_st первичных решений VAD, и/или компонент 505 программного обеспечения для того, чтобы получить меру долгосрочной активности из последних N_lt окончательных решений VAD. Эти компоненты программного обеспечения хранятся в памяти 520. Процессор 510 обменивается информацией с памятью 520 по системной шине 515. Аудиосигнал получается контроллером 530 ввода-вывода (I/O), который управляет шиной 516 ввода-вывода, с которой соединены процессор 510 и память 520. В этом варианте осуществления сигналы, полученные контроллером 530 ввода-вывода, хранятся в памяти 520, где они обрабатываются компонентами программного обеспечения. Компонент 501 программного обеспечения может реализовать функциональность стадии 310 в варианте осуществления, описанном со ссылкой на Фиг. 3 выше. Компонент 502 программного обеспечения может реализовать функциональность стадии 320 в варианте осуществления, описанном со ссылкой на Фиг. 3 выше. Компонент 503 программного обеспечения может реализовать функциональность стадии 330 в варианте осуществления, описанном со ссылкой на Фиг. 3 выше. Компонент 504 программного обеспечения может реализовать функциональность стадии 340 в варианте осуществления, описанном со ссылкой на Фиг. 3 выше. Компонент 505 программного обеспечения может реализовать функциональность стадии 342 в варианте осуществления, описанном со ссылкой на Фиг. 3 выше.
Блок 530 ввода-вывода может быть связан с процессором 510 и/или памятью 520 через шину 516 ввода-вывода с тем, чтобы обеспечить ввод и/или вывод соответствующих данных, таких как входные сигналы и окончательные решения VAD.
В одном варианте осуществления счетчики активных фреймов в памяти первичных решений и окончательных решений используются как описано выше. В альтернативных вариантах осуществления было бы возможно также использовать взвешивание, которое зависит от времени нахождения активного фрейма в памяти. Это возможно как для первичного решения, принимаемого на основе краткосрочной активности, так и для окончательного решения, принимаемого на основе долгосрочной активности. В дополнительных вариантах осуществления можно использовать различные дополнительные хвосты сигнала в зависимости от других характеристик входного сигнала, таких как оценка уровня речи, уровня шума и/или SNR.
В дополнительных вариантах осуществления может быть интересным использовать более двух временных характеристик для того, чтобы лучше определить местоположение начала, середины, или конца активного речевого пакета.
В дополнительных вариантах осуществления описанные выше принципы решений хвостов сигнала могут быть также объединены с другими решениями для улучшения VAD, такими как принципы объединителя мульти-VAD, представленные в документе WO 2011/049516. В этом случае модифицированное первичное решение VAD используется в качестве входа для блока оценки краткосрочной активности, и может использоваться блок добавления хвостов сигнала. Объединитель мульти-VAD тогда может рассматриваться как часть механизма первичного голосового детектора.
Аналогичным образом различные дополнительные подходы для оценки фона могут выгодно и легко интегрироваться с представленными идеями.
Кодек G.718 в соответствии со стандартами 3GPP2 используется в качестве основы для варианта осуществления, представленного ниже в настоящем документе. Подробное описание связанных частей может быть найдено, например, в опубликованной международной патентной заявке WO 2009/000073 A1.
Фиг. 6 показывает блок-схему звуковой системы связи в соответствии с международной патентной заявкой WO 2009/000073 A1, включающую в себя препроцессор 601, спектральный анализатор 602, детектор 603 звуковой активности, блок 604 оценки шума, дополнительный уменьшитель 605 шума, блок 606 LP анализатора и отслеживания высоты тона, модуль 607 обновления оценки энергии шума, сигнальный классификатор 608 и звуковой кодировщик 609. Обнаружение звуковой активности (первая стадия классификации сигнала) выполняется в детекторе 603 звуковой активности, использующем оценки энергии шума, вычисленные в предыдущем фрейме. Выход детектора 603 звуковой активности является двоичной переменной, которая далее используется кодировщиком 609 и которая определяет, кодируется ли текущий фрейм как активный или как неактивный.
Модуль 603 «SAD на основе SNR» является модулем, в котором могут быть реализованы варианты осуществления настоящего изобретения. В настоящий момент представленный вариант осуществления покрывает только широкополосную цепочку сигналов, оцифрованную с частотой 16 кГц, но подобная модификация также была бы выгодна для узкополосной цепочки сигналов, оцифрованной с частотой 8 кГц, или для любых других частот дискретизации.
В одном варианте осуществления, основанном на принципах, представленных в документе WO 2011/049516 A1, исходный VAD из документа WO 2009/000073 A1 (VAD 1) используется в качестве первого VAD, генерирующего сигналы localVAD и vad_flag. Этот сигнал localVAD используется в данном описании в качестве сигнала VAD_prim 213, на основе которого делается оценка краткосрочной активности.
Дополнительный VAD (VAD 2) также основан на документе WO 2009/000073 A1, но достигается путем использования модификаций для оценки фонового шума и SAD на основе SNR. Фиг. 7 показывает блок-схему для второго VAD. Эта блок-схема показывает препроцессор 701, спектральный анализатор 702, модуль 703 «SAD на основе SNR», блок 704 оценки шума, дополнительный уменьшитель 705 шума, блок 706 LP анализатора и отслеживания высоты тона, модуль 707 обновления оценки энергии шума, сигнальный классификатор 708 и звуковой кодировщик 709.
Эта блок-схема также показывает первичные и окончательные решения VAD для VAD 2, localVAD_he 710 и vad_flag_he 711, соответственно. Сигналы localVAD_he 710 и vad_flag_he 711 используются в первичном голосовом детекторе VAD1 для производства сигнала localVAD.
Для этого варианта осуществления следующие переменные добавляются к состоянию кодировщика (Encoder_State):
Все эти состояния должны быть обнулены во время инициализации, например, это может быть сделано в подпрограмме wb_vad_init().
Далее обновляются признаки краткосрочной и долгосрочной активности, что должно быть сделано в конце обработки для каждого фрейма. Это может быть сделано путем добавления следующего кода в подходящем исходном файле:
Здесь переменная st указывает на выделенную переменную Encoder_State в кодировщике. Таким образом, для следующего фрейма переменная состояния st->vad_flag_cnt_50 будет содержать долгосрочную активность окончательного решения в форме количества фреймов, которые являются активными в пределах последних 50 фреймов, а переменная состояния st->vad_prim_cnt_16 будет содержать краткосрочную первичную активность в форме количества основных активных фреймов внутри последних 16 фреймов. Длина памяти краткосрочной активности, 16 фреймов, и длина памяти долгосрочной активности, 50 фреймов, являются значениями, используемыми в этом конкретном варианте осуществления. Эти цифры являются типичными значениями, которые могут использоваться в рабочей реализации, но абсолютные значения не являются критическими. Следовательно, эти числа могут быть адаптированы в различных типах реализаций, например, как подстройка свойств хвостов сигнала. Обычно длина памяти долгосрочной активности больше, чем длина памяти краткосрочной активности, и предпочтительно значительно больше, как в вышеприведенном примере. В типичном варианте осуществления соотношение между длиной памяти долгосрочной активности и длиной памяти краткосрочной активности находится в пределах от 2,5 до 5. Также это соотношение может быть адаптировано к различным типам реализаций, где ожидается частое присутствие различных типов звука.
Код для принятия решения о длине добавляемых хвостов сигнала hangover_short может быть реализован с использованием следующей модификации кода, где:
lp_snr является низкочастотной отфильтрованной оценкой SNR;
th_clean представляет собой порог SNR, используемый для принятия решения о том, является ли вход чистой речью;
thr1 представляет собой расчетный порог для первичного детектора.
Далее следует код, который необходим для адаптации хвостов сигнала, используемых для прерывистой передачи, hangover_short_dtx.
Также здесь имеется ряд заданных чисел, которые следует рассматривать как переменные проекта. Эти числа, следовательно, также могут адаптироваться в различных типах реализаций, например, как настройка свойств хвостов сигнала.
Код для реализации фактических хвостов сигнала может быть сделан со следующей модификацией:
flag - окончательное решение VAD, включая хвосты сигнала;
localVAD - первичное решение;
snr_sum - признак VAD в форме оценки SNR поддиапазона;
st->nb_active_frames - количество последовательных активных фреймов (первичных решений);
st->hangover_cnt - счетчик для используемых хвостовых фреймов.
Это модифицируется на следующее для того, чтобы включить новое решение VAD, которое будет использоваться для прерывистой передачи, vad_flag_dtx, используя определенную выше адаптацию хвостов сигнала прерывистой передачи hangover_short_dtx, что добавляет следующие переменные:
flag_dtx - окончательное решение VAD, которое также включает в себя специфичные для прерывистой передачи хвосты сигнала;
st->hangover_cnt_dtx - счетчик для количества хвостовых фреймов, используемых для прерывистой передачи.
С использованием признаков краткосрочной активности первичного решения и долгосрочной активности окончательного решения можно более конкретно добавлять дополнительные хвосты сигнала внутри речевых пакетов и в конце речевого пакета, и тем самым сократить отсечение речи, в частности для высокоэффективных VAD.
Долгосрочная активность окончательного решения также позволяет добавлять хвосты сигнала к кратковременным пакетам после более длинного речевого пакета, что уменьшает риск отсечения невокализированных концов со взрывными артефактами.
С использованием признаков активности становится возможным расширить хвосты сигнала на сегментах с уже высокой речевой активностью. Это обеспечивает более длительное расширение без риска существенного увеличения общей активности.
С использованием дополнительных признаков, представленных выше, возможно дальнейшее усовершенствование, который делает возможным расширение хвостов сигнала даже в более ограниченных условиях, таких как низкий уровень речи.
С использованием более агрессивного SAD может быть легче удалять любое отсечение речи путем добавления некоторого расширения хвостов сигнала, в частности, если это может быть сделано более конкретно для сегментов с уже высокой активностью. Это решение может быть легче настраиваемым, чем попытка перенастроить решение, которое основано на нескольких SAD, работающих параллельно.
Варианты осуществления, описанные выше, должны пониматься как небольшое количество иллюстративных примеров представленных идей. Специалистам в данной области техники будет понятно, что различные модификации, комбинации и изменения могут быть применены к этим вариантам осуществления без отступлений от общей области охвата представленных вариантов осуществления. В частности, различные части решений в различных вариантах осуществления могут быть объединены в других конфигурациях, если это технически возможно.
название | год | авторы | номер документа |
---|---|---|---|
СПОСОБ И УСТРОЙСТВО ДЛЯ ОБНАРУЖЕНИЯ ГОЛОСОВОЙ АКТИВНОСТИ | 2018 |
|
RU2768508C2 |
СПОСОБ И УСТРОЙСТВО ДЛЯ ОБНАРУЖЕНИЯ ГОЛОСОВОЙ АКТИВНОСТИ | 2013 |
|
RU2670785C9 |
ОЦЕНКА ФОНОВОГО ШУМА В ЗВУКОВЫХ СИГНАЛАХ | 2014 |
|
RU2618940C1 |
ОЦЕНИВАНИЕ ФОНОВОГО ШУМА В АУДИОСИГНАЛАХ | 2015 |
|
RU2665916C2 |
ОЦЕНИВАНИЕ ФОНОВОГО ШУМА В АУДИОСИГНАЛАХ | 2015 |
|
RU2713852C2 |
ОЦЕНИВАНИЕ ФОНОВОГО ШУМА В АУДИОСИГНАЛАХ | 2020 |
|
RU2760346C2 |
СПОСОБ ОЦЕНКИ ФОНОВОГО ШУМА, БЛОК ОЦЕНКИ ФОНОВОГО ШУМА И МАШИНОЧИТАЕМЫЙ НОСИТЕЛЬ | 2014 |
|
RU2720357C2 |
ПОМЕХОУСТОЙЧИВАЯ КЛАССИФИКАЦИЯ РЕЖИМОВ КОДИРОВАНИЯ РЕЧИ | 2012 |
|
RU2584461C2 |
Способ получения кадра модификации речевой активности, устройство и способ обнаружения речевой активности | 2015 |
|
RU2684194C1 |
ПОВЫШЕНИЕ РАЗБОРЧИВОСТИ РЕЧИ С ПОМОЩЬЮ ЧЕТКОСТИ ГОЛОСА | 2008 |
|
RU2469423C2 |
Изобретение относится к области обнаружения голосовой активности (VAD). Техническим результатом является сокращение возможности отсечения речи в речевых пакетах за счет более конкретного добавления хвостов сигнала. Способ включает в себя создание сигнала, указывающего на первичное решение VAD, и определение необходимости добавления хвостов сигнала, определение необходимости добавления хвостов сигнала выполняется в зависимости от меры краткосрочной активности и меры долгосрочной активности. Затем создается сигнал, указывающий на окончательное решение VAD. 5 н. и 22 з.п. ф-лы, 9 ил.
1. Способ для обнаружения голосовой активности (VAD), включающий в себя:
- создание (310) сигнала, указывающего на первичное решение VAD;
- определение (320) того, должно ли выполняться добавление хвостов сигнала первичного решения VAD;
- создание (330) сигнала, указывающего на окончательное решение VAD, по меньшей мере частично зависящее от определения необходимости добавления хвостов сигнала;
причем определение необходимости добавления хвостов сигнала основано на мере краткосрочной активности и мере долгосрочной активности.
2. Способ по п. 1, в котором мера краткосрочной активности выводится из N_st последних первичных решений VAD.
3. Способ по п. 1, в котором мера долгосрочной активности выводится из последних N_lt первичных решений VAD или из последних N_lt окончательных решений VAD.
4. Способ по пп. 2 и 3, в котором N_lt больше, чем N_st.
5. Способ по пп. 1-3, в котором создание сигнала, указывающего на окончательное решение VAD, включает в себя создание двух версий окончательных решений, первого окончательного решения VAD и второго окончательного решения VAD.
6. Способ по п. 5, в котором второе окончательное решение VAD принимается без использования меры краткосрочной активности или меры долгосрочной активности.
7. Способ по п. 5, в котором мера долгосрочной активности выводится из N_lt последних вторых окончательных решений VAD.
8. Способ по п. 5, в котором первое окончательное решение VAD соответствует переменной vad_flag_dtx, а второе окончательное решение VAD соответствует переменной vad_flag.
9. Способ по п. 2, в котором мера краткосрочной активности основана на количестве активных фреймов в памяти последних первичных решений VAD.
10. Способ по п. 3, в котором мера долгосрочной активности основана на количестве активных фреймов в памяти последних окончательных решений VAD или в памяти последних первичных решений VAD.
11. Способ по п. 9 или 10, в котором активные фреймы взвешиваются в зависимости от времени нахождения активного фрейма в памяти последних решений VAD.
12. Способ по любому из пп. 1-3 и 6-10, включающий в себя добавление предопределенного количества хвостовых фреймов, если мера краткосрочной активности достигла первого предопределенного порога и мера долгосрочной активности достигла второго предопределенного порога.
13. Способ по любому из пп. 1-3 и 6-10, в котором окончательное решение VAD равно решению голосовой активности, если определено, что добавление хвостов сигнала должно быть выполнено.
14. Способ по любому из пп. 1-3 и 6-10, в котором окончательное решение VAD равно первичному решению VAD, если определено, что добавление хвостов сигнала не должно быть выполнено.
15. Устройство для обнаружения голосовой активности (VAD), включающее в себя:
- секцию (412) ввода для приема входного сигнала;
- механизм (401) первичного голосового детектора, соединенный с секцией (412) ввода, выполненный с возможностью обнаружения голосовой активности в принятом входном сигнале, а также создания сигнала, указывающего на первичное решение VAD, связанное с принятым входным сигналом;
- блок (402) добавления хвостов сигнала, соединенный с механизмом (401) первичного голосового детектора, выполненный с возможностью определения необходимости добавления хвостов сигнала первичного решения VAD, а также создания сигнала, указывающего на окончательное решение VAD, по меньшей мере частично зависящее от определения необходимости добавления хвостов сигнала; и
- по меньшей мере одно из:
блока (403) оценки краткосрочной активности, соединенного с входом блока (402) добавления хвостов сигнала, и
блока (404) оценки долгосрочной активности, соединенного с выходом блока (402) добавления хвостов сигнала;
причем блок (402) добавления хвостов сигнала дополнительно соединяется с выходом блока (403) оценки краткосрочной активности и блока (404) оценки долгосрочной активности и выполнен с возможностью определения необходимости добавления хвостов сигнала в зависимости от меры краткосрочной активности и меры долгосрочной активности.
16. Устройство по п. 15, в котором блок (403) оценки краткосрочной активности выполнен с возможностью определения меры краткосрочной активности по последним N_st первичным решениям VAD.
17. Устройство по п. 15, в котором блок (404) оценки долгосрочной активности выполнен с возможностью определения меры долгосрочной активности по последним N_lt первичным решениям VAD или по последним N_lt окончательным решениям VAD.
18. Устройство по любому из пп. 15-17, в котором блок (402) добавления хвостов сигнала выполнен с возможностью создания двух версий окончательных решений, первого окончательного решения VAD и второго окончательного решения VAD.
19. Устройство по п. 18, в котором второе окончательное решение VAD принимается без использования меры краткосрочной активности или меры долгосрочной активности.
20. Устройство по п. 18, в котором блок (404) оценки долгосрочной активности выполнен с возможностью определения меры долгосрочной активности по последним N_lt вторым окончательным решениям VAD.
21. Устройство по п. 15, включающее в себя память первичных решений VAD и окончательных решений VAD, причем устройство дополнительно включает в себя счетчики активных фреймов в упомянутой памяти первичных решений VAD и окончательных решений VAD.
22. Устройство по п. 21, в котором по меньшей мере одна из меры краткосрочной активности и меры долгосрочной активности основана на количестве активных фреймов в упомянутой памяти первичных решений VAD и окончательных решений VAD.
23. Устройство по любому из пп. 15-17 и 19-22, в котором блок (402) добавления хвостов сигнала дополнительно выполнен с возможностью добавления предопределенного количества хвостовых фреймов, если мера краткосрочной активности достигла первого предопределенного порога и мера долгосрочной активности достигла второго предопределенного порога.
24. Устройство по любому из пп. 15-17 и 19-22, в котором окончательное решение VAD равно решению голосовой активности, если определено, что добавление хвостов сигнала должно быть выполнено, и окончательное решение VAD равно первичному решению VAD, если определено, что добавление хвостов сигнала не должно быть выполнено.
25. Кодек для кодирования голоса или звука, включающий в себя устройство в соответствии с по меньшей мере одним из пп. 15-24.
26. Компьютерно-читаемый носитель, содержащий компьютерно-читаемые блоки кода, которые при их выполнении на устройстве предписывают устройству:
- создавать (310) сигнал, указывающий на первичное решение VAD;
- определять (320), должно ли быть выполнено добавление хвостов сигнала первичного решения VAD;
- создавать (330) сигнал, указывающий на окончательное решение VAD, по меньшей мере частично зависящее от определения необходимости добавления хвостов сигнала;
причем определение необходимости добавления хвостов сигнала основано на мере краткосрочной активности и мере долгосрочной активности.
27. Устройство (500) для обнаружения голосовой активности (VAD), включающее в себя:
процессор (510); и
память (520), хранящую компоненты (501, 502, 503, 504, 505) программного обеспечения, причем процессор (510) выполнен с возможностью выполнения:
- компонента (501) программного обеспечения для создания сигнала, указывающего на первичное решение VAD;
- компонента (502) программного обеспечения для определения необходимости добавления хвостов сигнала первичного решения VAD;
- компонента (503) программного обеспечения для создания сигнала, указывающего на окончательное решение VAD, по меньшей мере частично зависящее от определения необходимости добавления хвостов сигнала;
- компонента (504) программного обеспечения для определения меры краткосрочной активности по последним N_st первичным решениям VAD и/или компонента (505) программного обеспечения для определения меры долгосрочной активности по последним N_lt окончательным решениям VAD.
Приспособление для суммирования отрезков прямых линий | 1923 |
|
SU2010A1 |
Приспособление для точного наложения листов бумаги при снятии оттисков | 1922 |
|
SU6A1 |
Способ приготовления лака | 1924 |
|
SU2011A1 |
Аппарат для очищения воды при помощи химических реактивов | 1917 |
|
SU2A1 |
Аппарат для очищения воды при помощи химических реактивов | 1917 |
|
SU2A1 |
Авторы
Даты
2017-01-30—Публикация
2013-08-30—Подача