Voice Recognition Implementation
-
Ok , can mean many things.
http://voxforge.org/home/dev/acousticmodels/linux/create/htkjulius/tutorial/run-julian/comments/error-in-loading-model-when-executing-julius
Example
" the model tied state triphone you use is not contain sp."So , you should check the modification you make and read docs on each command. etc to avoid this.
-
Hi Always good starting reading docs.
https://julius.osdn.jp/juliusbook/en/desc_install.html% make install
"which also installes headers and libraries as well as the binaries."It means that it should generate a .so ? or .a file file and some .h files
( u must understand types of libs possible)
http://www.yolinux.com/TUTORIALS/LibraryArchives-StaticAndDynamic.htmlyou need to find out the exact names of those.
Then you need to add to a Qt project
http://doc.qt.io/qtcreator/creator-project-qmake-libraries.htmlMake sure u fill it out correctly. Name wise.
Then you need find c++ example to see what functions to call etc.
and it should be it.This might be ok sample
https://github.com/julius-speech/julius/blob/master/julius-simple/julius-simple.c -
@mrjj u said,
make install
"which also installes headers and libraries as well as the binaries."=
It means that it should generate a .so ? or .a file file and some .h filesNow I have configured and i run make and make install commands
After running sudo make install command, where i can get these .so or .a file in system (means which path) ? -
@Naveen_D
Hi
Normally you add a new path where to look for .h
files but you can also just include them.like in the pro file
INCLUDEPATH += ../testLib
LIBS += -L../testLib/debug -ltestLibhttps://wiki.qt.io/How_to_create_a_library_with_Qt_and_use_it_in_an_application
(NOTE , you names is NOT testLIB)
With the .A files
http://stackoverflow.com/questions/1361229/using-a-static-library-in-qt-creator -
@mrjj Hi i am bit confused after adding the library my .pro file is
#------------------------------------------------- # # Project created by QtCreator 2016-10-26T15:15:30 # #------------------------------------------------- QT += core gui greaterThan(QT_MAJOR_VERSION, 4): QT += widgets TARGET = ExampleJulius TEMPLATE = app SOURCES += main.cpp\ mywidget.cpp HEADERS += mywidget.h unix:!macx: LIBS += -L$$PWD/./ -ljulius INCLUDEPATH += $$PWD/. DEPENDPATH += $$PWD/. unix:!macx: PRE_TARGETDEPS += $$PWD/./libjulius.a
is it correct ?
-
unix:!macx: LIBS += -L$$PWD/./ -ljulius unix:!macx: PRE_TARGETDEPS += $$PWD/./libjulius.a
You should not link against shared lib and static lib (.a) at the same time. Either use shared lib or static lib.
Does $$PWD/. contain the lib itself and the header files? -
hi , you need to fix the file.
http://doc.qt.io/qtcreator/creator-editor-options-text.html
"To resolve the issue, use a file conversion tool such as Recode to convert the file encoding to UTF-8 when developing Qt 5 applications. Otherwise, conversion of string constants to QStrings might not work as expected."
http://superuser.com/questions/116907/how-to-recode-to-utf-8-conditionally
The "recode-to-utf8.sh " post.
-
@mrjj Thanks...
Now i want know how to use the api's of julius..
I have developed a simple UI in qml in which i have developed simple icon with image and want to add voice recognition using julius...
Is it the rite way what i am doing now or there is any better way to achieve this?
how to do this..? guidance required..Thanks -
@Naveen_D
Hi- I have developed a simple UI in qml in which i have developed simple icon with image and want to add voice recognition
- Is it the rite way what i am doing now or there is any better way to achieve this?
Hi, using QML for Interface is fine idea but why not wait a bit before having to learn how to call c++ functions from
QML and for now focus on getting the recognition up and running using plain c++ GUI app for testing.
Anyway, should not be super involving.
http://doc.qt.io/qt-5/qtqml-cppintegration-topic.html
http://stackoverflow.com/questions/9500280/access-c-function-from-qmlThen after you can call a c++ functions, its time to read the docs and study the sample.
-
- Now how to proceed further with this voice recognition ?
Well I would starting with
https://github.com/julius-speech/julius/blob/master/julius-simple/julius-simple.c
Maybe make it your own class to wrap it up a bit or simply use as is.
Its pretty important you understand how this small sample works as
you need to be able to expand it for your application.
The main function accepts parameters and you must let the
app set it up and/or also allow user to change them.
So you most likely will split the main or change into something that fits your app.- UPDATE
What i ment - was that you need the same API calls as the samples uses
jconf = j_config_load_file_new(jconf_filename);
/* create recognition instance according to the jconf /
/ it loads models, setup final parameters, build lexicon
and set up work area for recognition */
recog = j_create_instance_from_jconf(jconf);
if (recog == NULL) { // ERRROR
}/* register result callback functions */
callback_add(recog, CALLBACK_EVENT_SPEECH_READY, status_recready, NULL);
callback_add(recog, CALLBACK_EVENT_SPEECH_START, status_recstart, NULL);
callback_add(recog, CALLBACK_RESULT, output_result, NULL);and more