namespace wakeup
{
+/* Sound buf save for test */
+#if 0
+#define BUF_SAVE_MODE
+#endif
+
+#ifdef BUF_SAVE_MODE
+static char g_temp_file_name[128] = {'\0', };
+
+static FILE* g_pFile = NULL;
+
+static int g_count = 1;
+#endif
+
/* Need to check whether this value needs to be configurable */
static int g_speech_pcm_wait_count = 400;
MWR_LOGD("data_count : %d", interface->get_utterance_data_count());
+#ifdef BUF_SAVE_MODE
+ if (g_pFile) {
+ fclose(g_pFile);
+ g_pFile = NULL;
+ } else {
+ MWR_LOGD("[Recorder Info] File not found!");
+ }
+
+ while (1) {
+ snprintf(g_temp_file_name, sizeof(g_temp_file_name), "/tmp/ma_wue_%d_%d", getpid(), g_count);
+ int ret = access(g_temp_file_name, 0);
+
+ if (0 == ret) {
+ MWR_LOGD("[Recorder ERROR] File is already exist");
+ if (0 == remove(g_temp_file_name)) {
+ MWR_LOGD("[Recorder] Remove file");
+ break;
+ } else {
+ g_count++;
+ }
+ } else {
+ break;
+ }
+ }
+
+ MWR_LOGD("[Recorder] Temp file name=[%s]", g_temp_file_name);
+
+ /* open test file */
+ g_pFile = fopen(g_temp_file_name, "wb+x");
+ if (!g_pFile) {
+ MWR_LOGD("[Recorder ERROR] File not found!");
+ return;
+ }
+ g_count++;
+#endif
+
mas_speech_data speech_data;
int index = 0;
bool finish_event_sent = false;
while (!(mStopStreamingThread.load()) && index < count) {
int ret = interface->get_wake_word_data(index, &speech_data);
if (0 == ret) {
+#ifdef BUF_SAVE_MODE
+ if (g_pFile)
+ fwrite(speech_data.buffer, 1, speech_data.len, g_pFile);
+#endif
for (const auto& observer : mObservers) {
if (observer) {
if (!observer->on_streaming_audio_data(
if (g_speech_pcm_wait_count < cnt) {
unsigned char final_buffer[2] = {'\0', };
MWR_LOGE("[ERROR] Wrong request, there's no pcm data");
+#ifdef BUF_SAVE_MODE
+ if (g_pFile) {
+ fwrite(final_buffer, 1, sizeof(final_buffer), g_pFile);
+ MWR_LOGE("[Recorder SUCCESS] File Close");
+ fclose(g_pFile);
+ g_pFile = NULL;
+ }
+#endif
for (const auto& observer : mObservers) {
if (observer) {
if (!observer->on_streaming_audio_data(
continue;
}
+#ifdef BUF_SAVE_MODE
+ if (g_pFile)
+ fwrite(speech_data.buffer, 1, speech_data.len, g_pFile);
+
+ if (MAS_SPEECH_STREAMING_EVENT_FINISH == speech_data.event) {
+ if (g_pFile) {
+ MWR_LOGE("[Recorder SUCCESS] File Close");
+ fclose(g_pFile);
+ g_pFile = NULL;
+ } else {
+ MWR_LOGE("[Recorder ERROR] File not found!");
+ }
+ }
+#endif
for (const auto& observer : mObservers) {
if (observer) {
if (!observer->on_streaming_audio_data(
}
}
}
+#ifdef BUF_SAVE_MODE
+ if (g_pFile) {
+ fwrite(final_buffer, 1, sizeof(final_buffer), g_pFile);
+ MWR_LOGE("[Recorder SUCCESS] File Close");
+ fclose(g_pFile);
+ g_pFile = NULL;
+ }
+#endif
}
MWR_LOGI("[EXIT]");