pull/1542/head
SmileGoat 3 years ago
parent c769d90781
commit 7c1b432830

@ -12,6 +12,8 @@
// See the License for the specific language governing permissions and // See the License for the specific language governing permissions and
// limitations under the License. // limitations under the License.
#pragma once
#include "base/common.h" #include "base/common.h"
#include "frontend/feature_extractor_interface.h" #include "frontend/feature_extractor_interface.h"
@ -45,4 +47,4 @@ class FeatureCache : public FeatureExtractorInterface {
// DISALLOW_COPY_AND_ASSGIN(FeatureCache); // DISALLOW_COPY_AND_ASSGIN(FeatureCache);
}; };
} // namespace ppspeech } // namespace ppspeech

@ -35,7 +35,6 @@ void RawAudioSource::AcceptWaveform(const VectorBase<BaseFloat>& data) {
ring_buffer_[idx % ring_buffer_.size()] = data(idx); ring_buffer_[idx % ring_buffer_.size()] = data(idx);
} }
data_length_ += data.Dim(); data_length_ += data.Dim();
ready_read_condition_.notify_one();
} }
// bool RawAudioSource::AcceptWaveform(BaseFloat* data, int length) { // bool RawAudioSource::AcceptWaveform(BaseFloat* data, int length) {
@ -53,7 +52,7 @@ bool RawAudioSource::Read(Vector<BaseFloat>* feat) {
std::unique_lock<std::mutex> lock(mutex_); std::unique_lock<std::mutex> lock(mutex_);
while (chunk_size > data_length_) { while (chunk_size > data_length_) {
// when audio is empty and no more data feed // when audio is empty and no more data feed
// ready_read_condition will block in dead lock. // ready_read_condition will block in dead lock. so replace with timeout_
// ready_read_condition_.wait(lock); // ready_read_condition_.wait(lock);
int32 elapsed = static_cast<int32>(timer.Elapsed() * 1000); int32 elapsed = static_cast<int32>(timer.Elapsed() * 1000);
if (elapsed > timeout_) { if (elapsed > timeout_) {
@ -82,4 +81,4 @@ bool RawAudioSource::Read(Vector<BaseFloat>* feat) {
return true; return true;
} }
} // namespace ppspeech } // namespace ppspeech

@ -18,8 +18,6 @@
#include "base/common.h" #include "base/common.h"
#include "frontend/feature_extractor_interface.h" #include "frontend/feature_extractor_interface.h"
#pragma once
namespace ppspeech { namespace ppspeech {
class RawAudioSource : public FeatureExtractorInterface { class RawAudioSource : public FeatureExtractorInterface {
@ -40,7 +38,6 @@ class RawAudioSource : public FeatureExtractorInterface {
size_t data_length_; size_t data_length_;
bool finished_; bool finished_;
mutable std::mutex mutex_; mutable std::mutex mutex_;
std::condition_variable ready_read_condition_;
std::condition_variable ready_feed_condition_; std::condition_variable ready_feed_condition_;
kaldi::int32 timeout_; kaldi::int32 timeout_;
@ -74,4 +71,4 @@ class RawDataSource : public FeatureExtractorInterface {
DISALLOW_COPY_AND_ASSIGN(RawDataSource); DISALLOW_COPY_AND_ASSIGN(RawDataSource);
}; };
} // namespace ppspeech } // namespace ppspeech

Loading…
Cancel
Save