dastapov: (Default)
Dmitry Astapov ([personal profile] dastapov) wrote2010-03-12 12:11 pm
Entry tags:

Real-time анализ речи

Анонимус ... гхм ... доставил такой вот вопрос: "Увидел на просторах интернета такой рассказ,
интересует на сколько это правда и может соответствоввать реальности?

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


Кого интерисуют подробности, скажу, что система создает запись/анализ спектра,
только в момент когда вы звоните, если звонят вам аппаратура отдыхает
Запись происходит постоянно, и только по ключевам словам
(типа: алло, говорите, здравствуйте и тд ,всего неболее 50 ключевых слов).
Анализ спектра (условно говоря), производится по мере необходимости, но на
практике постоянно, тк и должников надо выявлять и разных жуликов тоже полно.
Технология этого очень проста, вы произносите слово - срабатывает команда
типа "копировать" это слово копируется и обрабатывается - далее создается
аудио подпись - её автоматически обрабатывает система, и вся эта муть
заноситься в лог, а дальше с ними работают спецы из службы контроля.
Данная штука несертифицирована у нас пока, и соответственно неимеет
силу докозательства, в суде к примеру, поэтому используется исключительно
для внутреннего употребления службами безопастности опсосов.
"

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

  1. Голосовая подпись - известный системе человек говорит заранее согласованную фразу. Задача: сличить произнесенное с эталонным образцом.
  2. Сопоставление голоса человека с ранее сделанной записью. Задача: существует "эталонная модель" голоса человека и запись речи другого человека. Задача: установить, это два разных человека или один и тот же. Фактически, вариация голосовой подписи, но без заранее согласованной фразы.
  3. Идентификация человека по голосу. Задача: имея запись разговора, выбрать из базы "эталонных голосов" наиболее похожий (или несколько).
  4. Распознавание голосовых команд конкретного человека. Задача: из базы записанных речевых отрывков выбрать тот, который наиболее похож на произнесенное слово (или короткую команду).
  5. Распознавание голосовых команд произвольного человека. См. "распознавание команд" выше, но записанных эталонных отрывков не существует. Фактически, речь идет о распознавании голоса без предварительного обучения и сопоставлении распознанного с ограниченным набором слов-команд.
  6. Распознавание голоса конкретного человека. Задача: превращать речь конкретного человека в, грубо говоря, текст.
  7. Распознавание голоса произвольного человека. Задача: превращать речь произвольного человека в текст, как правило - без предварительного обучения.


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

Для проверки голосовой подписи не надо разбирать сказанное на слова или иные части. Достаточно посчитать какие-то интегральные характеристики услышанного, сопоставить с образцом и выдать бинарный ответ ("Да"/"Нет"). Более того, исходя из задачи, можно (и даже нужно) достаточно безболезненно трактовать любую значительную неопределенность как ответ "Нет".

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

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

Распознавание голосовых команд (известного заранее или произвольного человека) в чем-то похоже на выбор самой похожей записи голоса из "банка голосов". Я рискну предположить, что в этих двух задачах используются разные характеристики услышанного и разные меры подобия, а в остальном они очень похожи.

Распознавание голоса конкретного человека требует разделения услышанного на слова, слоги, звуки. Сложность задачи резко повышается. Чтобы улучшить конечный результат, все системы распознавания голоса "тренируются" с участием конкретного человека - его просят произносить определенные звуки, слоги, слова и используют их характеристики в разделении голосового потока на части. Затем разобранный таким образом поток звуков необходимо преобразовать в слова, а слова - в текст, при этом как можно больше неоднозначностей распознавания должно устраняться автоматически на основании синтаксического анализа получаемых предложений. Обе подзадачи - и разделение записи на компоненты, и их распознавание и составление связанного текста - очень ресурсоемки.

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

Теперь вернемся к сути вопроса.

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

Таким образом, чтобы сделать "сигнатуру голоса", которая относительно легко вычисляется и позволяет выбирать абонента из большой абонентской базы, необходимо три условия:

  • Все абоненты должны в какой-то момент времени зачитать один и тот же текст-маркер, желательно - без помех, так свойственных GSM - это позволит создать базу "эталонов"
  • Все абоненты должны время от времени произносить этот же текст-маркер в ходе разговора - это позволит получать информацию для сличения с базой эталонов.
  • Произнесенный маркер надо уметь вычленять из разговора без подробного анализа структуры произнесенного - иначе не хватит никаких ресурсов. Идеально - чтобы каждый разговор начинался с сигнала "пиииип!" установленной частоты (а лучше - трех), после чего абонент четко и внятно произносит текст-маркер, после чего опять следует "пииип!" и уже затем - весь остальной разговор ;)


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

Итого, вердикт: конспирологическая фигня. Слишком сложная система для решения описанных задач.

Ну, и я могу сказать, что мне в моем опыте никогда не попадалось ничего подобного - но кто ж мне поверит, я наверняка Куплен Системой :)

PS:Я знаю, что меня читают люди, которые "в материале", т.к. разрабатывают и внедряют подобные системы. Надеюсь, они что-то добавят от себя.

[identity profile] xoma-xoma.livejournal.com 2010-03-12 10:44 am (UTC)(link)
Новое слово об "Эшелоне"? ;)

[identity profile] thenexus6.livejournal.com 2010-03-12 10:44 am (UTC)(link)
Вот прямо сейчас в одной стране готовят к сдаче систему для реалтайм идентификации голоса известных системе людей. То есть, пункт 3 разработан (у нас в стране, кстати) и успешно реализован. Впрочем, судя по стоимости их проекта, нам, как странам бывшего СССР, о Большом Брате пока можно не беспокоиться.

[identity profile] djdance.livejournal.com 2010-03-12 10:58 am (UTC)(link)
вот уже 3 года, как это не очень ресурсоемко, по крайней мере audio fingerprint, всё запатентовали и внедрили. А вот по лексемам и прочему распознаванию РЕЧИ - тут я не в теме, но судя по отсутствию вменяемых программных продуктов - дело пока швах.

[identity profile] rayden-nvl.livejournal.com 2010-03-12 11:02 am (UTC)(link)
Простейшие автоматические системы, стоящие в саппорте у тех же провайдеров, распознают ключевые слова моих ответов на их вопросы. И это с учетом того, что я говорю их на неродном мне языке. Значит не всё так уж плохо :-)
wizzard: (Default)

[personal profile] wizzard 2010-03-12 11:09 am (UTC)(link)
а можно ли что-то ковырять уже по результатам предварительного анализа голоса, проведенного кодеком?

мне почему-то кажется, что зто может бть намного менее затратно, чем анализировать raw waveform.

[identity profile] dezelent.livejournal.com 2010-03-12 12:04 pm (UTC)(link)
И вообще, продукция паяльниковых заводов, в среднем наилучий дешифратор.

[identity profile] angry-elf.livejournal.com 2010-03-12 01:03 pm (UTC)(link)
Первое слово в эфире с вероятностью в 99% одно из парочки типа "Алло", "Да", "Слушаю". Годится на маркер? :)

[identity profile] lionet.livejournal.com 2010-03-12 01:34 pm (UTC)(link)
Для полноты картины нужно заметить, что войсмейлы, приходящие, например, на Blackberry, автоматически распознаётся по типу #7 и в виде текстового дампа того, что человек сказал, отображается на экране. Это работает уже сейчас, худо-ли бедно-ли.

[identity profile] lionet.livejournal.com 2010-03-12 01:35 pm (UTC)(link)
Для полноты картины нужно добавить, что служба Google 411 распознаёт команды, данные от человека "я в сан-франциско, хочу пиццу" и даёт список телефонов пиццерий рядом с говорящим. Происходит распознование голоса по типу #5.

[identity profile] lionet.livejournal.com 2010-03-12 02:09 pm (UTC)(link)
Для полноты картины нужно сказать, что сервис YouTube начал автоматически генерировать captions для роликов на английском языке. По типу #7.

[identity profile] vp.livejournal.com 2010-03-12 02:19 pm (UTC)(link)
факт в том, что мы узнаем людей по голосу за первые 3..5 сек, по любой фразе.
Какие при этом мозг использует критерии - совершенно непонятно. Но распознает же.

[identity profile] olegy.livejournal.com 2010-03-12 02:33 pm (UTC)(link)
Еще в 80-х годах на АТС стояли системы, позволяющие по ключевым словам абонентов производить различные действия - включать многоканальный магнитофон, разъединять линию. Подозреваю, что это было что то аналоговое...
Сейчас есть коммерческие системы предотвращения утечки информации.

[identity profile] mit-idv.livejournal.com 2010-03-12 11:12 pm (UTC)(link)
Да, я "в материале". Я продукт-менеджер коммерчески продаваемой системы, решающей задачу (3). Чуть раньше разрабатывал систему, помогающую эксперту-фоноскописту решать задачу (2). Распознавание речи делает соседняя команда.

Первое, что можно добавить - это задачи:
8. "Поиск ключевых слов" - это как раз та задача, на которую ссылается исходный конспиролог. В потоке речи необходимо выявить произнесение определённого слова или фразы.
9. "Распознавание темы разговора" - отдельная задача, решающаяся принципиально другими алгоритмами. В принципе, её можно решить и через решение задач (6) и (7) с последующим анализом полученного текста. Однако, современный подход состоит в том, чтобы принимать решение сразу о теме разговора, не пытаясь подвергнуть его транскрипции.

Я бы скорректировал порядок по возрастанию сложности по моему опыту:
4 - 1 - 5 - 3 - 8 - 9 - 6 - 7.

Распознавание команд, даже не зависящее от диктора - довольно хорошо решённая задача. Упрощается она тем, что мы распознаём команду от паузы до паузы, так что количество вариантов относительно невелико. В качестве математического аппарата используются скрытые марковские модели. Эта задача довольно надёжно решена и используется с системах голосового самообслуживания (когда ты говоришь через распознавание и синтез с IVR).

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

Наш поиск ключевых слов, например, делается где-то в 8 раз быстрее реального времени на 1 вычислительном ядре типа Intel x86. Как видим, уже довольно быстро, но на всех точно не напасёшься.

Самая сложная задача - это установление дословного содержания произвольного разговора. Тот же Гугл для английского языка уже неплохо её решает (см. хотя бы проект http://labs.google.com/gaudi/), для русского же дела намного сложнее из-за плавающих ударений, множества окончаний и редукции гласных. Ещё лет 5 работать, не меньше. У нас, например, только сырые прототипы.

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

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

[identity profile] alexeyk77.livejournal.com 2010-03-13 11:55 am (UTC)(link)
Распознавание речи в общем очень интересная и очень сложная задача. И вчем-то даже безнадежная, как мне кажется. Будучи студентом грыз это гранит с утра до вечера несколько лет, диплом писал (работающую программу). Было это все во второй половине 90х. С тех пор не занимался темой. Уже тогда тогдашнее ПО типа dragon dictate на последних 486х и первых пеньках даже работало и распознавало в реалтайме, но только для английского языка. И алгоритмы были тогда все те-же, что и упоминались сейчас - скрытые марковские модели.
Но дело не в алгоритмах. Вообще одна из особенностей этой задачи в том, что мозг слышит то, что хочет или ожидает услышать, т.е. высшая нервная деятельность напрямую влияет на то что слышится физически (кажется что слышится) через обратную связь. И в отличии от распознавания картинок отличается еще и тем, что невозможно сказать, почему вот это похоже на то. Причем в каждом языке есть свои особенности, например русскому человеку китайская речь - набор мяуканий. А ведь тональность играет роль такую, которой в русском языке нет. И там, где для нас одинаково - для них абсолютно разное. Т.е. невозможность отстраненной рефлексии сильно усложняет.
Посему с учетом возможностей пришлось сосредоточится на алгоритмах предобработки речевого сигнала, выделения вектора признаков, годного для дальнейшего расколбаса.

[identity profile] spiridonov.livejournal.com 2010-03-14 09:55 am (UTC)(link)
По задаче 7:
Сервис "все ли сделал" спокойно с голоса по мобильнику преобразует в текст сообщения для дальнейшей передачи по e-mail/SMS

[identity profile] asc-ii.livejournal.com 2010-03-15 10:38 pm (UTC)(link)
даже без сложного анализа можно вынести подобный вердикт, просто на основании информации о том, что городская телефонная связь рубит частоты выше 3,5кГц, и GSM недалеко ушёл
а фонемы, содержащие шипящие и свистящие согласные, основную массу информации несут как раз выше, от 3 до 8 кГц
поэтому даже человек далеко не всегда с первого раза по телефону узнаёт голос человека, с которым знаком лично, да и впоследствии узнавание происходит скорее по паттернам речи и интонациям, нежели по частотным характеристикам

ыыы. случайно попал на ваш пост

[identity profile] yatagarasu.livejournal.com 2010-07-09 02:31 pm (UTC)(link)
не вчитывался, но впринципе согласен.
хотя вот буквально позавчера по вестям-2 был репортаж про такую систему.
Так что это уже никак не конспирологическая фигня, думайу это скорее инструмент давления на массы.