Жизнь по понятиям
АрхивОбсуждая проблемы распознавания речи с разными людьми, я столкнулся с полярными точками зрения. Одни говорят: ну что тут обсуждать, вон, фирма IBM еще в 1996 году оснастила такой программой свою операционную систему OS/2 Warp. То, что эта программа смогла опознать без обучения лишь одно их слово "help", их вполне удовлетворило. Подразумевалось, что еще немного усилий программистов, еще чуть больше мощности и памяти компьютеров - и система начнет легко понимать слитную речь.
Другие считают, что вся эта затея бессмысленна: даже если компьютер и начнет понимать отдельные слова, он будет постоянно ошибаться, и это сведет к нулю те преимущества, которые дает речевой канал обмена информацией. По их представлениям, вычислительные системы никогда не смогут приблизиться к человеку по разуму, поэтому заниматься этой проблемой не нужно.
Мне представляется, что пора бы внести в этот вопрос больше ясности, а заодно рассмотреть, какое практическое значение для людей имеет решение проблем распознавания речи. То, что я изложу ниже, не претендует на истину, но, возможно, послужит ступенью на пути к ней.
Первое, что я хотел бы сказать: все известные на сегодня программы распознавания вряд ли могут служить основой для радикального решения проблемы распознавания слитной речи. Имеется один принципиальный недостаток таких программ: результатом их работы должно быть текстовое сообщение. Исходя из этого, программы пытаются угадывать отдельные слова и фразы, а потом сопоставлять и корректировать их с целью извлечения смысла. Понятно, что эмоциональная окраска фразы (интонация, паузы, ударения и прочее), несущая зачастую значительную (а иногда - основную) часть информации, пропадает, и программа получает усеченное, рваное сообщение. Более того, эта эмоциональная окраска мешает распознаванию, поскольку изменяет звучание распознаваемой речи.
Если разработчики программ призовут на помощь психологов и физиологов и создадут надстройку, умеющую анализировать эмоциональный контекст речи и корректировать текст в соответствии с интонациями, это будет большим шагом вперед. Но здесь они столкнутся с проблемой: как сохранить этот контекст в тексте, так как слов для правильного распознавания может быть недостаточно. Помните театральные пьесы: "...какая нынче хорошая погода (беззаботный смех), а ты как считаешь? (подходит)..." Понятно, что без актерского таланта эта фраза, даже оснащенная комментариями, явно информационно недостаточна. С этим можно примириться, когда сообщение предназначено для чтения людьми, - жизненный опыт и воображение человека помогут ему восстановить истинный смысл фразы. Если же рассчитывать на использование сообщения компьютером для совершения каких-то действий или принятия решений, сохранение эмоционального контекста необходимо в полном объеме.
Таким образом, можно сделать вывод о том, что назрела необходимость в разработке специального машинного языка, оперирующего не словами, а понятиями. Проще говоря, нужна разработка языка, на котором компьютер будет "думать". Ни машинный код, ни ассемблер, ни Си, ни Бейсик такими возможностями не обладают (в них нет не только носителя эмоциональной окраски сообщения, нет даже возможности описания временных форм действия, например: "было сначала тридцать, но сегодня к этому прибавилось еще сорок семь").
Давайте проанализируем структуру обычного речевого сообщения - фразы, произносимой человеком. Оно состоит не только из слов, в нем заключено многое: отношение человека к содержанию, в скрытой или неосознанной форме - намерения, а также полученные знания. Жизненный опыт и даже генетическая информация тоже оказывают влияние на сообщение в целом.
Словесная часть сообщения (на рисунке выделена желтым цветом) упрощенно может быть разделена на три части: объект, действие, результат. Каждая часть может иметь свой описатель, состоящий из таких же трех частей. Имеется некоторое сходство с грамматикой (подлежащее, сказуемое и так далее), но, на мой взгляд, она недостаточно строга (в любом из человеческих языков), чтобы быть переносимой на машинный язык.
Эмоциональное отношение говорящего к объекту, действию или результату, передаваемое с помощью интонации, ударений, пауз и прочего, может быть сознательным (формируемым искусственно) или неосознанным. Так же, впрочем, как и словесная часть сообщения.
Для правильного распознавания сообщения необходимо пройти по цепочке: слова -> эмоции -> намерения -> знания -> жизненный опыт -> физическая сущность (определяемая генами), причем основная часть этой цепочки скрыта внутри говорящего и недоступна в момент общения. Чем дальше по этой цепочке будет продвигаться система распознавания, тем более точным будет результат. Если система продвинется достаточно глубоко, она правильно распознает и сознательную, и неосознанную ложь, и некомпетентность.
Теперь важное замечание. Вся описанная структура сообщения должна быть получена в полном виде до того, как начнется процесс распознавания. Если человек сказал: "Как красиво!", - система получает часть словесного сообщения (в нашем случае - "результат") и некоторую эмоциональную составляющую. Перед распознаванием сообщения необходимо достроить недостающие компоненты, используя полученные компоненты и собственные ресурсы - словари, банки интонаций, намерений и прочее. Если из-за недостаточности информации точность распознавания систему не устраивает, она должна задавать наводящие вопросы (в нашем случае - или "Что вы видите?", или "А как вас зовут?"), а после получения ответа повторить процесс распознавания. В целом точность распознавания резко повышается с увеличением продолжительности общения.
Скажете, а как же построить ту самую, скрытую часть (намерения - физическая сущность), которая описывает личность говорящего, если заранее такая информация о конкретном человеке отсутствует? Отвечаю: вот именно в этом и состоит основная проблема систем распознавания. Изначально в базе данных системы может быть заложено подробное описание одного "среднестатистического" человека, нескольких эмоций и интонаций, которые и будут использованы на стартовом этапе. Но эти базы должны быстро пополняться либо самой системой (и тогда уже приходится говорить о наличии "искусственного интеллекта" в системе), либо извне - от более умных систем. В любом случае требования к аппаратным ресурсам и интеллекту программы чрезвычайно велики, хотя и реалистичны даже сегодня.
Какие базы данных потребуются системе? Кроме тех наборов словарей, которые используются сегодня в программах распознавания речи, предположительно потребуются: банк интонаций, банк эмоций, банк психологических типов людей, банк звуков сопровождения (техногенных - скрип двери, звук мотора и так далее; физиологических - дыхание, кашель, смех), ну, и банк намерений, наверное. Забыл еще кое-что: постоянно пополняемая база прототипов - распространенных осмысленных сообщений, увязывающих в себе данные разных банков с целью быстрого поиска аналогий и окружающего их контекста. Что-то похожее существует в шахматных программах.
Теперь о машинном языке понятий. В принципе можно оцифровать любую аналоговую величину, в том числе интонации и эмоции, с точностью, на один-два порядка превосходящей порог чувствительности человека. Если создать машинный код, описывающий огромное количество всевозможных сочетаний объектов, действий, результатов, эмоций и прочего на уровне понятий, то выяснится, что он может быть весьма компактным. Вспомните, какое число комбинаций имеют достаточно компактные ключи шифрования. С учетом требований к структурированности языка он будет более громоздким, чем бы мог быть теоретически, тем не менее, вполне вероятно, что такое сообщение не будет превышать по размеру его чисто словесную часть на одном из человеческих языков в коде ASCII.
Мне представляется, что машинный язык понятий должен иметь гибкую структуру для переноса информации с различной точностью - в зависимости от назначения сообщения. Например, можно передавать по каналам связи только словесную часть сообщения, можно добавить интонации, можно добавить указатель на какой-то ярко выраженный стандартный тип личности, а можно - добросовестно запузырить всю подноготную говорящего субъекта, накопившуюся за несколько лет совместной жизни. Кроме того, описатели параметров сообщения (например, уровень и специфика образования говорящего) должны иметь возможность корректного округления до меньшей точности - с целью снижения бесполезного трафика.
Еще одно важное свойство машинного языка понятий: он не будет иметь привязки к какому-либо человеческому языку или иметь его элементы (как, к примеру, языки программирования), поэтому станет не только идеальным языком межмашинного общения, но и средством для сверхточного перевода с одного человеческого языка на другой - достаточно, чтобы система имела двунаправленные трансляторы для используемых человеческих языков. Наверное, нет нужды обсуждать проблемы синтеза слитной человеческой речи с использованием эмоциональной окраски и даже имитации конкретной речи конкретного человека при помощи сэмплов его голоса. По сравнению с распознаванием речи эта задача не вызовет больших проблем. Сверхточность же перевода может быть обеспечена, если распознаванием станет заниматься персональная вычислительная система, длительное время работающая с хозяином - источником речи, настроенная на его личность.
Назову некоторые из возможных применений систем распознавания слитной речи на основе языка понятий:
А - Классическое применение - ввод с голоса текстовой информации, управление с голоса компьютером или другими (компьютеризированными) устройствами. Например, автомобилем.
Б - Функции сверхточного переводчика при общении разноязычных людей. Исключаются неприятные моменты, связанные с участием в разговоре третьего лица - переводчика (помните анекдот про чукчу, спрятавшего золото?).
В - Интернет-квазителефония. Если цифровая Интернет-телефония радикально, на порядок, снизила стоимость телефонных междугородних и международных переговоров, то квазителефония с использованием средств распознавания речи способна уменьшить трафик еще на один-два порядка по сравнению с оцифрованным звуком. Кроме того, легко реализуется автоматическое воспроизведение тембра и интонации голоса говорящего, но на языке слушающего. При этом передаваться по сетям будет только бинарная информация машинного языка понятий и набор сэмплов голоса, обновляемый с каждой фразой.
Г - Программирование. Появление машинного языка понятий равнозначно появлению также и нового языка программирования - более высокого уровня, чем любой из существующих сегодня. Насколько это удобно делать с голоса - покажет время, но вполне вероятно, что такое программирование будет больше напоминать диалог с обсуждением техзадания.
Д - Системы охраны помещений и идентификации человека по голосу, использование "волшебного слова" в качестве электронной подписи ("Сезам, откройся!"). Предполагается, что будут распознаваться чрезвычайные ситуации (опознаваемый субъект - под дулом пистолета).
Е - Системы медицинской и психологической диагностики человека. В сочетании с использованием сети Интернет могут быть радикально снижены затраты на медицинское обслуживание населения. Домашняя компьютерная диагностическая система может быть оснащена большим количеством рецепторов, в том числе и анализатором голоса, для постоянного контроля параметров здоровья живущих в помещении людей. При появлении отклонений через Интернет запрашивается банк знаний и генерируются рекомендации для устранения отклонений (например, изменение рациона).
Ж - Использование в правоохранительной системе в качестве детектора лжи. Способность накапливать информацию о личности человека по его речи в чем-то аналогична составлению фоторобота. Только синтезироваться будет не внешность, а внутренний мир подозреваемого.
З - Шпионское и диверсионное применение. Начиная от интеллектуальных подслушивающих устройств (надо сказать, недешевых) и заканчивая созданием речевых компьютерных вирусов и червей, добывающих информацию путем фальсификации голоса доверенного лица.
И - Общение с "потусторонним миром". Родственники покойного, оставив себе его персональный компьютер, смогут общаться с компьютером, говорящим голосом усопшего и имитирующим его характер. Вполне возможно - и советоваться с ним, при наличии большого банка данных. И даже - "соединиться с ним в единое целое", скопировав его систему на свой компьютер.
Есть у такой системы и неприятные издержки, последствия которых просто необходимо минимизировать. Хотя людям все труднее и труднее будет обманывать и друг друга, и компьютер, компьютеру (точнее тому, кто сумеет внедриться в его систему и управлять ей изнутри) это будет удаваться все легче и легче. Если позаботиться обо всем заранее, позже не придется принимать экстренные и очень тяжелые меры для борьбы с такими проявлениями.