Цитата Oleg_SK:
Кстати, а какая разница, на каком языке будет управляться комп? »
|
Поскольку немного занимался этим вопросом, то попытаюсь "на пальцах" объяснить. Получается следующая картина.
Каждый язык имеет свой характерный (свойственный только ему) состав звуков. Есть языки, в которых преобладают шипящие звуки, есть такие, в которых преобладают звонкие, "горловые" и "мелодичные" (пример такого языка - китайский и некоторые другие азиатские), есть, где преобладают носовые звуки и т.д. (открыл ради интереса свою магистерскую работу по системам распознавания за 2003 год, насчитал там порядка 12 различных типов только звуков, не говоря уже о делении звуков на отдельные части вплоть до фонем - минимальных единиц-"аналогов" букв).
Система распознавания речи должна принимать входящий звуковой сигнал, разбивать на части (сегментировать его), анализировать сегменты, высчитывая определенные параметры, зависящие от принципов, на которых конкретная система распознавания построена (но в основном это расчет спектральных составляющих, вычисление кепстра, определение формант, основного тона т.д.). Далее по определенным параметрам начинается сравнение принятого куска сигнала с имеющимися образцами (если система рассчитана на распознавание голоса нескольких человек) или образом (если система рассчитана на распознавание голоса одного человека). Если это система позволяет не просто управлять компьютером, а еще и надиктовывать текст/воспроизводить текст голосом, то далее применяется определение номера фонемы ("аналога буквы"). Поскольку человек не робот, и может говорить, меняя темп речи, то необходима подсистема, которая бы отслеживала бы и это (а то может получиться "поввтооор" вместо "повтор"). Необходим словарь, с которым бы в самом конце производилось сравнение правильности написания слов (а то будет вам "ИСЧО" вместо "еще"
).
Ключевым блоком в данной системе является блок определения параметров, и даже не сколько он, сколько кодовая книга ("база") типовых параметров, с которыми производится сравнение и вынесение конечного результата. Для создания такой «базы» необходимо знать, по каким параметрам для каждого конкретного языка можно производить опознавание звуков.
Как вы сами понимаете, для разных языков тот же спектр одного и того же звука, например, "ё", "р" и т.д. будет отличаться из-за особенностей произношения представителей различных национальностей (ну разве что уж некоторые совсем распространенные звуки будут приблизительно одинаковыми, например, чаще всего это будут гласные "а", "о" и некоторые другие).
Т.е. основная проблема в создании базы (т.к для каждого языка она своя) и разработки алгоритма обработки входного звукового сигнала для последующего сравнения с этой базой.
Поскольку на западе с 60-х годов прошлого века в исследования вбухали многие тысячи $ (занимались как военные, так и частные организации), то и результат у них есть. У нас как-то с этим все обстоит немного похуже, по крайней мере публикаций в научных журналах на эту тему не очень много.
Цитата Oleg_SK:
Программу же, по идее, все равно нужно обучать (или для современных программ это не требуется?) »
|
Все зависит от того, какой алгоритм заложил в систему ее создатель.
Современные системы распознавания речи, нормально работающие с русским/украинскими языками мне не встречались ("Горыныч" - не исключение). Системы обратного преобразования, т.е. "тест/речь" относительно нормальные встречал - "Говорилка" и "Розмовлялька" соответственно (но и они не совершенны).
Если бы не сменил тему диссертации из-за смены руководителя, то может что-то к сегодняшнему дню и написал бы свою прогу
Что касается висты, то я ее систему распознавания не видел в действии. Если бы можно было с ее помощью надиктовывать текст в транслит, то не составило бы большого труда написать программу для преобразования текста из транслита в нормальный русский текст (или воспользоваться имеющимися). Кстати, на одесском Текнете в прошлом году демонстрировали одну майкрософтовскую систему, которая осуществляла прием писем и воспроизведение их голосом, так вот, поскольку русский язык не поддерживался, то присланное письмо там как раз и преобразовали в транслит, после чего скормили этот текст системе (например, "пчела мая"->"pchela maya"). Система произнесла данный текст с характерным акцентом, но при этом можно было понять смысл.