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
--- 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();