Mercurial > hg > easaier-soundaccess
changeset 263:63a485275ed6
Speech recognition is integrated
author | benoitrigolleau |
---|---|
date | Fri, 20 Jun 2008 14:06:54 +0000 |
parents | 3f41cb822166 |
children | 5dac52cc75ef |
files | sv/main/EasaierSessionManager.cpp sv/main/MainWindow.cpp sv/main/MainWindow.h widgets/SpeechFileHandler.cpp widgets/SpeechRecognitionUI.cpp widgets/SpeechRecognitionUI.h |
diffstat | 6 files changed, 53 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- 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 <QMessageBox> @@ -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);
--- 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
--- 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;
--- 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+="<b>"; _result+=attribs.value(i); + _result+="</b>"; }else if(aux == _tag_confidence){ - _result+="\t"; + _result+=" "; _result+=attribs.value(i); } }
--- 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 <QGridLayout> - +#include <QVBoxLayout> +#include <QLabel> #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