изисквания
оборудване
Сфинксът - приложение за много-много ресурси и не изисква модерна и доста ефективно оборудване. За задоволително прилагане изисква много RAM, така че е препоръчително да се изпълнява Сфинкса на компютър с процесор или по-възрастни Intel® Pentium® 4 и най-малко 1 GB оперативна памет. В същото време, текстообработка е далеч по-малко ресурсоемка работа, така че можете спокойно да го изпълним в паралел с разпознаване на реч на същия компютър, без загуба на производителност за последния.
софтуер
Заявленията, които са създадени в хода на тази статия, могат да работят на Linux® или Microsoft® Windows® платформи. За Сфинкса-4 трябва да имате последната версия на JDK и Apache Ant да създадете потребителски манипулатор граматика. Вие също ще трябва Perl и подходящо търсене (справочната) модули (избран по ваша преценка). Връзки към повече информация за споменатите софтуерни пакети, както и връзките, които можете да изтеглите тези пакети, вж. В раздела за ресурси.
Инсталиране Sphinx-4
Като част от проекта Сфинкса са различни пакети за различни задачи за разпознаване на реч. Тази статия съдържа пакет Сфинкса-4, най-удобно на най-новите версии за потребители и разработчици. Инсталиране на Сфинкса-4 може да изглежда трудно за някои, така че тук са основните стъпки на инструкциите за инсталиране.
- Изтеглете и извлечете Apache Ant.
- Изтеглете и разархивирайте Sun JDK (както и на това писание е най-новата версия 1.6.0_02).
- Изтеглете и разархивирайте пакета с източник Сфинкса-4, тъй като ние се промени една от програмите за демо, за да отговарят на нашите цели.
- Разположен на околната среда променливи с помощта на следните команди:
В Windows, може да се наложи да настроите обкръжението на мига "Control Panel (Контролен панел)> System (Система)> Advanced (Разширени)> Околна среда променливи (променливи на обкръжението)." - Отидете в директория "sphinx4-бета", а след това в поддиректорията "либералните".
- Активирайте двоичен лиценз JSAPI, jsapi.sh провеждане на скрипт. Сфинкса-4 JSAPI подкрепя двоичен лиценз, така че е необходимо да приемете лицензното споразумение.
- Може да се наложи да инсталирате uudecode, да разопаковате компонентите, необходими за JSAPI. В повечето Линукс дистрибуции, включително опаковката, така или иначе, съдържащ uudecode, така че проверете първо наличните средства, ако е необходимо инсталиране uudecode. В Windows, щракнете два пъти върху десния бутон на мишката jsapi.exe файл и да приемете лицензното споразумение.
- Назад към Sphinx4 главната директория.
- Стартирайте мравка команда. Аз трябва да започне процеса на сглобяване.
Съобщение за състояние "изграждането на успешна" показва, че околната среда е създадена успешно, и можете да преминете към стъпките на модификация. Ако видите друго съобщение, проверете монтаж и настройка променливи на обкръжението, каталог, или прегледайте ръководствата на Apache Ant и Сфинкса-4 за по-подробни инструкции за инсталиране за вашата среда.
Стратегия признаване независим говорител от букви и цифри в реч
Тя винаги изглежда, че технологията за разпознаване на глас е останало от 2 до 10 години до успешен независим признаване говорител голям речник реч. Пояснете разговор с много гласове, с едновременното речта, различни акценти и множество технически и разговорни изрази - проблем почти нерешим за всеки софтуер, потребителска класа на разположение на пазара. Въпреки това, сфинкс чанти, и по-специално, Сфинкса-4 предлага всички необходими опции за надеждно откриване малък (но все пак полезен) лексика без да се позовава на говорител.
Ние определено ограничената ни лексика: английската азбука писма A-Z и 0-9. Нашата стратегия - това е просто маркирайте всички области, където те са се произнасяли с буквите и цифрите. Общото название на този подход - думите на разпределение. Въпреки че в момента Сфинкса-4 не поддържа избора на думи, ние не сме в състояние да постигне по-малко от полезни резултати, проверка на всяка говорил звук комбинация, за да се срещне поне една дума на граматиката. След това, със списък на най-подходящия от букви и цифри, можем да използваме стандартните инструменти за обработка на текст и информация ръководства за извличане на полезна информация.
Потребителски речник, модификация на примера "Hello World"
Създаване на речника файл
В първия етап на създаване на механизъм "подчертае думите" Ние ще създадете файл с речника. В дървото на директориите Сфинкса-4 има директория с име BLD / модели / ОБН / CMU / сфинкс / модел / акустично / WSJ_8gau_13dCep_16k_40mel_130Hz_6800Hz / Dict /. Той съдържа файловете с наречените alpha.dict и digit.dict. На пръв поглед изглежда, че комбинацията от тези две речници даде желания файл. Това не е така. Ние трябва да създадем нашия речник cmudict.0.6d файлове от файла в същата директория.
Отидете до директорията BLD / модели / ОБН / CMU / сфинкс / модел / акустично / WSJ_8gau_13dCep_16k_40mel_130Hz_6800Hz / Dict / и използвайте следната команда, за да създадете желания речниковия файл:
Обява 1 показва, генерирани alN.dict файл, съдържанието на които са само букви и цифри.
Обява 1. Някои alN.dict файл
Модификации пример "Hello World"
Сфинкса-4 предлага много настройки, които позволяват да отговарят на всички изисквания в областта на разпознаване на реч. В нашия случай, най-ефективният подход е да се промени съществуващата пример "Hello World". Сфинксът-4 главната директория отидете в директория демо / сфинкса / HelloWorld helloworld.config.xml и редактирате файла. Обява 2 показва една линия, която искате да промените, за да използвате alN.dict файл, който сме създали.
Обява 2. Промени в helloworld.config.xml файл
Необходимо е също така да променяте файла с граматиката hello.gram в същата директория. Обява 3 показва промените, които трябва да бъдат направени, за да се съберат на буквите и цифрите от нашия речник файл.
Обява 3. Промени в hello.gram файл
Ние също трябва да се направят малки промени в HelloWorld.java файл, както е показано по-долу:
Обява 4. Промени в HelloWorld.java файл
текстообработка
Може би дори са узрели въпрос: какво пречи на използването на много хиляди речника, за да се справят с много неправилно разкрити случаи? В крайна сметка, в наличните модели езикови Сфинкса-4 и голям речник база. Защо просто не се създаде демо относно признаването на останалата част от изречението: "телефонен номер за техническа поддръжка е", както и всякакви други думи, които могат да бъдат изречени?
Отговор: Сфинкса-4 - добро приложение, но не е съвършен. Разширяването на речниковия файл, за признаване на стотици хиляди думи, за да се намали драстично ефективността на признаването на отделни букви и цифри. Можете да проверите това, като прочетете другите програми в поддиректория демо Сфинкса-4 пакет или промяна на съществуващи примери, конфигурирането им да се използват големи речникови файлове и разширени списъци граматика. Както се оказва, последващата обработка на текст, състоящ се само от букви и цифри, за търсене на данни на по-високо ниво - много по-проста метод за конструиране на работеща и полезна система анотация въз основа на наличните системи с отворен код.
Обява 5. annotateAcrNum.pl Част 1 - основна програма логика
Горната основната програма логика търси поредица от букви и цифри, които отговарят на нашите прости критерии. програма за изграждане на отделни масиви от букви и цифри за всеки ред от текста с резултатите от разпознаване на реч модифициран код "Hello World". Търсене чрез набор от букви носи acronymSearch рутина, която ще опишем по-долу. Моля, имайте предвид, че писмата масив е изместен след всеки срещани съкращения, които могат да бъдат намерени в ред "и б м х" и "IBM" и "BMX". В масива от числа, ние не отговарят на подобна промяна, вместо това, ние приемаме дълги числа, които програмата може да намерите и да търсят в мрежата.
Обявата 6. annotateAcrNum.pl Част 2 - програма acronymSearch
Подпрограма acronymSearch полезен модул използва Net :: Dict. Ние просто питам речника на сървъра и заявка за търсене в различни бази данни. Регулярният израз / (WN | вера | журналист | foldoc) / оттегляне ограничава базите данни, които дават относително кратки описания. Може да откриете, че вашият набор от съкращения е по-добре представени в друг сайт бази данни dict.org - тогава тази граница трябва да бъде отстранен от регулярния израз.
Обявата 7. annotateAcrNum.pl Част 3 - phoneNmSearch
Сега, с нашето разпознаване на реч въз основа на Сфинкса-4, annotateAcrNum на Perl-програма, можем да започнем да поясняват говори диалог. Започнете annotator екип $ JAVA_HOME / хамбар / Java -mx312m -jar бин / HelloWorld.jar | Perl annotateAcrNum.pl (за Linux). За Windows, командата е: Java -mx312m -jar бин / HelloWorld.jar | Perl annotateAcrNum.pl.
Фигура 1. снимка annotator диалози терминал на Vector Linux
Накрая, следните примери
Изтегляне ресурси
Свързани теми