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

Side by Side Diff: content/browser/speech/endpointer/endpointer.cc

Issue 2867693004: Snapshot of all changes to get jumbo in blink and content.
Patch Set: Exclude certain files from jumbo because of a Windows problem Created 3 years, 3 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "content/browser/speech/endpointer/endpointer.h" 5 #include "content/browser/speech/endpointer/endpointer.h"
6 6
7 #include "base/time/time.h" 7 #include "base/time/time.h"
8 #include "content/browser/speech/audio_buffer.h" 8 #include "content/browser/speech/audio_buffer.h"
9 9
10 using base::Time; 10 //using base::Time; // Collides with typedef Time in X11
11 11
12 namespace { 12 namespace {
13 const int kFrameRate = 50; // 1 frame = 20ms of audio. 13 const int kFrameRate = 50; // 1 frame = 20ms of audio.
14 } 14 }
15 15
16 namespace content { 16 namespace content {
17 17
18 Endpointer::Endpointer(int sample_rate) 18 Endpointer::Endpointer(int sample_rate)
19 : speech_input_possibly_complete_silence_length_us_(-1), 19 : speech_input_possibly_complete_silence_length_us_(-1),
20 speech_input_complete_silence_length_us_(-1), 20 speech_input_complete_silence_length_us_(-1),
21 audio_frame_time_us_(0), 21 audio_frame_time_us_(0),
22 sample_rate_(sample_rate), 22 sample_rate_(sample_rate),
23 frame_size_(0) { 23 frame_size_(0) {
24 Reset(); 24 Reset();
25 25
26 frame_size_ = static_cast<int>(sample_rate / static_cast<float>(kFrameRate)); 26 frame_size_ = static_cast<int>(sample_rate / static_cast<float>(kFrameRate));
27 27
28 speech_input_minimum_length_us_ = 28 speech_input_minimum_length_us_ =
29 static_cast<int64_t>(1.7 * Time::kMicrosecondsPerSecond); 29 static_cast<int64_t>(1.7 * base::Time::kMicrosecondsPerSecond);
30 speech_input_complete_silence_length_us_ = 30 speech_input_complete_silence_length_us_ =
31 static_cast<int64_t>(0.5 * Time::kMicrosecondsPerSecond); 31 static_cast<int64_t>(0.5 * base::Time::kMicrosecondsPerSecond);
32 long_speech_input_complete_silence_length_us_ = -1; 32 long_speech_input_complete_silence_length_us_ = -1;
33 long_speech_length_us_ = -1; 33 long_speech_length_us_ = -1;
34 speech_input_possibly_complete_silence_length_us_ = 34 speech_input_possibly_complete_silence_length_us_ =
35 1 * Time::kMicrosecondsPerSecond; 35 1 * base::Time::kMicrosecondsPerSecond;
36 36
37 // Set the default configuration for Push To Talk mode. 37 // Set the default configuration for Push To Talk mode.
38 EnergyEndpointerParams ep_config; 38 EnergyEndpointerParams ep_config;
39 ep_config.set_frame_period(1.0f / static_cast<float>(kFrameRate)); 39 ep_config.set_frame_period(1.0f / static_cast<float>(kFrameRate));
40 ep_config.set_frame_duration(1.0f / static_cast<float>(kFrameRate)); 40 ep_config.set_frame_duration(1.0f / static_cast<float>(kFrameRate));
41 ep_config.set_endpoint_margin(0.2f); 41 ep_config.set_endpoint_margin(0.2f);
42 ep_config.set_onset_window(0.15f); 42 ep_config.set_onset_window(0.15f);
43 ep_config.set_speech_on_window(0.4f); 43 ep_config.set_speech_on_window(0.4f);
44 ep_config.set_offset_window(0.15f); 44 ep_config.set_offset_window(0.15f);
45 ep_config.set_onset_detect_dur(0.09f); 45 ep_config.set_onset_detect_dur(0.09f);
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
98 // frames at the end (which is ok since typically the caller will be recording 98 // frames at the end (which is ok since typically the caller will be recording
99 // audio in multiples of our frame size). 99 // audio in multiples of our frame size).
100 int sample_index = 0; 100 int sample_index = 0;
101 while (sample_index + frame_size_ <= num_samples) { 101 while (sample_index + frame_size_ <= num_samples) {
102 // Have the endpointer process the frame. 102 // Have the endpointer process the frame.
103 energy_endpointer_.ProcessAudioFrame(audio_frame_time_us_, 103 energy_endpointer_.ProcessAudioFrame(audio_frame_time_us_,
104 audio_data + sample_index, 104 audio_data + sample_index,
105 frame_size_, 105 frame_size_,
106 rms_out); 106 rms_out);
107 sample_index += frame_size_; 107 sample_index += frame_size_;
108 audio_frame_time_us_ += (frame_size_ * Time::kMicrosecondsPerSecond) / 108 audio_frame_time_us_ += (frame_size_ * base::Time::kMicrosecondsPerSecond) /
109 sample_rate_; 109 sample_rate_;
110 110
111 // Get the status of the endpointer. 111 // Get the status of the endpointer.
112 int64_t ep_time; 112 int64_t ep_time;
113 ep_status = energy_endpointer_.Status(&ep_time); 113 ep_status = energy_endpointer_.Status(&ep_time);
114 114
115 // Handle state changes. 115 // Handle state changes.
116 if ((EP_SPEECH_PRESENT == ep_status) && 116 if ((EP_SPEECH_PRESENT == ep_status) &&
117 (EP_POSSIBLE_ONSET == old_ep_status_)) { 117 (EP_POSSIBLE_ONSET == old_ep_status_)) {
118 speech_end_time_us_ = -1; 118 speech_end_time_us_ = -1;
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
160 speech_input_complete_ = true; 160 speech_input_complete_ = true;
161 } 161 }
162 } 162 }
163 } 163 }
164 old_ep_status_ = ep_status; 164 old_ep_status_ = ep_status;
165 } 165 }
166 return ep_status; 166 return ep_status;
167 } 167 }
168 168
169 } // namespace content 169 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/shared_worker/shared_worker_message_filter.cc ('k') | content/browser/tracing/tracing_controller_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698