# HG changeset patch # User benoitrigolleau # Date 1213970814 0 # Node ID 63a485275ed6e58de0f9df75056da1409ff2d43e # Parent 3f41cb822166d1969819225658ef2226f2bcf6cd Speech recognition is integrated diff -r 3f41cb822166 -r 63a485275ed6 sv/main/EasaierSessionManager.cpp --- a/sv/main/EasaierSessionManager.cpp Fri Jun 20 12:33:08 2008 +0000 +++ b/sv/main/EasaierSessionManager.cpp Fri Jun 20 14:06:54 2008 +0000 @@ -38,6 +38,7 @@ #include "widgets/RelatedMediaWidget.h" #include "base/PropertyContainer.h" #include "data/fileio/AudioFileReaderFactory.h" +#include "widgets/SpeechRecognitionUI.h" #include "widgets/SpeechFileHandler.h" #include @@ -380,11 +381,8 @@ file.setFileName(filename); inputSource= new QXmlInputSource(&file); reader.setContentHandler(&handler); - read=reader.parse(inputSource); - if (read) { - QString truc = handler.getResult(); - } - + read=reader.parse(inputSource); + MainWindow::instance()->getSpeechRecognitionUI()->setResult(handler.getResult()); } default: break; } @@ -626,7 +624,7 @@ postFilePath = "c:/test.wav"; if(postFilePath!=""){ QString only_filename = postFilePath.section( '/', -1 ); - QString param = start_delim + cont_disp_str + "name=" + "\"tutu\""+"; filename="+"\""+only_filename+"\""+endline+"Content-Type: application/octet-stream"+endline+endline; + QString param = start_delim + cont_disp_str + "name=" + "\"file\""+"; filename="+"\""+only_filename+"\""+endline+"Content-Type: application/octet-stream"+endline+endline; data_stream.writeRawData(param.toStdString().c_str(),param.toStdString().length()); QFile file(postFilePath); diff -r 3f41cb822166 -r 63a485275ed6 sv/main/MainWindow.cpp --- a/sv/main/MainWindow.cpp Fri Jun 20 12:33:08 2008 +0000 +++ b/sv/main/MainWindow.cpp Fri Jun 20 14:06:54 2008 +0000 @@ -75,6 +75,8 @@ #include "filter/FilterStack.h" #include "filter/RealTimeFilterFactory.h" +#include "widgets/SpeechRecognitionUI.h" + // For version information #include "vamp/vamp.h" #include "vamp-sdk/PluginBase.h" @@ -737,6 +739,7 @@ action->setStatusTip(tr("Exit Sonic Visualiser")); connect(action, SIGNAL(triggered()), this, SLOT(exit())); menu->addAction(action); + } void @@ -787,7 +790,6 @@ action->setShortcut(tr("Ctrl+Q")); connect(action, SIGNAL(triggered()), this, SLOT(exit())); menu->addAction(action); - } void @@ -915,6 +917,7 @@ action = new QAction(tr("&Style setting"), this); connect(action, SIGNAL(triggered()), this, SLOT(styleSetting())); menu->addAction(action); + } void @@ -1410,6 +1413,8 @@ connect(this, SIGNAL(canDeleteCurrentLayer(bool)), action, SLOT(setEnabled(bool))); menu->addAction(action); m_rightButtonLayerMenu->addAction(action); + + } void @@ -1879,6 +1884,14 @@ addToolBar(connectionStatus); toolNavigateSelected(); + + toolbar->addSeparator(); + m_speechRecognitionUI = new SpeechRecognitionUI(); + QIcon icon = QIcon(":icons/new.png"); + action = new QAction(icon, tr("Speech Recognition..."), this); + action->setStatusTip(tr("Open speech recognition module")); + connect(action, SIGNAL(triggered()), this, SLOT(openSpeechQuery())); + toolbar->addAction(action); } void @@ -5585,4 +5598,13 @@ EasaierSessionManager *MainWindow::getEasaierSessionManager(){ return m_EasaierManager; +} + +SpeechRecognitionUI* MainWindow::getSpeechRecognitionUI(){ + return m_speechRecognitionUI; +} + +void MainWindow::openSpeechQuery(){ + m_speechRecognitionUI->show(); + m_speechRecognitionUI->topLevelWidget(); } \ No newline at end of file diff -r 3f41cb822166 -r 63a485275ed6 sv/main/MainWindow.h --- a/sv/main/MainWindow.h Fri Jun 20 12:33:08 2008 +0000 +++ b/sv/main/MainWindow.h Fri Jun 20 14:06:54 2008 +0000 @@ -75,6 +75,7 @@ class QueryModel; class RealTimeFilterPropertyStack; class ExpandWidget; +class SpeechRecognitionUI; class MainWindow : public QMainWindow { @@ -106,6 +107,8 @@ }; EasaierSessionManager* getEasaierSessionManager(); + SpeechRecognitionUI* getSpeechRecognitionUI(); + FileOpenStatus openSomeFile(QString path, AudioFileOpenMode = AskUser); @@ -172,6 +175,7 @@ //void preferenceChanged(PropertyContainer::PropertyName); protected slots: + void openSpeechQuery(); void openSession(); void importAudio(); void importMoreAudio(); @@ -323,6 +327,7 @@ void unlockWindow(); protected: + SpeechRecognitionUI *m_speechRecognitionUI; WaitingWidget *m_waitwidget; SDLWidget *m_sdlWidget; QWidget *m_videoWidget; diff -r 3f41cb822166 -r 63a485275ed6 widgets/SpeechFileHandler.cpp --- a/widgets/SpeechFileHandler.cpp Fri Jun 20 12:33:08 2008 +0000 +++ b/widgets/SpeechFileHandler.cpp Fri Jun 20 14:06:54 2008 +0000 @@ -39,9 +39,11 @@ for(int i = 0 ; i < attribs.length() ; i++){ QString aux = attribs.localName(i); if(aux==_tag_word){ + _result+=""; _result+=attribs.value(i); + _result+=""; }else if(aux == _tag_confidence){ - _result+="\t"; + _result+=" "; _result+=attribs.value(i); } } diff -r 3f41cb822166 -r 63a485275ed6 widgets/SpeechRecognitionUI.cpp --- a/widgets/SpeechRecognitionUI.cpp Fri Jun 20 12:33:08 2008 +0000 +++ b/widgets/SpeechRecognitionUI.cpp Fri Jun 20 14:06:54 2008 +0000 @@ -2,7 +2,8 @@ #include "SpeechRecognitionUI.h" #include - +#include +#include #include "../sv/main/MainWindow.h" #include "../sv/main/EasaierSessionManager.h" @@ -38,12 +39,20 @@ _textEdit = new QTextEdit(); _textEdit->setMinimumWidth(200); + + QVBoxLayout *truc = new QVBoxLayout(); + truc->addWidget(new QLabel); + truc->addStretch(); + + QGridLayout *layout = new QGridLayout; this->setLayout(layout); - layout->addWidget(_bRect,1,1,1,1,Qt::AlignTop); - layout->addWidget(_bPlay,2,1,1,1,Qt::AlignTop); + layout->addWidget(new QLabel(tr("Speech Recognition")),1,1,1,2,Qt::AlignTop); + layout->addWidget(_bRect,2,1,1,1,Qt::AlignTop); + //layout->addWidget(_bPlay,2,1,1,1,Qt::AlignTop); layout->addWidget(_bSend,3,1,1,1,Qt::AlignTop); - layout->addWidget(_textEdit,1,2,4,1); + layout->addLayout(truc,4,1,1,1,Qt::AlignTop); + layout->addWidget(_textEdit,2,2,3,1); //SLOTs end SIGNALs @@ -80,4 +89,8 @@ void SpeechRecognitionUI::sendQuery(){ MainWindow::instance()->getEasaierSessionManager()->speechRecognition("SpeechRecognition"); +} + +void SpeechRecognitionUI::setResult(const QString &result){ + _textEdit->setText(result); } \ No newline at end of file diff -r 3f41cb822166 -r 63a485275ed6 widgets/SpeechRecognitionUI.h --- a/widgets/SpeechRecognitionUI.h Fri Jun 20 12:33:08 2008 +0000 +++ b/widgets/SpeechRecognitionUI.h Fri Jun 20 14:06:54 2008 +0000 @@ -27,6 +27,7 @@ SpeechRecognitionUI(QWidget *parent = 0); virtual ~SpeechRecognitionUI(); + void setResult(const QString &result); public slots: void play();