OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <vector> | 5 #include <vector> |
6 | 6 |
7 #include "content/browser/browser_thread_impl.h" | 7 #include "content/browser/browser_thread_impl.h" |
8 #include "content/browser/speech/speech_recognizer.h" | 8 #include "content/browser/speech/speech_recognizer.h" |
9 #include "content/test/test_url_fetcher_factory.h" | 9 #include "content/test/test_url_fetcher_factory.h" |
| 10 #include "media/audio/audio_manager.h" |
10 #include "media/audio/test_audio_input_controller_factory.h" | 11 #include "media/audio/test_audio_input_controller_factory.h" |
11 #include "net/base/net_errors.h" | 12 #include "net/base/net_errors.h" |
12 #include "net/url_request/url_request_status.h" | 13 #include "net/url_request/url_request_status.h" |
13 #include "testing/gtest/include/gtest/gtest.h" | 14 #include "testing/gtest/include/gtest/gtest.h" |
14 | 15 |
15 using content::BrowserThread; | 16 using content::BrowserThread; |
16 using content::BrowserThreadImpl; | 17 using content::BrowserThreadImpl; |
17 using media::AudioInputController; | 18 using media::AudioInputController; |
18 using media::TestAudioInputController; | 19 using media::TestAudioInputController; |
19 using media::TestAudioInputControllerFactory; | 20 using media::TestAudioInputControllerFactory; |
20 | 21 |
21 namespace speech_input { | 22 namespace speech_input { |
22 | 23 |
23 class SpeechRecognizerTest : public SpeechRecognizerDelegate, | 24 class SpeechRecognizerTest : public SpeechRecognizerDelegate, |
24 public testing::Test { | 25 public testing::Test { |
25 public: | 26 public: |
26 SpeechRecognizerTest() | 27 SpeechRecognizerTest() |
27 : io_thread_(BrowserThread::IO, &message_loop_), | 28 : io_thread_(BrowserThread::IO, &message_loop_), |
28 ALLOW_THIS_IN_INITIALIZER_LIST( | 29 audio_manager_(AudioManager::Create()), |
29 recognizer_(new SpeechRecognizer(this, 1, std::string(), | |
30 std::string(), NULL, false, | |
31 std::string(), std::string()))), | |
32 recording_complete_(false), | 30 recording_complete_(false), |
33 recognition_complete_(false), | 31 recognition_complete_(false), |
34 result_received_(false), | 32 result_received_(false), |
35 audio_received_(false), | 33 audio_received_(false), |
36 error_(content::SPEECH_INPUT_ERROR_NONE), | 34 error_(content::SPEECH_INPUT_ERROR_NONE), |
37 volume_(-1.0f) { | 35 volume_(-1.0f) { |
| 36 recognizer_ = new SpeechRecognizer(this, 1, std::string(), std::string(), |
| 37 NULL, audio_manager_, false, |
| 38 std::string(), std::string()); |
38 int audio_packet_length_bytes = | 39 int audio_packet_length_bytes = |
39 (SpeechRecognizer::kAudioSampleRate * | 40 (SpeechRecognizer::kAudioSampleRate * |
40 SpeechRecognizer::kAudioPacketIntervalMs * | 41 SpeechRecognizer::kAudioPacketIntervalMs * |
41 ChannelLayoutToChannelCount(SpeechRecognizer::kChannelLayout) * | 42 ChannelLayoutToChannelCount(SpeechRecognizer::kChannelLayout) * |
42 SpeechRecognizer::kNumBitsPerAudioSample) / (8 * 1000); | 43 SpeechRecognizer::kNumBitsPerAudioSample) / (8 * 1000); |
43 audio_packet_.resize(audio_packet_length_bytes); | 44 audio_packet_.resize(audio_packet_length_bytes); |
44 } | 45 } |
45 | 46 |
46 // SpeechRecognizer::Delegate methods. | 47 // SpeechRecognizer::Delegate methods. |
47 virtual void SetRecognitionResult( | 48 virtual void SetRecognitionResult( |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
104 for (size_t i = 0; i < audio_packet_.size(); ++i) { | 105 for (size_t i = 0; i < audio_packet_.size(); ++i) { |
105 value += factor; | 106 value += factor; |
106 audio_packet_[i] = value % 100; | 107 audio_packet_[i] = value % 100; |
107 } | 108 } |
108 } | 109 } |
109 | 110 |
110 protected: | 111 protected: |
111 MessageLoopForIO message_loop_; | 112 MessageLoopForIO message_loop_; |
112 BrowserThreadImpl io_thread_; | 113 BrowserThreadImpl io_thread_; |
113 scoped_refptr<SpeechRecognizer> recognizer_; | 114 scoped_refptr<SpeechRecognizer> recognizer_; |
| 115 scoped_refptr<AudioManager> audio_manager_; |
114 bool recording_complete_; | 116 bool recording_complete_; |
115 bool recognition_complete_; | 117 bool recognition_complete_; |
116 bool result_received_; | 118 bool result_received_; |
117 bool audio_received_; | 119 bool audio_received_; |
118 content::SpeechInputError error_; | 120 content::SpeechInputError error_; |
119 TestURLFetcherFactory url_fetcher_factory_; | 121 TestURLFetcherFactory url_fetcher_factory_; |
120 TestAudioInputControllerFactory audio_input_controller_factory_; | 122 TestAudioInputControllerFactory audio_input_controller_factory_; |
121 std::vector<uint8> audio_packet_; | 123 std::vector<uint8> audio_packet_; |
122 float volume_; | 124 float volume_; |
123 float noise_volume_; | 125 float noise_volume_; |
(...skipping 287 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
411 EXPECT_FLOAT_EQ(0.89926866f, volume_); | 413 EXPECT_FLOAT_EQ(0.89926866f, volume_); |
412 EXPECT_FLOAT_EQ(0.75071919f, noise_volume_); | 414 EXPECT_FLOAT_EQ(0.75071919f, noise_volume_); |
413 | 415 |
414 EXPECT_EQ(content::SPEECH_INPUT_ERROR_NONE, error_); | 416 EXPECT_EQ(content::SPEECH_INPUT_ERROR_NONE, error_); |
415 EXPECT_FALSE(recording_complete_); | 417 EXPECT_FALSE(recording_complete_); |
416 EXPECT_FALSE(recognition_complete_); | 418 EXPECT_FALSE(recognition_complete_); |
417 recognizer_->CancelRecognition(); | 419 recognizer_->CancelRecognition(); |
418 } | 420 } |
419 | 421 |
420 } // namespace speech_input | 422 } // namespace speech_input |
OLD | NEW |