summaryrefslogtreecommitdiffstats
path: root/content/browser
diff options
context:
space:
mode:
authorsatish@chromium.org <satish@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-03-14 16:59:58 +0000
committersatish@chromium.org <satish@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-03-14 16:59:58 +0000
commit9598dce7a441e64828958482b4f9fa23d95c674e (patch)
tree6a24c1d64e54424f3c2d817aedc12c758c0166c3 /content/browser
parent184808f27fbc5cf8dc4a9c637d644bda31c6cfe8 (diff)
downloadchromium_src-9598dce7a441e64828958482b4f9fa23d95c674e.zip
chromium_src-9598dce7a441e64828958482b4f9fa23d95c674e.tar.gz
chromium_src-9598dce7a441e64828958482b4f9fa23d95c674e.tar.bz2
A small set of related fixes:
- Tell speech recognition server to return errors as part of the JSON response and not HTTP error codes (xjerr=1 url param) - Don't treat an empty response as a parse failure, instead bubble it up to the recognizer which already shows a proper 'speech not recognized' message - Fix a constant's value which was wrong (should've been 30.0, not 60.0) - Change mic image to blue when recording. BUG=none TEST=unit_tests --gtest_filter=SpeechRecognitionRequestTest.* Review URL: http://codereview.chromium.org/6682029 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@78043 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/browser')
-rw-r--r--content/browser/speech/speech_recognition_request.cc6
-rw-r--r--content/browser/speech/speech_recognition_request_unittest.cc5
-rw-r--r--content/browser/speech/speech_recognizer.cc2
-rw-r--r--content/browser/speech/speech_recognizer_unittest.cc6
4 files changed, 10 insertions, 9 deletions
diff --git a/content/browser/speech/speech_recognition_request.cc b/content/browser/speech/speech_recognition_request.cc
index fa6324f..d0869f3 100644
--- a/content/browser/speech/speech_recognition_request.cc
+++ b/content/browser/speech/speech_recognition_request.cc
@@ -19,7 +19,7 @@
namespace {
const char* const kDefaultSpeechRecognitionUrl =
- "https://www.google.com/speech-api/v1/recognize?client=chromium&";
+ "https://www.google.com/speech-api/v1/recognize?xjerr=1&client=chromium&";
const char* const kHypothesesString = "hypotheses";
const char* const kUtteranceString = "utterance";
const char* const kConfidenceString = "confidence";
@@ -62,10 +62,6 @@ bool ParseServerResponse(const std::string& response_body,
return false;
}
const ListValue* hypotheses_list = static_cast<ListValue*>(hypotheses_value);
- if (hypotheses_list->GetSize() == 0) {
- VLOG(1) << "ParseServerResponse: hypotheses list is empty.";
- return false;
- }
size_t index = 0;
for (; index < hypotheses_list->GetSize(); ++index) {
diff --git a/content/browser/speech/speech_recognition_request_unittest.cc b/content/browser/speech/speech_recognition_request_unittest.cc
index e789ef7..865f099 100644
--- a/content/browser/speech/speech_recognition_request_unittest.cc
+++ b/content/browser/speech/speech_recognition_request_unittest.cc
@@ -81,6 +81,11 @@ TEST_F(SpeechRecognitionRequestTest, BasicTest) {
EXPECT_EQ(ASCIIToUTF16("123456"), result_[1].utterance);
EXPECT_EQ(0.5, result_[1].confidence);
+ // Zero results.
+ CreateAndTestRequest(true, "{\"hypotheses\":[]}");
+ EXPECT_FALSE(error_);
+ EXPECT_EQ(0U, result_.size());
+
// Http failure case.
CreateAndTestRequest(false, "");
EXPECT_TRUE(error_);
diff --git a/content/browser/speech/speech_recognizer.cc b/content/browser/speech/speech_recognizer.cc
index 3b9201a..953dfb14 100644
--- a/content/browser/speech/speech_recognizer.cc
+++ b/content/browser/speech/speech_recognizer.cc
@@ -24,7 +24,7 @@ const float kDownSmoothingFactor = 0.7f;
const float kAudioMeterMaxDb = 90.31f;
// This value corresponds to RMS dB for int16 with 6 most-significant-bits = 0.
// Values lower than this will display as empty level-meter.
-const float kAudioMeterMinDb = 60.21f;
+const float kAudioMeterMinDb = 30.0f;
const float kAudioMeterDbRange = kAudioMeterMaxDb - kAudioMeterMinDb;
// Maximum level to draw to display unclipped meter. (1.0f displays clipping.)
diff --git a/content/browser/speech/speech_recognizer_unittest.cc b/content/browser/speech/speech_recognizer_unittest.cc
index f3c9cee..738eaf9 100644
--- a/content/browser/speech/speech_recognizer_unittest.cc
+++ b/content/browser/speech/speech_recognizer_unittest.cc
@@ -366,14 +366,14 @@ TEST_F(SpeechRecognizerTest, SetInputVolumeCallback) {
controller->event_handler()->OnData(controller, &audio_packet_[0],
audio_packet_.size());
MessageLoop::current()->RunAllPending();
- EXPECT_FLOAT_EQ(0.51877826f, volume_);
+ EXPECT_FLOAT_EQ(0.74939233f, volume_);
FillPacketWithTestWaveform();
controller->event_handler()->OnData(controller, &audio_packet_[0],
audio_packet_.size());
MessageLoop::current()->RunAllPending();
- EXPECT_FLOAT_EQ(0.81907868f, volume_);
- EXPECT_FLOAT_EQ(0.52143687f, noise_volume_);
+ EXPECT_FLOAT_EQ(0.89926866f, volume_);
+ EXPECT_FLOAT_EQ(0.75071919f, noise_volume_);
EXPECT_EQ(SpeechRecognizer::RECOGNIZER_NO_ERROR, error_);
EXPECT_FALSE(recording_complete_);