|
|
@ -48,7 +48,6 @@ void AudioLoggingService::loggerMICVoice(shared_ptr<AudioClip> audioClip) { |
|
|
|
cleanupLogVoiceByTime("./voice/rt/mic_voice_*.wav", RT_STORAGE_CLIP_NUMS); |
|
|
|
m_rtMicVoiceFile.reset(new WavRecorder("./voice/rt/mic_voice_" + gettimestamp() + ".wav")); |
|
|
|
m_rtMicVoiceFile->writeHeader(audioClip->getRate(), audioClip->getBitsPerSample(), audioClip->getCh(), 0); |
|
|
|
// m_rtMicVoiceFile->dumpheader(logger);
|
|
|
|
m_rtMicVoiceFile->writeVoice(audioClip); |
|
|
|
} else { |
|
|
|
m_rtMicVoiceFile->writeVoice(audioClip); |
|
|
@ -57,33 +56,51 @@ void AudioLoggingService::loggerMICVoice(shared_ptr<AudioClip> audioClip) { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/**
|
|
|
|
* @brief 每次唤醒都记录下对应的原始语音 |
|
|
|
*/ |
|
|
|
{ |
|
|
|
lock_guard<mutex> lock(m_mutex); |
|
|
|
if (m_wakeupState) { |
|
|
|
if (!m_rtBfwakeupVoiceFile) { |
|
|
|
if (!m_wakeupMicVoiceFile) { |
|
|
|
cleanupLogVoiceByTime("./voice/wakeup/mic_voice_*.wav", WAKEUP_STORAGE_CLIP_NUMS); |
|
|
|
m_rtBfwakeupVoiceFile.reset(new WavRecorder("./voice/wakeup/mic_voice_" + gettimestamp() + ".wav")); |
|
|
|
// m_rtBfwakeupVoiceFile->writeHeader(audioClip->getRate(), audioClip->getBitsPerSample(), audioClip->getCh(), 0);
|
|
|
|
m_rtBfwakeupVoiceFile->writeVoice(audioClip); |
|
|
|
m_wakeupMicVoiceFile.reset(new WavRecorder("./voice/wakeup/mic_voice_" + m_wakeupsessionid + ".wav")); |
|
|
|
m_wakeupMicVoiceFile->writeHeader(audioClip->getRate(), audioClip->getBitsPerSample(), audioClip->getCh(), 0); |
|
|
|
m_wakeupMicVoiceFile->writeVoice(audioClip); |
|
|
|
} else { |
|
|
|
m_rtBfwakeupVoiceFile->writeVoice(audioClip); |
|
|
|
m_wakeupMicVoiceFile->writeVoice(audioClip); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
void AudioLoggingService::setWakeupState(bool state) { |
|
|
|
if (!state) { |
|
|
|
void AudioLoggingService::triggerWakeup(string sessionid) { |
|
|
|
lock_guard<mutex> lock(m_mutex); |
|
|
|
m_wakeupsessionid = sessionid; |
|
|
|
m_wakeupState = true; |
|
|
|
} else { |
|
|
|
} |
|
|
|
void AudioLoggingService::endwakeup() { |
|
|
|
lock_guard<mutex> lock(m_mutex); |
|
|
|
m_wakeupState = false; |
|
|
|
m_rtBfwakeupVoiceFile.reset(); |
|
|
|
|
|
|
|
if (m_wakeupMicVoiceFile) { |
|
|
|
m_wakeupMicVoiceFile.reset(); |
|
|
|
} |
|
|
|
if (m_asrFile) { |
|
|
|
m_asrFile.reset(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/**
|
|
|
|
* @brief 记录送给唤醒词的语音 |
|
|
|
* |
|
|
|
* @param audioClip |
|
|
|
*/ |
|
|
|
void AudioLoggingService::loggerBeforeWakeupVoice(shared_ptr<AudioClip> audioClip) { |
|
|
|
/**
|
|
|
|
* @brief MIC的语音会存储在两个地方 |
|
|
|
* @brief |
|
|
|
* 1. ./voice/rt/beforewakeup*.wav |
|
|
|
*/ |
|
|
|
|
|
|
|
if (!m_rtBfwakeupVoiceFile) { |
|
|
|
cleanupLogVoiceByTime("./voice/rt/rtbfwakeup*.wav", RT_STORAGE_CLIP_NUMS); |
|
|
|
m_rtBfwakeupVoiceFile.reset(new WavRecorder("./voice/rt/rtbfwakeup" + gettimestamp() + ".wav")); |
|
|
@ -96,4 +113,25 @@ void AudioLoggingService::loggerBeforeWakeupVoice(shared_ptr<AudioClip> audioCli |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
void AudioLoggingService::loggerASRVoice(shared_ptr<AudioClip> audioClip) {} |
|
|
|
|
|
|
|
/**
|
|
|
|
* @brief 记录送给ASR的语音 |
|
|
|
* |
|
|
|
* @param audioClip |
|
|
|
*/ |
|
|
|
void AudioLoggingService::loggerASRVoice(shared_ptr<AudioClip> audioClip) { |
|
|
|
/**
|
|
|
|
* @brief |
|
|
|
* ./voice/wakeup/asr*.wav |
|
|
|
*/ |
|
|
|
lock_guard<mutex> lock(m_mutex); |
|
|
|
if (!m_wakeupState) return; |
|
|
|
if (!m_asrFile) { |
|
|
|
cleanupLogVoiceByTime("./voice/wakeup/asr*.wav", WAKEUP_STORAGE_CLIP_NUMS); |
|
|
|
m_asrFile.reset(new WavRecorder("./voice/wakeup/asr" + m_wakeupsessionid + ".wav")); |
|
|
|
m_asrFile->writeHeader(audioClip->getRate(), audioClip->getBitsPerSample(), audioClip->getCh(), 0); |
|
|
|
m_asrFile->writeVoice(audioClip); |
|
|
|
} else { |
|
|
|
m_asrFile->writeVoice(audioClip); |
|
|
|
} |
|
|
|
} |