| Index: trunk/src/content/browser/speech/speech_recognizer_impl_unittest.cc
|
| ===================================================================
|
| --- trunk/src/content/browser/speech/speech_recognizer_impl_unittest.cc (revision 277811)
|
| +++ trunk/src/content/browser/speech/speech_recognizer_impl_unittest.cc (working copy)
|
| @@ -13,7 +13,6 @@
|
| #include "media/audio/fake_audio_output_stream.h"
|
| #include "media/audio/mock_audio_manager.h"
|
| #include "media/audio/test_audio_input_controller_factory.h"
|
| -#include "media/base/audio_bus.h"
|
| #include "net/base/net_errors.h"
|
| #include "net/url_request/test_url_fetcher_factory.h"
|
| #include "net/url_request/url_request_status.h"
|
| @@ -67,13 +66,6 @@
|
| ChannelLayoutToChannelCount(SpeechRecognizerImpl::kChannelLayout) *
|
| SpeechRecognizerImpl::kNumBitsPerAudioSample) / (8 * 1000);
|
| audio_packet_.resize(audio_packet_length_bytes);
|
| -
|
| - const int channels =
|
| - ChannelLayoutToChannelCount(SpeechRecognizerImpl::kChannelLayout);
|
| - bytes_per_sample_ = SpeechRecognizerImpl::kNumBitsPerAudioSample / 8;
|
| - const int frames = audio_packet_length_bytes / channels / bytes_per_sample_;
|
| - audio_bus_ = media::AudioBus::Create(channels, frames);
|
| - audio_bus_->Zero();
|
| }
|
|
|
| void CheckEventsConsistency() {
|
| @@ -155,17 +147,10 @@
|
| AudioInputController::set_factory_for_testing(NULL);
|
| }
|
|
|
| - void CopyPacketToAudioBus() {
|
| - // Copy the created signal into an audio bus in a deinterleaved format.
|
| - audio_bus_->FromInterleaved(
|
| - &audio_packet_[0], audio_bus_->frames(), bytes_per_sample_);
|
| - }
|
| -
|
| void FillPacketWithTestWaveform() {
|
| // Fill the input with a simple pattern, a 125Hz sawtooth waveform.
|
| for (size_t i = 0; i < audio_packet_.size(); ++i)
|
| audio_packet_[i] = static_cast<uint8>(i);
|
| - CopyPacketToAudioBus();
|
| }
|
|
|
| void FillPacketWithNoise() {
|
| @@ -175,7 +160,6 @@
|
| value += factor;
|
| audio_packet_[i] = value % 100;
|
| }
|
| - CopyPacketToAudioBus();
|
| }
|
|
|
| protected:
|
| @@ -194,8 +178,6 @@
|
| net::TestURLFetcherFactory url_fetcher_factory_;
|
| TestAudioInputControllerFactory audio_input_controller_factory_;
|
| std::vector<uint8> audio_packet_;
|
| - scoped_ptr<media::AudioBus> audio_bus_;
|
| - int bytes_per_sample_;
|
| float volume_;
|
| float noise_volume_;
|
| };
|
| @@ -240,7 +222,8 @@
|
| // full recording to complete.
|
| const size_t kNumChunks = 5;
|
| for (size_t i = 0; i < kNumChunks; ++i) {
|
| - controller->event_handler()->OnData(controller, audio_bus_.get());
|
| + controller->event_handler()->OnData(controller, &audio_packet_[0],
|
| + audio_packet_.size());
|
| base::MessageLoop::current()->RunUntilIdle();
|
| net::TestURLFetcher* fetcher = url_fetcher_factory_.GetFetcherByID(0);
|
| ASSERT_TRUE(fetcher);
|
| @@ -281,7 +264,8 @@
|
| TestAudioInputController* controller =
|
| audio_input_controller_factory_.controller();
|
| ASSERT_TRUE(controller);
|
| - controller->event_handler()->OnData(controller, audio_bus_.get());
|
| + controller->event_handler()->OnData(controller, &audio_packet_[0],
|
| + audio_packet_.size());
|
| base::MessageLoop::current()->RunUntilIdle();
|
| recognizer_->AbortRecognition();
|
| base::MessageLoop::current()->RunUntilIdle();
|
| @@ -301,7 +285,8 @@
|
| TestAudioInputController* controller =
|
| audio_input_controller_factory_.controller();
|
| ASSERT_TRUE(controller);
|
| - controller->event_handler()->OnData(controller, audio_bus_.get());
|
| + controller->event_handler()->OnData(controller, &audio_packet_[0],
|
| + audio_packet_.size());
|
| base::MessageLoop::current()->RunUntilIdle();
|
| net::TestURLFetcher* fetcher = url_fetcher_factory_.GetFetcherByID(0);
|
| ASSERT_TRUE(fetcher);
|
| @@ -338,7 +323,8 @@
|
| TestAudioInputController* controller =
|
| audio_input_controller_factory_.controller();
|
| ASSERT_TRUE(controller);
|
| - controller->event_handler()->OnData(controller, audio_bus_.get());
|
| + controller->event_handler()->OnData(controller, &audio_packet_[0],
|
| + audio_packet_.size());
|
| base::MessageLoop::current()->RunUntilIdle();
|
| net::TestURLFetcher* fetcher = url_fetcher_factory_.GetFetcherByID(0);
|
| ASSERT_TRUE(fetcher);
|
| @@ -391,7 +377,8 @@
|
| TestAudioInputController* controller =
|
| audio_input_controller_factory_.controller();
|
| ASSERT_TRUE(controller);
|
| - controller->event_handler()->OnData(controller, audio_bus_.get());
|
| + controller->event_handler()->OnData(controller, &audio_packet_[0],
|
| + audio_packet_.size());
|
| controller->event_handler()->OnError(controller,
|
| AudioInputController::UNKNOWN_ERROR);
|
| base::MessageLoop::current()->RunUntilIdle();
|
| @@ -416,7 +403,8 @@
|
| GoogleOneShotRemoteEngine::kAudioPacketIntervalMs + 1;
|
| // The vector is already filled with zero value samples on create.
|
| for (int i = 0; i < num_packets; ++i) {
|
| - controller->event_handler()->OnData(controller, audio_bus_.get());
|
| + controller->event_handler()->OnData(controller, &audio_packet_[0],
|
| + audio_packet_.size());
|
| }
|
| base::MessageLoop::current()->RunUntilIdle();
|
| EXPECT_TRUE(recognition_started_);
|
| @@ -444,12 +432,14 @@
|
|
|
| // The vector is already filled with zero value samples on create.
|
| for (int i = 0; i < num_packets / 2; ++i) {
|
| - controller->event_handler()->OnData(controller, audio_bus_.get());
|
| + controller->event_handler()->OnData(controller, &audio_packet_[0],
|
| + audio_packet_.size());
|
| }
|
|
|
| FillPacketWithTestWaveform();
|
| for (int i = 0; i < num_packets / 2; ++i) {
|
| - controller->event_handler()->OnData(controller, audio_bus_.get());
|
| + controller->event_handler()->OnData(controller, &audio_packet_[0],
|
| + audio_packet_.size());
|
| }
|
|
|
| base::MessageLoop::current()->RunUntilIdle();
|
| @@ -480,18 +470,21 @@
|
| GoogleOneShotRemoteEngine::kAudioPacketIntervalMs;
|
| FillPacketWithNoise();
|
| for (int i = 0; i < num_packets; ++i) {
|
| - controller->event_handler()->OnData(controller, audio_bus_.get());
|
| + controller->event_handler()->OnData(controller, &audio_packet_[0],
|
| + audio_packet_.size());
|
| }
|
| base::MessageLoop::current()->RunUntilIdle();
|
| EXPECT_EQ(-1.0f, volume_); // No audio volume set yet.
|
|
|
| // The vector is already filled with zero value samples on create.
|
| - controller->event_handler()->OnData(controller, audio_bus_.get());
|
| + controller->event_handler()->OnData(controller, &audio_packet_[0],
|
| + audio_packet_.size());
|
| base::MessageLoop::current()->RunUntilIdle();
|
| EXPECT_FLOAT_EQ(0.74939233f, volume_);
|
|
|
| FillPacketWithTestWaveform();
|
| - controller->event_handler()->OnData(controller, audio_bus_.get());
|
| + controller->event_handler()->OnData(controller, &audio_packet_[0],
|
| + audio_packet_.size());
|
| base::MessageLoop::current()->RunUntilIdle();
|
| EXPECT_NEAR(0.89926866f, volume_, 0.00001f);
|
| EXPECT_FLOAT_EQ(0.75071919f, noise_volume_);
|
|
|