summaryrefslogtreecommitdiffstats
path: root/chrome/browser/speech/speech_recognizer.h
Commit message (Collapse)AuthorAgeFilesLines
* Move core pieces of speech from chrome to content.jam@chromium.org2011-02-261-151/+0
| | | | | | | TBR=satish Review URL: http://codereview.chromium.org/6591024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@76165 0039d316-1c4b-4281-b951-d872f2087c98
* If user had consented for metrics reporting, send speech input request ↵satish@chromium.org2011-01-201-1/+3
| | | | | | | | | | | | | | | | | | | | | | | origin to the server. This is the chromium side of the webkit patch https://bugs.webkit.org/show_bug.cgi?id=52718. Suggested reviewer split: wtc@ - the 2 url_fetcher.* files hans@ - rest of the files I needed to add a URLFetcher::set_referrer() method to send the origin url in the Referer header. Also I had to create a new IPC params struct for startRecognition since the number of parameters exceed what is provided by the macros. And in the process I also moved the speech input IPC messages to their own source files. BUG=none TEST=No change in functionality except additional debug info sent to server. Review URL: http://codereview.chromium.org/6308009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@71949 0039d316-1c4b-4281-b951-d872f2087c98
* Add the option of compressing speech input audio using FLAC.satish@chromium.org2011-01-171-7/+3
| | | | | | | | | | | | | | | In the process, added a generic AudioEncoder interface which could create the requested codec. Right now the codec is set to FLAC. In a future CL, we'll determine the codec to use dynamically based on bandwidth considerations. This CL depends on http://codereview.chromium.org/6205006/ going in first. BUG=61677 TEST=none Review URL: http://codereview.chromium.org/6111009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@71599 0039d316-1c4b-4281-b951-d872f2087c98
* Add the "virtual" keyword on method overrides that are missing it.erg@google.com2010-12-081-6/+8
| | | | | | | | | BUG=none TEST=compiles Review URL: http://codereview.chromium.org/5648004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@68606 0039d316-1c4b-4281-b951-d872f2087c98
* On windows, send audio hardware info with speech input requests if user ↵satish@chromium.org2010-11-191-1/+4
| | | | | | | | | | | | | consented. This may help identify quality issues. BUG=61677 TEST=none Review URL: http://codereview.chromium.org/4724001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@66749 0039d316-1c4b-4281-b951-d872f2087c98
* Language tag for speech.leandrogracia@chromium.org2010-11-011-1/+4
| | | | | | | | | | | | | | | | | | | | This is the 3rd in a 4-sided patch to add language attribute support to speech input. The other patches can be found here: 1st - http://codereview.chromium.org/3615005/show 2nd - https://bugs.webkit.org/show_bug.cgi?id=47089 4th - https://bugs.webkit.org/show_bug.cgi?id=47420 This patch will be submitted once the webkit change has been rolled into chromium DEPS. Also, a last webkit cleanup patch will be submitted at any point after the 2nd patch. BUG=53598 TEST= Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=64466 Review URL: http://codereview.chromium.org/3595018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@64596 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 64466 - Language tag for speech.nirnimesh@chromium.org2010-10-291-4/+1
| | | | | | | | | | | | | | | | | | | | | This is the 3rd in a 4-sided patch to add language attribute support to speech input. The other patches can be found here: 1st - http://codereview.chromium.org/3615005/show 2nd - https://bugs.webkit.org/show_bug.cgi?id=47089 4th - https://bugs.webkit.org/show_bug.cgi?id=47420 This patch will be submitted once the webkit change has been rolled into chromium DEPS. Also, a last webkit cleanup patch will be submitted at any point after the 2nd patch. BUG=53598 TEST= Review URL: http://codereview.chromium.org/3595018 TBR=leandrogracia@chromium.org Review URL: http://codereview.chromium.org/4163005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@64469 0039d316-1c4b-4281-b951-d872f2087c98
* Language tag for speech.leandrogracia@chromium.org2010-10-291-1/+4
| | | | | | | | | | | | | | | | | | This is the 3rd in a 4-sided patch to add language attribute support to speech input. The other patches can be found here: 1st - http://codereview.chromium.org/3615005/show 2nd - https://bugs.webkit.org/show_bug.cgi?id=47089 4th - https://bugs.webkit.org/show_bug.cgi?id=47420 This patch will be submitted once the webkit change has been rolled into chromium DEPS. Also, a last webkit cleanup patch will be submitted at any point after the 2nd patch. BUG=53598 TEST= Review URL: http://codereview.chromium.org/3595018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@64466 0039d316-1c4b-4281-b951-d872f2087c98
* Added grammar attribute to speech input.satish@chromium.org2010-10-281-1/+3
| | | | | | | | | | | | | | | | | | In https://bugs.webkit.org/show_bug.cgi?id=48339 we added support for a 'x-webkit-grammar' attribute for speech input. In this CL we receive that as a parameter to SpeechInputDispatcher::startRecognition() and pass it up to the SpeechRecognitionRequest object which encodes and sends it as a url parameter to the server. To aid in this I also moved the speech server URL from SpeechRecognizer.cc to SpeechRecognitionRequest.cc. Also added a browser test for this attribute. It is marked as FLAKY now because the code is exactly the same as with the TestBasicRecognition test in that file and that test is FLAKY now. Both are marked with the same bug and I will remove the FLAKY_ prefix on both when the bug is closed. BUG=none TEST=browser_tests --gtest_filter=SpeechInputBrowserTest.GrammarAttribute Review URL: http://codereview.chromium.org/4183002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@64213 0039d316-1c4b-4281-b951-d872f2087c98
* Add ability to parse multiple recognition results and send them to WebKit.satish@chromium.org2010-10-261-4/+5
| | | | | | | | | | | | The relevant Webkit change was submitted earlier: http://bugs.webkit.org/show_bug.cgi?id=48068 The unit tests have been updated for the multi-results case as well. BUG=none TEST=unit_tests --gtest_filter=Speech* Review URL: http://codereview.chromium.org/4119004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@63891 0039d316-1c4b-4281-b951-d872f2087c98
* Show a volume indicator as audio is being recorded.satish@chromium.org2010-09-161-0/+7
| | | | | | | | | | | | | | | | | | | Per UX input from Cole, this matches the implementation in the android voice actions app. Changes in this CL: - Instead of the old mic icon use the recently added mic-volume-empty, mic-volume-full and mask images for the volume indicator. - Extended the endpointer code to return the audio RMS level (copied from the original source). - SpeechRecognizer receives the above calculated RMS level and computes a volume level in the [0.0-1.0] range. - SpeechInputManager receives the above computed volume level and passes it to SpeechInputBubbleController for display, which passes it to SpeechInputBubble. - SpeechInputBubbleBase creates the appropriate skia bitmap for the volume indicator and passes to the platform specific code for display. - As part of the above SpeechInputBubbleController addition for volume level, I wrote a single function to process all calls received by it and handled in the UI thread for simplicity. BUG=53598 TEST=updated existing tests. Also test manually, use speech input and verify the audio level changes appropriately in the UI as mic is moved near and far. Review URL: http://codereview.chromium.org/3384005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@59638 0039d316-1c4b-4281-b951-d872f2087c98
* We used to show error messages as info bars earlier. Based on UX feedback, ↵satish@chromium.org2010-09-101-2/+3
| | | | | | | | | | | | | we now show the messages within the speech input UI bubble. We also let the user retry recognition without returning the error to the web page unless the user clicked the cancel button or closed the bubble. For this to work, we now keep the request alive in the SpeechInputManager map until it completes successfully or user explicitly cancelled it. We also keep the SpeechInputBubble object alive, even when the actual bubble window is not visible on screen, and construct the window if required whenever we want to show the recording status or error message on screen. BUG=53598 TEST=unit_tests --gtest_filter=SpeechInputBubbleControllerTest.* Review URL: http://codereview.chromium.org/3352018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@59166 0039d316-1c4b-4281-b951-d872f2087c98
* Give time for environment estimation and detect the no-speech case.satish@chromium.org2010-09-091-3/+25
| | | | | | | | | | | | | | | | Environment estimation helps establish a baseline against which the endpointer compares to find beginning and end of speech. We now do this estimation for a few hundred milliseconds before showing the speech UI asking user to speak. Using this updated endpointer we also detect if no speech was heard for many seconds and if so inform the delegate as an error. In a future CL we'll allow the user to easily retry recognition in these error cases. BUG=53598 TEST=unit_tests --gtest_filter=SpeechRecognizerTests.* Review URL: http://codereview.chromium.org/3341020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@58930 0039d316-1c4b-4281-b951-d872f2087c98
* Show proper messages if we find errors before or during audio recording.satish@chromium.org2010-08-271-0/+5
| | | | | | | | | BUG=none TEST=manual, try clicking on speech input button without a mic connected. Review URL: http://codereview.chromium.org/3240002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@57672 0039d316-1c4b-4281-b951-d872f2087c98
* Make SpeechInputManager a process wide singleton so it can make sure there ↵satish@chromium.org2010-08-261-11/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | is only 1 active audio recording happening at any time. Without this change, each SpeechInputDispatcherHost has it's own instance of SpeechInputManager so multiple tabs/windows can record audio simultaneously (and get the same audio data!). With SpeechInputManager a singleton, it is no longer possible for the (render-view-id, request-id) pair to be a unique identifier for a caller. We need to add render-process-id into the mix. None of the speech input code cares about any of these and they can just work with an opaque identifier, so I've added a SpeechInputDispatcherHost::SpeechInputCallers class which maps between the tuple of 3 values above to a single int/ID which can be passed as the caller id. With this change I have removed the SpeechInputCallerId type replacing it with an int everywhere. Also being a singleton the same SpeechInputManager is used by all SpeechInputDispatcherHost instances, hence their delegate pointers could no longer be passed via the constructor of SpeechInputManager. Instead we now pass the delegate to SpeechInputManager::StartRecognition and it gets stored as part of the speech input session/request data. To implement this I have added SpeechInputManager::SpeechInputRequest type and modified related code in that class accordingly. BUG=none TEST=All existing speech input unit tests and browser tests should pass. In manual testing, when recording is in progress in one browser window starting speech input in another browser window should abort/stop the first recording session. Review URL: http://codereview.chromium.org/3116048 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@57524 0039d316-1c4b-4281-b951-d872f2087c98
* Fix order of includes in header file.satish@chromium.org2010-08-251-5/+6
| | | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/3110039 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@57323 0039d316-1c4b-4281-b951-d872f2087c98
* Add an endpointer for detecting end of speech.satish@chromium.org2010-08-241-0/+2
| | | | | | | | | | | This is based on existing code/math. I have removed all the unused code for our usage and adapted to the chromium coding style. TEST=unit_tests --gtest_filter=EndpointerTest.* BUG=none Review URL: http://codereview.chromium.org/3117026 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@57226 0039d316-1c4b-4281-b951-d872f2087c98
* Compress recorded audio with speex before transmitting to server for ↵satish@chromium.org2010-08-181-0/+3
| | | | | | | | | | | recognition. BUG=none TEST=none Review URL: http://codereview.chromium.org/3189007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@56525 0039d316-1c4b-4281-b951-d872f2087c98
* Support for multiple speech enabled elements in same page.satish@chromium.org2010-08-171-5/+13
| | | | | | | | | | | | | | | This is the chromium side of https://bugs.webkit.org/show_bug.cgi?id=43922. For all speech input requests WebKit now sends a 'requestId' which identifies the input element within the page. This requestId is returned back to WebKit in all the speech input callbacks/events. Within chromium, the pair (render view id, request id) uniquely identifies a caller and we introduce the SpeechInputCallerId to hold this data. All code which was previously using render view id now uses this caller id. Once this is working fully on both ends I'll add relevant browser tests. BUG=none TEST=manually Review URL: http://codereview.chromium.org/3130018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@56333 0039d316-1c4b-4281-b951-d872f2087c98
* Adds SpeechRecognizer which provides a simple interface to record and ↵satish@chromium.org2010-08-121-0/+99
recognize speech. Also added a unit test for checking the callbacks fire as expected. TEST=unit_tests --gtest_filter=SpeechRecognizerTest.* BUG=none Review URL: http://codereview.chromium.org/3124009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@55918 0039d316-1c4b-4281-b951-d872f2087c98