changeset 262:3f41cb822166

first code for the speech recognition
author benoitrigolleau
date Fri, 20 Jun 2008 12:33:08 +0000
parents ff8187498612
children 63a485275ed6
files sv/audioio/AudioRecording.cpp sv/audioio/AudioRecording.h sv/icons/rect.png sv/icons/stop.png sv/main/EasaierSessionManager.cpp sv/main/EasaierSessionManager.h sv/main/MainWindow.cpp sv/main/MainWindow.h sv/main/main.cpp sv/sound-access.qrc sv/sound_access.vcproj widgets/SpeechFileHandler.cpp widgets/SpeechFileHandler.h widgets/SpeechRecognitionUI.cpp widgets/SpeechRecognitionUI.h widgets/svwidgets.vcproj
diffstat 16 files changed, 561 insertions(+), 42 deletions(-) [+]
line wrap: on
line diff
--- a/sv/audioio/AudioRecording.cpp	Fri Jun 20 12:09:57 2008 +0000
+++ b/sv/audioio/AudioRecording.cpp	Fri Jun 20 12:33:08 2008 +0000
@@ -1,13 +1,17 @@
 
-#include "audioio/AudioRecording.h"
+#include "AudioRecording.h"
 
-#ifdef HAVE_PORTAUDIO
 
-#include <portaudio.h>
-#include <sndfile.h>
-#endif
+AudioRecording::AudioRecording(){
+	_isRecording = false;
+
+}
+
+AudioRecording::~AudioRecording(){
+
+}
 
-static int myCallback( void *inputBuffer, void *outputBuffer, unsigned long framesPerBuffer, PaTimestamp outTime, void *userData )
+int AudioRecording::myCallback( void *inputBuffer, void *outputBuffer, unsigned long framesPerBuffer, PaTimestamp outTime, void *userData )
 {
 	//float *in = (float *) inputBuffer;
 	SNDFILE* file  = (SNDFILE*)userData;
@@ -24,38 +28,44 @@
 }
 
 
-void recordAudio() //QString& fileName)
+void AudioRecording::recordAudio(const char *path) //QString& fileName)
 {
-	PortAudioStream *stream;
-	
 	Pa_Initialize();
 	
 	SF_INFO fileInfo;
-    fileInfo.samplerate = 44100;
+    fileInfo.samplerate = 16000;
     fileInfo.channels = 1;
-    fileInfo.format = SF_FORMAT_WAV | SF_FORMAT_PCM_16; //SF_FORMAT_FLOAT;
+    fileInfo.format = SF_FORMAT_WAV | SF_FORMAT_PCM_16;//SF_FORMAT_FLOAT;
  
 	
-	SNDFILE* file = sf_open("d:/sample.wav", SFM_WRITE, &fileInfo);
-	if (file != NULL) {
-		Pa_OpenDefaultStream(&stream,fileInfo.channels, 0, /* mon input, no output */
+	_file = sf_open(path, SFM_WRITE, &fileInfo);
+	if (_file != NULL) {
+		Pa_OpenDefaultStream(&_stream,fileInfo.channels, 0, /* mon input, no output */
 							paInt16/*paFloat32*/, fileInfo.samplerate,
 							64, 0, /* 64 frames per buffer, let PA determine numBuffers */
-							myCallback, (void*)file);
+							myCallback, (void*)_file);
 	
-		Pa_StartStream( stream );
-		Pa_Sleep( 5000 ); /* Sleep for 10 seconds while processing. */
-		Pa_StopStream( stream );
-		Pa_CloseStream( stream );
+		Pa_StartStream( _stream );
+	}
+}
 
-		sf_close(file);
-	}
-
-
-
-	Pa_Terminate();
+void AudioRecording::rect(){
+	_isRecording = true;
+	recordAudio("c:/test.wav");
+}
 
-
-
-
+void AudioRecording::stopRect(){
+	if(_isRecording){
+		if(_file != NULL){
+			Pa_StopStream( _stream );
+			Pa_CloseStream( _stream );
+			sf_close(_file);
+		}
+		Pa_Terminate();
+		_isRecording = false;
+	}
+}
+
+bool AudioRecording::isRecording(){
+	return _isRecording;
 }
\ No newline at end of file
--- a/sv/audioio/AudioRecording.h	Fri Jun 20 12:09:57 2008 +0000
+++ b/sv/audioio/AudioRecording.h	Fri Jun 20 12:33:08 2008 +0000
@@ -1,6 +1,38 @@
 
 
+#ifndef _AUDIO_RECORDING_H_
+#define _AUDIO_RECORDING_H_
 
-// Record blabla...
-void recordAudio(); //QString& fileName);
+#ifdef HAVE_PORTAUDIO
+
+#include <portaudio.h>
+#include <sndfile.h>
+#include <QWidget>
 
+
+#include <iostream>
+
+class AudioRecording : public QWidget
+{
+    Q_OBJECT
+
+public :
+	AudioRecording();
+	~AudioRecording();
+	void recordAudio(const char *path); //QString& fileName);
+	static int myCallback( void *inputBuffer, void *outputBuffer, unsigned long framesPerBuffer, PaTimestamp outTime, void *userData );
+
+	bool isRecording();
+
+public slots:
+	void rect();
+	void stopRect();
+
+private :
+	bool _isRecording;
+	PortAudioStream *_stream;
+	SNDFILE* _file;
+};
+
+#endif /* HAVE_PORTAUDIO */
+#endif
\ No newline at end of file
Binary file sv/icons/rect.png has changed
Binary file sv/icons/stop.png has changed
--- a/sv/main/EasaierSessionManager.cpp	Fri Jun 20 12:09:57 2008 +0000
+++ b/sv/main/EasaierSessionManager.cpp	Fri Jun 20 12:33:08 2008 +0000
@@ -39,6 +39,9 @@
 #include "base/PropertyContainer.h"
 #include "data/fileio/AudioFileReaderFactory.h"
 
+#include "widgets/SpeechFileHandler.h"
+#include <QMessageBox>
+
 EasaierSessionManager::EasaierSessionManager(HttpClient* httpClient) : QObject(),
 	m_fileName(""),
 	m_httpClient(httpClient),
@@ -368,6 +371,21 @@
 			relMediaWidget->addRelatedMedia(filename, m_relMediaList);
 			break;
 		}
+		case LoadedFile::VOCAL_QUERY :
+		{
+			QFile file;
+			QXmlInputSource *inputSource;
+			QXmlSimpleReader reader; 
+			SpeechFileHandler handler; 
+			file.setFileName(filename); 
+			inputSource= new QXmlInputSource(&file); 
+			reader.setContentHandler(&handler); 
+			read=reader.parse(inputSource); 
+			if (read) {
+				QString truc = handler.getResult();
+			}
+
+		}
 		default: break;
 	}
 
@@ -583,3 +601,52 @@
 	QApplication::setOverrideCursor( Qt::WaitCursor );
 	loadFile(*payload, filename, LoadedFile::QUERY_RESULTS, postFilePath);
 }
+
+
+void EasaierSessionManager::speechRecognition(const QString& themeName)
+{
+	
+	QString postFilePath = "";
+
+	//for the post
+	QString boundary="7d44e178b0434";
+	QString endline="\r\n";
+	QString start_delim="--"+boundary+endline;
+	QString cont_disp_str="Content-Disposition: form-data;";
+
+	QByteArray *payload = new QByteArray();
+	QDataStream data_stream(payload, QFile::WriteOnly | QFile::Unbuffered);
+	/////////
+
+
+	QString param = start_delim + cont_disp_str + "name=" + "\"theme\"" + endline+endline+themeName+endline;
+	data_stream.writeRawData(param.toStdString().c_str(),param.toStdString().length());
+
+	// We are here dealing with a filePath
+	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;
+		data_stream.writeRawData(param.toStdString().c_str(),param.toStdString().length());
+					
+		QFile file(postFilePath);
+		if (file.open( QFile::ReadOnly )) {
+			while (!file.atEnd()) {
+				QByteArray line = file.readLine();
+				data_stream.writeRawData(line.data(),line.length());
+			}
+			file.close();
+		}
+	}
+		
+	data_stream.writeRawData(param.toStdString().c_str(),param.toStdString().length());
+
+	QString stop_delim=endline+"--"+boundary+"--"+endline;
+	data_stream.writeRawData(stop_delim.toStdString().c_str(),stop_delim.toStdString().length());
+
+	QString filename = "/easaier/servlet/"+themeName;
+	
+	QApplication::setOverrideCursor( Qt::WaitCursor );
+	loadFile(*payload, filename, LoadedFile::VOCAL_QUERY, postFilePath);
+
+}
\ No newline at end of file
--- a/sv/main/EasaierSessionManager.h	Fri Jun 20 12:09:57 2008 +0000
+++ b/sv/main/EasaierSessionManager.h	Fri Jun 20 12:33:08 2008 +0000
@@ -47,7 +47,8 @@
 			QUERY_CONFIG		= 4, // config of the queries
 			QUERY_RESULTS		= 5, // query results
 			RELATED_MEDIA_LIST	= 6,  // related media list
-			RELATED_MEDIA		= 7  // related media
+			RELATED_MEDIA		= 7,  // related media
+			VOCAL_QUERY			= 8  // related media
 		};
 
 		inline FileType getFileType() const {return m_type;}
@@ -102,6 +103,9 @@
 	/*query the database*/
 	void queryDatabase(const QString& themeName);
 
+	/*speech recognition*/
+	void speechRecognition(const QString& themeName);
+
 public slots:
 	void fileLoaded(int, bool);
 
--- a/sv/main/MainWindow.cpp	Fri Jun 20 12:09:57 2008 +0000
+++ b/sv/main/MainWindow.cpp	Fri Jun 20 12:33:08 2008 +0000
@@ -2895,7 +2895,6 @@
     updateMenuStates();
 
 	setupFiltersMenu();
-
 }
 
 void
@@ -5242,6 +5241,7 @@
 	
 	setupFiltersMenu();
 
+
 }
 
 void MainWindow::openEasaierSession()
@@ -5583,3 +5583,6 @@
 	m_curSender = 0;
 }
 
+EasaierSessionManager *MainWindow::getEasaierSessionManager(){
+	return m_EasaierManager;
+}
\ No newline at end of file
--- a/sv/main/MainWindow.h	Fri Jun 20 12:09:57 2008 +0000
+++ b/sv/main/MainWindow.h	Fri Jun 20 12:33:08 2008 +0000
@@ -105,6 +105,9 @@
 		Video
     };
 
+	EasaierSessionManager* getEasaierSessionManager();
+
+
     FileOpenStatus openSomeFile(QString path, AudioFileOpenMode = AskUser);
     FileOpenStatus openAudioFile(QString path, AudioFileOpenMode = AskUser);
 // Ivan Damnjanovic 09-10/2007 added video file import
@@ -133,6 +136,7 @@
 
 	SDLWidget* getSDLWidget();
 	void setSDLInitSize(int w, int h);
+	
 
 	float inline getPlaySpeedVal() const { return m_playSpeedVal;}
 
@@ -319,7 +323,6 @@
 	void unlockWindow();
 
 protected:
-
 	WaitingWidget			*m_waitwidget;
 	SDLWidget				*m_sdlWidget;
 	QWidget					*m_videoWidget;
--- a/sv/main/main.cpp	Fri Jun 20 12:09:57 2008 +0000
+++ b/sv/main/main.cpp	Fri Jun 20 12:33:08 2008 +0000
@@ -22,7 +22,8 @@
 #include "base/Preferences.h"
 #include "widgets/TipDialog.h"
 #include "widgets/EasaierStyle.h"
-#include "widgets/Plotter.h"
+#include  "widgets/CirclePlotter.h"  
+#include "widgets/SpeechRecognitionUI.h"
 
 #include <QMetaType>
 #include <QApplication>
@@ -298,6 +299,17 @@
 	splash->finish(&gui);
 	delete splash;
 
+
+	CirclePlotter truc;
+	truc.setAnimation(true);
+	truc.show();
+
+
+	SpeechRecognitionUI truc2;
+	truc2.show();
+
+
+
     bool haveSession = false;
     bool haveMainModel = false;
 
--- a/sv/sound-access.qrc	Fri Jun 20 12:09:57 2008 +0000
+++ b/sv/sound-access.qrc	Fri Jun 20 12:33:08 2008 +0000
@@ -80,6 +80,8 @@
     <file>icons/addToLayer.png</file>
     <file>icons/icon_pdf.png</file>
     <file>icons/videoIcon.png</file>
+	<file>icons/rect.png</file>
+	<file>icons/stop.png</file>
 
     <file>icons/grid.png</file>
   
--- a/sv/sound_access.vcproj	Fri Jun 20 12:09:57 2008 +0000
+++ b/sv/sound_access.vcproj	Fri Jun 20 12:33:08 2008 +0000
@@ -140,7 +140,7 @@
 				Name="VCCLCompilerTool"
 				AdditionalOptions="-Zm200 -EHsc"
 				Optimization="0"
-				AdditionalIncludeDirectories="&quot;$(QTDIR)\include\QtCore&quot;;&quot;$(QTDIR)\include\QtNetwork&quot;;&quot;$(QTDIR)\include\QtGui&quot;;&quot;$(QTDIR)\include\QtXml&quot;;&quot;$(QTDIR)\include&quot;;.;..;../data;audioio;videoio;document;transform;osc;filter;main;&quot;$(QTDIR)\include\ActiveQt&quot;;tmp_moc;&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot;;&quot;$(EASAIER_UTILS_DIR)\vamp-plugin-sdk\vamp-plugin-sdk-1.0&quot;;&quot;$(EASAIER_UTILS_DIR)\libsamplerate\libsamplerate-0.1.2\src&quot;;&quot;$(EASAIER_UTILS_DIR)\fftw3\fftw3.1.2&quot;;&quot;$(EASAIER_UTILS_DIR)\portaudio\portaudio_v18_1\pa_common&quot;;&quot;$(EASAIER_UTILS_DIR)\libsndfile\libsndfile-1_0_16&quot;;&quot;$(EASAIER_UTILS_DIR)\bzip2\bzip2-1.0.3&quot;;&quot;$(EASAIER_UTILS_DIR)\SDL-1.2.12\include&quot;;&quot;$(EASAIER_UTILS_DIR)\ffmpeg\include&quot;"
+				AdditionalIncludeDirectories="&quot;$(QTDIR)\include\QtCore&quot;;&quot;$(QTDIR)\include\QtNetwork&quot;;&quot;$(QTDIR)\include\QtGui&quot;;&quot;$(QTDIR)\include\QtXml&quot;;&quot;$(QTDIR)\include&quot;;.;..;../data;audioio;videoio;document;transform;osc;filter;main;&quot;$(QTDIR)\include\ActiveQt&quot;;tmp_moc;&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot;;&quot;$(EASAIER_UTILS_DIR)\portaudio\portaudio_v18_1\pa_common&quot;;&quot;$(EASAIER_UTILS_DIR)\vamp-plugin-sdk\vamp-plugin-sdk-1.0&quot;;&quot;$(EASAIER_UTILS_DIR)\libsamplerate\libsamplerate-0.1.2\src&quot;;&quot;$(EASAIER_UTILS_DIR)\fftw3\fftw3.1.2&quot;;&quot;$(EASAIER_UTILS_DIR)\libsndfile\libsndfile-1_0_16&quot;;&quot;$(EASAIER_UTILS_DIR)\bzip2\bzip2-1.0.3&quot;;&quot;$(EASAIER_UTILS_DIR)\SDL-1.2.12\include&quot;;&quot;$(EASAIER_UTILS_DIR)\ffmpeg\include&quot;"
 				PreprocessorDefinitions="BUILD_DEBUG;UNICODE;_UNICODE;_WINDOWS;QT_LARGEFILE_SUPPORT;WIN32;HAVE_BZ2;HAVE_PORTAUDIO;HAVE_PORTAUDIO_V18;HAVE_OGGZ;HAVE_FISHSOUND;HAVE_FFTW3F;HAVE_VAMP;HAVE_VAMP_HOSTSDK;HAVE_SNDFILE;HAVE_SAMPLERATE;HAVE_MAD;HAVE_VIDEO;SDL_FFMPEG_LIBRARY;QT_THREAD_SUPPORT;QT_DLL;QT_XML_LIB;QT_GUI_LIB;QT_NETWORK_LIB;QT_CORE_LIB;USE_VC;_USE_MATH_DEFINES"
 				GeneratePreprocessedFile="0"
 				MinimalRebuild="false"
@@ -446,10 +446,6 @@
 			Filter="h;hpp;hxx;hm;inl;inc;xsd"
 			>
 			<File
-				RelativePath=".\audioio\AudioRecording.h"
-				>
-			</File>
-			<File
 				RelativePath="audioio\AudioTargetFactory.h"
 				>
 			</File>
@@ -735,6 +731,32 @@
 					</FileConfiguration>
 				</File>
 				<File
+					RelativePath=".\audioio\AudioRecording.h"
+					>
+					<FileConfiguration
+						Name="Release|Win32"
+						>
+						<Tool
+							Name="VCCustomBuildTool"
+							Description="MOC $(InputFileName)"
+							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtNetwork&quot; -I &quot;$(QTDIR)\include\QtNetwork&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;..\..\vamp-plugin-sdk&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;audioio&quot; -I &quot;document&quot; -I &quot;transform&quot; -I &quot;osc&quot; -I &quot;main&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp"
+							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
+							Outputs="tmp_moc\moc_$(InputName).cpp"
+						/>
+					</FileConfiguration>
+					<FileConfiguration
+						Name="Debug|Win32"
+						>
+						<Tool
+							Name="VCCustomBuildTool"
+							Description="MOC $(InputFileName)"
+							CommandLine="$(QTDIR)\bin\moc.exe -DBUILD_DEBUG -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_XML_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtNetwork&quot; -I &quot;$(QTDIR)\include\QtNetwork&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;audioio&quot; -I &quot;document&quot; -I &quot;transform&quot; -I &quot;osc&quot; -I &quot;main&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp"
+							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
+							Outputs="tmp_moc\moc_$(InputName).cpp"
+						/>
+					</FileConfiguration>
+				</File>
+				<File
 					RelativePath="document\Document.h"
 					>
 					<FileConfiguration
@@ -1209,6 +1231,10 @@
 				>
 			</File>
 			<File
+				RelativePath=".\tmp_moc\moc_AudioRecording.cpp"
+				>
+			</File>
+			<File
 				RelativePath="tmp_moc\moc_Document.cpp"
 				>
 			</File>
@@ -1518,6 +1544,10 @@
 				>
 			</File>
 			<File
+				RelativePath=".\icons\rect.png"
+				>
+			</File>
+			<File
 				RelativePath="icons\redo.png"
 				>
 			</File>
@@ -1574,6 +1604,10 @@
 				>
 			</File>
 			<File
+				RelativePath=".\icons\stop.png"
+				>
+			</File>
+			<File
 				RelativePath="samples\strike.wav"
 				>
 			</File>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/widgets/SpeechFileHandler.cpp	Fri Jun 20 12:33:08 2008 +0000
@@ -0,0 +1,54 @@
+#include "SpeechFileHandler.h"
+
+SpeechFileHandler::SpeechFileHandler(){
+	_tag_vocal_query_result="vocal_query_result";
+	_tag_word="word";
+	_tag_confidence = "confidence";
+	_result = "";
+}
+SpeechFileHandler::~SpeechFileHandler(){
+
+}
+bool SpeechFileHandler::fatalError (const QXmlParseException & exception){
+	return false;
+}
+
+bool SpeechFileHandler::characters ( const QString &str){
+	return true;
+}
+
+bool SpeechFileHandler::endDocument (){
+	return true;
+}
+
+bool SpeechFileHandler::endElement (const QString &namespaceURI, const QString &localName, const QString &qName ){
+	_currentTag = "";
+	if(localName==_tag_vocal_query_result){
+		_result+="<br>";
+	}
+	return true;
+}
+
+bool SpeechFileHandler::startDocument (){
+	return true;
+}
+
+bool SpeechFileHandler::startElement (const QString &namespaceURI, const QString &localName, const QString &qName, const QXmlAttributes &attribs ){
+	_currentTag = localName;
+	if(localName == _tag_vocal_query_result){
+		for(int i = 0 ; i < attribs.length() ; i++){
+			QString aux = attribs.localName(i);
+			if(aux==_tag_word){
+				_result+=attribs.value(i);
+			}else if(aux == _tag_confidence){
+				_result+="\t";
+				_result+=attribs.value(i);
+			}
+		}
+	}
+	return true;
+}
+	
+QString SpeechFileHandler::getResult(){
+	return _result;
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/widgets/SpeechFileHandler.h	Fri Jun 20 12:33:08 2008 +0000
@@ -0,0 +1,33 @@
+#ifndef SPEECH_FILE_HANDLER_H
+#define SPEECH_FILE_HANDLER_H
+
+#include <QObject>
+#include <QXmlDefaultHandler>
+#include <QMap>
+#include <QVector>
+
+
+class SpeechFileHandler :public QObject, public QXmlDefaultHandler{
+	Q_OBJECT
+public:
+	SpeechFileHandler();
+	~SpeechFileHandler();
+	virtual bool fatalError (const QXmlParseException & exception);
+	virtual bool characters ( const QString &);
+	virtual bool endDocument ();
+	virtual bool endElement (const QString &, const QString &, const QString & );
+	virtual bool startDocument () ;
+	virtual bool startElement ( const QString &, const QString &, const QString &, const QXmlAttributes & );
+	
+	QString getResult();
+
+private :
+	QString _tag_vocal_query_result, _tag_word, _tag_confidence;
+	QString _currentTag;
+	
+	QString _result;
+
+
+};
+
+#endif
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/widgets/SpeechRecognitionUI.cpp	Fri Jun 20 12:33:08 2008 +0000
@@ -0,0 +1,83 @@
+
+#include "SpeechRecognitionUI.h"
+
+#include <QGridLayout>
+
+
+#include "../sv/main/MainWindow.h"
+#include "../sv/main/EasaierSessionManager.h"
+
+
+
+
+SpeechRecognitionUI::SpeechRecognitionUI(QWidget *parent) : QWidget(parent){
+
+	_audioRecorder = new AudioRecording();
+	
+	connect(this, SIGNAL(startRect()),_audioRecorder, SLOT(rect()));
+	connect(this, SIGNAL(stopRect()),_audioRecorder, SLOT(stopRect()));
+
+	_bRect = new QPushButton;
+	_bPlay = new QPushButton;
+	_bSend = new QPushButton;
+
+	
+	_bRect->setMaximumSize(24,24);
+	_bPlay->setMaximumSize(24,24);
+	_bSend->setMaximumSize(24,24);
+
+	_bPlay->setEnabled(false);
+	_bSend->setEnabled(false);
+
+	_bRect->setIcon(QIcon(":icons/rect.png"));
+	_bPlay->setIcon(QIcon(":icons/playpause.png"));
+	_bSend->setIcon(QIcon(":icons/addToLayer.png"));
+	
+
+
+	_textEdit = new QTextEdit();
+	_textEdit->setMinimumWidth(200);
+
+	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(_bSend,3,1,1,1,Qt::AlignTop);
+	layout->addWidget(_textEdit,1,2,4,1);
+
+
+	//SLOTs end SIGNALs
+	
+	connect(_bRect, SIGNAL(pressed ()), this,SLOT(rect()));
+	connect(_bSend, SIGNAL(pressed ()), this,SLOT(sendQuery()));
+
+}
+
+
+SpeechRecognitionUI::~SpeechRecognitionUI(){
+
+}
+
+
+void SpeechRecognitionUI::play(){
+
+}
+
+void SpeechRecognitionUI::rect(){
+	if(_audioRecorder->isRecording()){
+		emit(stopRect());
+		_bRect->setIcon(QIcon(":icons/rect.png"));
+		_bPlay->setEnabled(true);
+		_bSend->setEnabled(true);
+
+	}else{
+		emit(startRect());
+		_bRect->setIcon(QIcon(":icons/stop.png"));
+		_bPlay->setEnabled(false);
+		_bSend->setEnabled(false);
+	}
+}
+
+void SpeechRecognitionUI::sendQuery(){
+	MainWindow::instance()->getEasaierSessionManager()->speechRecognition("SpeechRecognition");
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/widgets/SpeechRecognitionUI.h	Fri Jun 20 12:33:08 2008 +0000
@@ -0,0 +1,50 @@
+/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
+
+/*	Sound Access	
+		EASAIER client application.	
+		Silogic 2008. Benoit Rigolleau. 
+	
+	This program is free software; you can redistribute it and/or    
+	modify it under the terms of the GNU General Public License as    
+	published by the Free Software Foundation; either version 2 of the    
+	License, or (at your option) any later version.  See the file    
+	COPYING included with this distribution for more information.
+*/
+
+#ifndef _SPEECH_RECOGNITION_H_
+#define _SPEECH_RECOGNITION_H_
+
+#include <QWidget>
+#include <QTextEdit> 
+#include <QPushButton>
+
+#include "../sv/audioio/AudioRecording.h"
+
+class SpeechRecognitionUI : public QWidget
+{
+    Q_OBJECT
+public:
+
+    SpeechRecognitionUI(QWidget *parent = 0);
+    virtual ~SpeechRecognitionUI();
+
+public slots:
+	void play();
+	void rect();
+	void sendQuery();
+
+signals :
+	void startRect();
+	void stopRect();
+
+protected:
+
+private :
+	QTextEdit *_textEdit;
+	AudioRecording *_audioRecorder;
+	QPushButton *_bRect;
+	QPushButton *_bPlay;
+	QPushButton *_bSend;
+};
+
+#endif
\ No newline at end of file
--- a/widgets/svwidgets.vcproj	Fri Jun 20 12:09:57 2008 +0000
+++ b/widgets/svwidgets.vcproj	Fri Jun 20 12:33:08 2008 +0000
@@ -120,7 +120,7 @@
 				Name="VCCLCompilerTool"
 				AdditionalOptions="-Zm200 -EHsc"
 				Optimization="0"
-				AdditionalIncludeDirectories="&quot;$(QTDIR)\include\QtCore&quot;;&quot;$(QTDIR)\include\QtGui&quot;;&quot;$(QTDIR)\include\QtXml&quot;;&quot;$(QTDIR)\include\QtNetwork&quot;;&quot;$(QTDIR)\include&quot;;.;..;..\sv;&quot;$(QTDIR)\include\ActiveQt&quot;;tmp_moc;&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot;;&quot;$(EASAIER_UTILS_DIR)\vamp-plugin-sdk\vamp-plugin-sdk-1.0&quot;;&quot;$(EASAIER_UTILS_DIR)\fftw3\fftw3.1.2&quot;;&quot;$(EASAIER_UTILS_DIR)\SDL-1.2.12\include&quot;"
+				AdditionalIncludeDirectories="&quot;$(QTDIR)\include\QtCore&quot;;&quot;$(QTDIR)\include\QtGui&quot;;&quot;$(QTDIR)\include\QtXml&quot;;&quot;$(QTDIR)\include\QtNetwork&quot;;&quot;$(QTDIR)\include&quot;;.;..;..\sv;&quot;$(QTDIR)\include\ActiveQt&quot;;tmp_moc;&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot;;&quot;$(EASAIER_UTILS_DIR)\vamp-plugin-sdk\vamp-plugin-sdk-1.0&quot;;&quot;$(EASAIER_UTILS_DIR)\fftw3\fftw3.1.2&quot;;&quot;$(EASAIER_UTILS_DIR)\SDL-1.2.12\include&quot;;&quot;$(EASAIER_UTILS_DIR)\portaudio\portaudio_v18_1\pa_common&quot;;&quot;$(EASAIER_UTILS_DIR)\libsndfile\libsndfile-1_0_16&quot;"
 				PreprocessorDefinitions="BUILD_DEBUG;UNICODE;_UNICODE;_WINDOWS;QT_LARGEFILE_SUPPORT;WIN32;HAVE_BZ2;HAVE_PORTAUDIO;HAVE_PORTAUDIO_V18;HAVE_OGGZ;HAVE_FISHSOUND;HAVE_FFTW3F;HAVE_VAMP;HAVE_VAMP_HOSTSDK;HAVE_SNDFILE;HAVE_SAMPLERATE;HAVE_MAD;QT_THREAD_SUPPORT;QT_DLL;QT_XML_LIB;QT_GUI_LIB;QT_NETWORK_LIB;QT_CORE_LIB;USE_VC;_USE_MATH_DEFINES"
 				GeneratePreprocessedFile="0"
 				MinimalRebuild="false"
@@ -272,6 +272,10 @@
 				>
 			</File>
 			<File
+				RelativePath=".\CirclePlotter.cpp"
+				>
+			</File>
+			<File
 				RelativePath=".\ConnectionSettings.cpp"
 				>
 			</File>
@@ -455,6 +459,18 @@
 					>
 				</File>
 			</Filter>
+			<Filter
+				Name="Speech recognition"
+				>
+				<File
+					RelativePath=".\SpeechFileHandler.cpp"
+					>
+				</File>
+				<File
+					RelativePath=".\SpeechRecognitionUI.cpp"
+					>
+				</File>
+			</Filter>
 		</Filter>
 		<Filter
 			Name="Header Files"
@@ -583,7 +599,7 @@
 						<Tool
 							Name="VCCustomBuildTool"
 							Description="MOC $(InputFileName)"
-							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp"
+							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp&#x0D;&#x0A;"
 							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
 							Outputs="tmp_moc\moc_$(InputName).cpp"
 						/>
@@ -594,7 +610,7 @@
 						<Tool
 							Name="VCCustomBuildTool"
 							Description="MOC $(InputFileName)"
-							CommandLine="$(QTDIR)\bin\moc.exe -DBUILD_DEBUG -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp"
+							CommandLine="$(QTDIR)\bin\moc.exe -DBUILD_DEBUG -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp&#x0D;&#x0A;"
 							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
 							Outputs="tmp_moc\moc_$(InputName).cpp"
 						/>
@@ -638,6 +654,32 @@
 					</FileConfiguration>
 				</File>
 				<File
+					RelativePath=".\CirclePlotter.h"
+					>
+					<FileConfiguration
+						Name="Release|Win32"
+						>
+						<Tool
+							Name="VCCustomBuildTool"
+							Description="MOC $(InputFileName)"
+							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp&#x0D;&#x0A;"
+							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
+							Outputs="tmp_moc\moc_$(InputName).cpp"
+						/>
+					</FileConfiguration>
+					<FileConfiguration
+						Name="Debug|Win32"
+						>
+						<Tool
+							Name="VCCustomBuildTool"
+							Description="MOC $(InputFileName)"
+							CommandLine="$(QTDIR)\bin\moc.exe -DBUILD_DEBUG -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp&#x0D;&#x0A;"
+							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
+							Outputs="tmp_moc\moc_$(InputName).cpp"
+						/>
+					</FileConfiguration>
+				</File>
+				<File
 					RelativePath=".\ConnectionSettings.h"
 					>
 					<FileConfiguration
@@ -2311,6 +2353,84 @@
 					</File>
 				</Filter>
 			</Filter>
+			<Filter
+				Name="Speech recognition"
+				>
+				<File
+					RelativePath=".\SpeechFileHandler.h"
+					>
+					<FileConfiguration
+						Name="Release|Win32"
+						>
+						<Tool
+							Name="VCCustomBuildTool"
+							Description="MOC $(InputFileName)"
+							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp"
+							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
+							Outputs="tmp_moc\moc_$(InputName).cpp"
+						/>
+					</FileConfiguration>
+					<FileConfiguration
+						Name="Debug|Win32"
+						>
+						<Tool
+							Name="VCCustomBuildTool"
+							Description="MOC $(InputFileName)"
+							CommandLine="$(QTDIR)\bin\moc.exe -DBUILD_DEBUG -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp"
+							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
+							Outputs="tmp_moc\moc_$(InputName).cpp"
+						/>
+					</FileConfiguration>
+					<FileConfiguration
+						Name="Static_Release|Win32"
+						>
+						<Tool
+							Name="VCCustomBuildTool"
+							Description="MOC $(InputFileName)"
+							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_NO_DEBUG -DQT_STATIC  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp"
+							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
+							Outputs="tmp_moc\moc_$(InputName).cpp"
+						/>
+					</FileConfiguration>
+				</File>
+				<File
+					RelativePath=".\SpeechRecognitionUI.h"
+					>
+					<FileConfiguration
+						Name="Release|Win32"
+						>
+						<Tool
+							Name="VCCustomBuildTool"
+							Description="MOC $(InputFileName)"
+							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp"
+							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
+							Outputs="tmp_moc\moc_$(InputName).cpp"
+						/>
+					</FileConfiguration>
+					<FileConfiguration
+						Name="Debug|Win32"
+						>
+						<Tool
+							Name="VCCustomBuildTool"
+							Description="MOC $(InputFileName)"
+							CommandLine="$(QTDIR)\bin\moc.exe -DBUILD_DEBUG -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp"
+							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
+							Outputs="tmp_moc\moc_$(InputName).cpp"
+						/>
+					</FileConfiguration>
+					<FileConfiguration
+						Name="Static_Release|Win32"
+						>
+						<Tool
+							Name="VCCustomBuildTool"
+							Description="MOC $(InputFileName)"
+							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_NO_DEBUG -DQT_STATIC  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp"
+							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
+							Outputs="tmp_moc\moc_$(InputName).cpp"
+						/>
+					</FileConfiguration>
+				</File>
+			</Filter>
 		</Filter>
 		<Filter
 			Name="Generated Files"
@@ -2337,6 +2457,10 @@
 				>
 			</File>
 			<File
+				RelativePath=".\tmp_moc\moc_CirclePlotter.cpp"
+				>
+			</File>
+			<File
 				RelativePath=".\tmp_moc\moc_ConfidenceListWidget.cpp"
 				>
 			</File>
@@ -2489,6 +2613,14 @@
 				>
 			</File>
 			<File
+				RelativePath=".\tmp_moc\moc_SpeechFileHandler.cpp"
+				>
+			</File>
+			<File
+				RelativePath=".\tmp_moc\moc_SpeechRecognitionUI.cpp"
+				>
+			</File>
+			<File
 				RelativePath="tmp_moc\moc_SubdividingMenu.cpp"
 				>
 			</File>