Real-time анализ речи
Анонимус ... гхм ... доставил такой вот вопрос: "Увидел на просторах интернета такой рассказ,
интересует на сколько это правда и может соответствоввать реальности?
Специальному оборудованию достаточно всего пары фраз сказанные
вами, чтобы создать своего рода цифровую подпись, каторая вопщем
и выглядит как набор цифр (типа: 2764536172645367), и аккуратно записана
в базу в виде: тел.№ 82121234567=2764536172645367,после аппаратуре
достаточно пары минут чтоб обнаружить ваш след и выдать полный
список номеров с которых вы звонили.
Кого интерисуют подробности, скажу, что система создает запись/анализ спектра,
только в момент когда вы звоните, если звонят вам аппаратура отдыхает
Запись происходит постоянно, и только по ключевам словам
(типа: алло, говорите, здравствуйте и тд ,всего неболее 50 ключевых слов).
Анализ спектра (условно говоря), производится по мере необходимости, но на
практике постоянно, тк и должников надо выявлять и разных жуликов тоже полно.
Технология этого очень проста, вы произносите слово - срабатывает команда
типа "копировать" это слово копируется и обрабатывается - далее создается
аудио подпись - её автоматически обрабатывает система, и вся эта муть
заноситься в лог, а дальше с ними работают спецы из службы контроля.
Данная штука несертифицирована у нас пока, и соответственно неимеет
силу докозательства, в суде к примеру, поэтому используется исключительно
для внутреннего употребления службами безопастности опсосов."
Начать хочется вот с чего - есть несколько внешне похожих задач, которые существенно различаются в способах решения, условиях применимости, надежности получаемых результатов и так далее:
Я перечислил задачи в, как мне кажется, порядке увеличения сложности. Почему же эта самая сложность варьируется от задачи к задаче? Что облегчает решение более простых задач?
Для проверки голосовой подписи не надо разбирать сказанное на слова или иные части. Достаточно посчитать какие-то интегральные характеристики услышанного, сопоставить с образцом и выдать бинарный ответ ("Да"/"Нет"). Более того, исходя из задачи, можно (и даже нужно) достаточно безболезненно трактовать любую значительную неопределенность как ответ "Нет".
Для того, чтобы сличить две записи и установить, разные ли на них люди или нет, в принципе тоже достаточно каких-то интегральных характеристик, но они должны описывать не запись в целом, а какие-то ее характеристики: тембр голоса, ритм речи, особенности произнесения звонких/ударных звуков и т.п. Сравнение по-прежнему делается с одним образцом, что существенно облегчает окончательный анализ - функция сравнения с имеющимся образцом может быть относительно несложной.
Если же образцов много, и надо выбрать из них самый похожий, то нам понадобится какая-то метрика над пространством всех возможных голосов - способ превратить набор характеристик двух записей в какое-то число (или несколько чисел), описывающих "степень подобия". Разработка метрики сама по себе может быть достаточно нетривиальной задачей.
Распознавание голосовых команд (известного заранее или произвольного человека) в чем-то похоже на выбор самой похожей записи голоса из "банка голосов". Я рискну предположить, что в этих двух задачах используются разные характеристики услышанного и разные меры подобия, а в остальном они очень похожи.
Распознавание голоса конкретного человека требует разделения услышанного на слова, слоги, звуки. Сложность задачи резко повышается. Чтобы улучшить конечный результат, все системы распознавания голоса "тренируются" с участием конкретного человека - его просят произносить определенные звуки, слоги, слова и используют их характеристики в разделении голосового потока на части. Затем разобранный таким образом поток звуков необходимо преобразовать в слова, а слова - в текст, при этом как можно больше неоднозначностей распознавания должно устраняться автоматически на основании синтаксического анализа получаемых предложений. Обе подзадачи - и разделение записи на компоненты, и их распознавание и составление связанного текста - очень ресурсоемки.
Распознавание голоса произвольного человека отличается от распознавания голоса конкретного человека тем, что нет никакого способа облегчить разбор голосового потока за счет знания особенностей произнесения говорящим отдельных звуков, слогов и т.п.
Теперь вернемся к сути вопроса.
Вряд ли получится идентифицировать людей на основании каких-то характеристик "их голоса вообще" - слишком велико количество абонентов, слишком много в них людей с похожими голосами. Следовательно, понадобится какой-то характерный текст ("Я Линус Торвальдс, и я произношу слово 'Linux' как 'Линукс'"), который будет использоваться в качестве образца для сравнения.
Таким образом, чтобы сделать "сигнатуру голоса", которая относительно легко вычисляется и позволяет выбирать абонента из большой абонентской базы, необходимо три условия:
В вопросе высказанно предположение, что "система анализа спектра" использует определенные слова для того, чтобы начать анализ, и делается это якобы для экономии ресурсов. На деле же окажется обратное - возможность распознавать в речи произвольного человека конкретные слова является существенно более сложной задачей, чем вычисление какой-то интегральной характеристики "куска аудиозаписи".
Итого, вердикт: конспирологическая фигня. Слишком сложная система для решения описанных задач.
Ну, и я могу сказать, что мне в моем опыте никогда не попадалось ничего подобного - но кто ж мне поверит, я наверняка Куплен Системой :)
PS:Я знаю, что меня читают люди, которые "в материале", т.к. разрабатывают и внедряют подобные системы. Надеюсь, они что-то добавят от себя.
интересует на сколько это правда и может соответствоввать реальности?
Специальному оборудованию достаточно всего пары фраз сказанные
вами, чтобы создать своего рода цифровую подпись, каторая вопщем
и выглядит как набор цифр (типа: 2764536172645367), и аккуратно записана
в базу в виде: тел.№ 82121234567=2764536172645367,после аппаратуре
достаточно пары минут чтоб обнаружить ваш след и выдать полный
список номеров с которых вы звонили.
Кого интерисуют подробности, скажу, что система создает запись/анализ спектра,
только в момент когда вы звоните, если звонят вам аппаратура отдыхает
Запись происходит постоянно, и только по ключевам словам
(типа: алло, говорите, здравствуйте и тд ,всего неболее 50 ключевых слов).
Анализ спектра (условно говоря), производится по мере необходимости, но на
практике постоянно, тк и должников надо выявлять и разных жуликов тоже полно.
Технология этого очень проста, вы произносите слово - срабатывает команда
типа "копировать" это слово копируется и обрабатывается - далее создается
аудио подпись - её автоматически обрабатывает система, и вся эта муть
заноситься в лог, а дальше с ними работают спецы из службы контроля.
Данная штука несертифицирована у нас пока, и соответственно неимеет
силу докозательства, в суде к примеру, поэтому используется исключительно
для внутреннего употребления службами безопастности опсосов."
Начать хочется вот с чего - есть несколько внешне похожих задач, которые существенно различаются в способах решения, условиях применимости, надежности получаемых результатов и так далее:
- Голосовая подпись - известный системе человек говорит заранее согласованную фразу. Задача: сличить произнесенное с эталонным образцом.
- Сопоставление голоса человека с ранее сделанной записью. Задача: существует "эталонная модель" голоса человека и запись речи другого человека. Задача: установить, это два разных человека или один и тот же. Фактически, вариация голосовой подписи, но без заранее согласованной фразы.
- Идентификация человека по голосу. Задача: имея запись разговора, выбрать из базы "эталонных голосов" наиболее похожий (или несколько).
- Распознавание голосовых команд конкретного человека. Задача: из базы записанных речевых отрывков выбрать тот, который наиболее похож на произнесенное слово (или короткую команду).
- Распознавание голосовых команд произвольного человека. См. "распознавание команд" выше, но записанных эталонных отрывков не существует. Фактически, речь идет о распознавании голоса без предварительного обучения и сопоставлении распознанного с ограниченным набором слов-команд.
- Распознавание голоса конкретного человека. Задача: превращать речь конкретного человека в, грубо говоря, текст.
- Распознавание голоса произвольного человека. Задача: превращать речь произвольного человека в текст, как правило - без предварительного обучения.
Я перечислил задачи в, как мне кажется, порядке увеличения сложности. Почему же эта самая сложность варьируется от задачи к задаче? Что облегчает решение более простых задач?
Для проверки голосовой подписи не надо разбирать сказанное на слова или иные части. Достаточно посчитать какие-то интегральные характеристики услышанного, сопоставить с образцом и выдать бинарный ответ ("Да"/"Нет"). Более того, исходя из задачи, можно (и даже нужно) достаточно безболезненно трактовать любую значительную неопределенность как ответ "Нет".
Для того, чтобы сличить две записи и установить, разные ли на них люди или нет, в принципе тоже достаточно каких-то интегральных характеристик, но они должны описывать не запись в целом, а какие-то ее характеристики: тембр голоса, ритм речи, особенности произнесения звонких/ударных звуков и т.п. Сравнение по-прежнему делается с одним образцом, что существенно облегчает окончательный анализ - функция сравнения с имеющимся образцом может быть относительно несложной.
Если же образцов много, и надо выбрать из них самый похожий, то нам понадобится какая-то метрика над пространством всех возможных голосов - способ превратить набор характеристик двух записей в какое-то число (или несколько чисел), описывающих "степень подобия". Разработка метрики сама по себе может быть достаточно нетривиальной задачей.
Распознавание голосовых команд (известного заранее или произвольного человека) в чем-то похоже на выбор самой похожей записи голоса из "банка голосов". Я рискну предположить, что в этих двух задачах используются разные характеристики услышанного и разные меры подобия, а в остальном они очень похожи.
Распознавание голоса конкретного человека требует разделения услышанного на слова, слоги, звуки. Сложность задачи резко повышается. Чтобы улучшить конечный результат, все системы распознавания голоса "тренируются" с участием конкретного человека - его просят произносить определенные звуки, слоги, слова и используют их характеристики в разделении голосового потока на части. Затем разобранный таким образом поток звуков необходимо преобразовать в слова, а слова - в текст, при этом как можно больше неоднозначностей распознавания должно устраняться автоматически на основании синтаксического анализа получаемых предложений. Обе подзадачи - и разделение записи на компоненты, и их распознавание и составление связанного текста - очень ресурсоемки.
Распознавание голоса произвольного человека отличается от распознавания голоса конкретного человека тем, что нет никакого способа облегчить разбор голосового потока за счет знания особенностей произнесения говорящим отдельных звуков, слогов и т.п.
Теперь вернемся к сути вопроса.
Вряд ли получится идентифицировать людей на основании каких-то характеристик "их голоса вообще" - слишком велико количество абонентов, слишком много в них людей с похожими голосами. Следовательно, понадобится какой-то характерный текст ("Я Линус Торвальдс, и я произношу слово 'Linux' как 'Линукс'"), который будет использоваться в качестве образца для сравнения.
Таким образом, чтобы сделать "сигнатуру голоса", которая относительно легко вычисляется и позволяет выбирать абонента из большой абонентской базы, необходимо три условия:
- Все абоненты должны в какой-то момент времени зачитать один и тот же текст-маркер, желательно - без помех, так свойственных GSM - это позволит создать базу "эталонов"
- Все абоненты должны время от времени произносить этот же текст-маркер в ходе разговора - это позволит получать информацию для сличения с базой эталонов.
- Произнесенный маркер надо уметь вычленять из разговора без подробного анализа структуры произнесенного - иначе не хватит никаких ресурсов. Идеально - чтобы каждый разговор начинался с сигнала "пиииип!" установленной частоты (а лучше - трех), после чего абонент четко и внятно произносит текст-маркер, после чего опять следует "пииип!" и уже затем - весь остальной разговор ;)
В вопросе высказанно предположение, что "система анализа спектра" использует определенные слова для того, чтобы начать анализ, и делается это якобы для экономии ресурсов. На деле же окажется обратное - возможность распознавать в речи произвольного человека конкретные слова является существенно более сложной задачей, чем вычисление какой-то интегральной характеристики "куска аудиозаписи".
Итого, вердикт: конспирологическая фигня. Слишком сложная система для решения описанных задач.
Ну, и я могу сказать, что мне в моем опыте никогда не попадалось ничего подобного - но кто ж мне поверит, я наверняка Куплен Системой :)
PS:Я знаю, что меня читают люди, которые "в материале", т.к. разрабатывают и внедряют подобные системы. Надеюсь, они что-то добавят от себя.
no subject
no subject
(no subject)
(no subject)
(no subject)
(no subject)
no subject
(no subject)
no subject
no subject
мне почему-то кажется, что зто может бть намного менее затратно, чем анализировать raw waveform.
no subject
no subject
(no subject)
(no subject)
(no subject)
(no subject)
no subject
no subject
no subject
(no subject)
(no subject)
(no subject)
no subject
Какие при этом мозг использует критерии - совершенно непонятно. Но распознает же.
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
no subject
Сейчас есть коммерческие системы предотвращения утечки информации.
(no subject)
(no subject)
(no subject)
(Anonymous) - 2010-04-20 07:21 (UTC) - Expand(no subject)
(no subject)
(no subject)
no subject
Первое, что можно добавить - это задачи:
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. Лучшие в мире алгоритмы разрабатывают в Чехии, системы промышленного масштаба делаем мы, испанцы и итальянцы. Ещё есть американо-израильская сильная компания. Всё это не секреты.
(no subject)
(no subject)
(no subject)
no subject
Но дело не в алгоритмах. Вообще одна из особенностей этой задачи в том, что мозг слышит то, что хочет или ожидает услышать, т.е. высшая нервная деятельность напрямую влияет на то что слышится физически (кажется что слышится) через обратную связь. И в отличии от распознавания картинок отличается еще и тем, что невозможно сказать, почему вот это похоже на то. Причем в каждом языке есть свои особенности, например русскому человеку китайская речь - набор мяуканий. А ведь тональность играет роль такую, которой в русском языке нет. И там, где для нас одинаково - для них абсолютно разное. Т.е. невозможность отстраненной рефлексии сильно усложняет.
Посему с учетом возможностей пришлось сосредоточится на алгоритмах предобработки речевого сигнала, выделения вектора признаков, годного для дальнейшего расколбаса.
no subject
Сервис "все ли сделал" спокойно с голоса по мобильнику преобразует в текст сообщения для дальнейшей передачи по e-mail/SMS
(no subject)
(no subject)
no subject
а фонемы, содержащие шипящие и свистящие согласные, основную массу информации несут как раз выше, от 3 до 8 кГц
поэтому даже человек далеко не всегда с первого раза по телефону узнаёт голос человека, с которым знаком лично, да и впоследствии узнавание происходит скорее по паттернам речи и интонациям, нежели по частотным характеристикам
ыыы. случайно попал на ваш пост
хотя вот буквально позавчера по вестям-2 был репортаж про такую систему.
Так что это уже никак не конспирологическая фигня, думайу это скорее инструмент давления на массы.