Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(900)

Unified Diff: content/browser/speech/speech_recognition_manager_impl.cc

Issue 9688012: Refactoring of chrome speech recognition architecture (CL1.2) (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/speech/speech_recognition_manager_impl.cc
diff --git a/content/browser/speech/speech_recognition_manager_impl.cc b/content/browser/speech/speech_recognition_manager_impl.cc
index aff3f082b93f0588a600a9ed160a8ff7b3bf427a..e11d3cda68a2cc03f016a3450cab9378d9784d02 100644
--- a/content/browser/speech/speech_recognition_manager_impl.cc
+++ b/content/browser/speech/speech_recognition_manager_impl.cc
@@ -8,14 +8,15 @@
#include "content/browser/browser_main_loop.h"
#include "content/browser/renderer_host/render_view_host_impl.h"
#include "content/browser/speech/input_tag_speech_dispatcher_host.h"
-#include "content/browser/speech/speech_recognizer_impl.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/content_browser_client.h"
+#include "content/public/browser/speech_recognizer.h"
#include "content/public/browser/render_view_host_delegate.h"
#include "content/public/browser/resource_context.h"
#include "content/public/browser/speech_recognition_manager_delegate.h"
#include "content/public/browser/speech_recognition_preferences.h"
#include "content/public/common/view_type.h"
+#include "media/audio/audio_manager.h"
using content::BrowserMainLoop;
using content::BrowserThread;
@@ -30,16 +31,17 @@ SpeechRecognitionManager* SpeechRecognitionManager::GetInstance() {
namespace speech {
struct SpeechRecognitionManagerImpl::SpeechRecognitionParams {
- SpeechRecognitionParams(InputTagSpeechDispatcherHost* delegate,
- int caller_id,
- int render_process_id,
- int render_view_id,
- const gfx::Rect& element_rect,
- const std::string& language,
- const std::string& grammar,
- const std::string& origin_url,
- net::URLRequestContextGetter* context_getter,
- content::SpeechRecognitionPreferences* recognition_prefs)
+ SpeechRecognitionParams(
+ InputTagSpeechDispatcherHost* delegate,
+ int caller_id,
+ int render_process_id,
+ int render_view_id,
+ const gfx::Rect& element_rect,
+ const std::string& language,
+ const std::string& grammar,
+ const std::string& origin_url,
+ net::URLRequestContextGetter* context_getter,
+ content::SpeechRecognitionPreferences* recognition_prefs)
: delegate(delegate),
caller_id(caller_id),
render_process_id(render_process_id),
@@ -179,7 +181,7 @@ void SpeechRecognitionManagerImpl::ProceedStartingRecognition(
Request* request = &requests_[params.caller_id];
request->delegate = params.delegate;
- request->recognizer = new SpeechRecognizerImpl(
+ request->recognizer = content::SpeechRecognizer::Create(
this, params.caller_id, params.language, params.grammar,
params.context_getter, params.recognition_prefs->FilterProfanities(),
request_info_, can_report_metrics_ ? params.origin_url : "");
@@ -215,7 +217,7 @@ void SpeechRecognitionManagerImpl::StartRecognitionForRequest(int caller_id) {
} else {
recording_caller_id_ = caller_id;
requests_[caller_id].is_active = true;
- requests_[caller_id].recognizer->StartRecording();
+ requests_[caller_id].recognizer->StartRecognition();
if (delegate_)
delegate_->ShowWarmUp(caller_id);
}
@@ -247,7 +249,7 @@ void SpeechRecognitionManagerImpl::FocusLostForRequest(int caller_id) {
void SpeechRecognitionManagerImpl::CancelRecognition(int caller_id) {
DCHECK(HasPendingRequest(caller_id));
if (requests_[caller_id].is_active)
- requests_[caller_id].recognizer->CancelRecognition();
+ requests_[caller_id].recognizer->AbortRecognition();
requests_.erase(caller_id);
if (recording_caller_id_ == caller_id)
recording_caller_id_ = 0;
@@ -274,17 +276,19 @@ void SpeechRecognitionManagerImpl::StopRecording(int caller_id) {
if (!HasPendingRequest(caller_id))
return;
- requests_[caller_id].recognizer->StopRecording();
+ requests_[caller_id].recognizer->StopAudioCapture();
}
-void SpeechRecognitionManagerImpl::SetRecognitionResult(
+// -------- SpeechRecognitionEventListener interface implementation. ---------
+
+void SpeechRecognitionManagerImpl::OnRecognitionResult(
int caller_id, const content::SpeechRecognitionResult& result) {
DCHECK(HasPendingRequest(caller_id));
GetDelegate(caller_id)->SetRecognitionResult(caller_id, result);
}
-void SpeechRecognitionManagerImpl::DidCompleteRecording(int caller_id) {
- DCHECK(recording_caller_id_ == caller_id);
+void SpeechRecognitionManagerImpl::OnAudioEnd(int caller_id) {
+ DCHECK_EQ(recording_caller_id_, caller_id);
DCHECK(HasPendingRequest(caller_id));
recording_caller_id_ = 0;
GetDelegate(caller_id)->DidCompleteRecording(caller_id);
@@ -292,21 +296,22 @@ void SpeechRecognitionManagerImpl::DidCompleteRecording(int caller_id) {
delegate_->ShowRecognizing(caller_id);
}
-void SpeechRecognitionManagerImpl::DidCompleteRecognition(int caller_id) {
+void SpeechRecognitionManagerImpl::OnRecognitionEnd(int caller_id,
+ bool success) {
GetDelegate(caller_id)->DidCompleteRecognition(caller_id);
requests_.erase(caller_id);
if (delegate_)
delegate_->DoClose(caller_id);
}
-void SpeechRecognitionManagerImpl::DidStartReceivingSpeech(int caller_id) {
+void SpeechRecognitionManagerImpl::OnSoundStart(int caller_id) {
}
-void SpeechRecognitionManagerImpl::DidStopReceivingSpeech(int caller_id) {
+void SpeechRecognitionManagerImpl::OnSoundEnd(int caller_id) {
}
-void SpeechRecognitionManagerImpl::OnRecognizerError(
- int caller_id, content::SpeechRecognitionErrorCode error) {
+void SpeechRecognitionManagerImpl::OnRecognitionError(
+ int caller_id, const content::SpeechRecognitionErrorCode& error) {
if (caller_id == recording_caller_id_)
recording_caller_id_ = 0;
requests_[caller_id].is_active = false;
@@ -314,21 +319,24 @@ void SpeechRecognitionManagerImpl::OnRecognizerError(
delegate_->ShowRecognizerError(caller_id, error);
}
-void SpeechRecognitionManagerImpl::DidStartReceivingAudio(int caller_id) {
+void SpeechRecognitionManagerImpl::OnAudioStart(int caller_id) {
DCHECK(HasPendingRequest(caller_id));
- DCHECK(recording_caller_id_ == caller_id);
+ DCHECK_EQ(recording_caller_id_, caller_id);
if (delegate_)
delegate_->ShowRecording(caller_id);
}
-void SpeechRecognitionManagerImpl::DidCompleteEnvironmentEstimation(
+void SpeechRecognitionManagerImpl::OnRecognitionStart(int caller_id) {
+}
+
+void SpeechRecognitionManagerImpl::OnEnvironmentEstimationComplete(
int caller_id) {
DCHECK(HasPendingRequest(caller_id));
- DCHECK(recording_caller_id_ == caller_id);
+ DCHECK_EQ(recording_caller_id_, caller_id);
}
-void SpeechRecognitionManagerImpl::SetInputVolume(int caller_id, float volume,
- float noise_volume) {
+void SpeechRecognitionManagerImpl::OnAudioLevelsChanged(
+ int caller_id, float volume, float noise_volume) {
DCHECK(HasPendingRequest(caller_id));
DCHECK_EQ(recording_caller_id_, caller_id);
if (delegate_)

Powered by Google App Engine
This is Rietveld 408576698