Telefonnal emberi nyelven (Android voice interactions)

Készítsünk természetes nyelven kommunikáló android alkalmazást!

Előkészületek

Orace Java és Android Studio telepítése Ubuntu alatt (minden korábbi JDK és JRE törlése után):

sudo add-apt-repository ppa:webupd8team/java
sudo apt-add-repository ppa:paolorotolo/android-studio
sudo apt-get update
sudo apt-get install install oracle-java8-installer android-studio

Az Android Studio frissítése és SDK modulok telepítése a Studio segítségével történik.

A szoftverprojekt összeállítása

Legegyszerűbb egy működő útmutatót követve létrehozni a projektet az Android Studioban. Például: Build a speak and repeat app.

Az elkészült alkalmazás kipróbálásához célszerű egy androidos telefont használni, mivel az emulált környezetekben a mikrofon beállításával elég sok időt el lehet tölteni.

A telefonon szükséges szoftverek

A beszédfelismeréshez nem kell különösebb szoftver telepíteni, az Android SDK SpeechRecognizer osztályához a telefonokon van Google implementáció (igaz, hálózati kapcsolat kell a működéséhez).

Amennyiben szövegfelolvasást is szeretnénk használni, úgy egy text-to-speech (TTS) alkalmazás is szükséges. A Google TTS jelenleg nem beszél magyarul. Egyes Samsung telefonokon a Samsung TTS igen, illetve meglepően jó minőségű magyar felolvasó hang telepíthető ezt az útmutatót és az innen származó alkalmazást telepítve (ezeket nem ellenőriztem). Tesztelés céljára az eSpeak TTS tökéletes (magyarul is tud, és ingyenesen elérhető).

Értelmet adni a párbeszédnek

Ha összeállt egy egyszerű alkalmazás, ami a bemondott szöveget képes felismerni (Speech recognition), majd visszamondani (Text-to-speech), akkor nekiláthatunk az érdemi résznek: értelmet adni a párbeszédnek.

Ehhez a felismert mondatot (töredéket) elemezni és értelmezni kell, majd annak függvényében kell előállítani a választ. Én alapvetően ún. kontrollált természetes nyelvekkel foglalkozom, amelyek szűkített, az adott alkalmazás igényeinek megfelelően létrehozott szabálykészlettel és szókinccsel rendelkeznek. Az ilyen nyelveken megfogalmazott közlésekhez egyértelmű jelentés rendelhető, így a természetes nyelvű mondat gépi reprezentációja (pl. egy SQL kifejezés) egyértelműen elkészíthető.

Ajánlott irodalmak: