19 std::cout <<
"--------- awaken demo ------------" << std::endl;
20 std::cout <<
"这是离线唤醒功能的示例demo.\n唤醒词:“小德小德”\n你可以选择通过已录好的pcm文件或者实时录音进行唤醒测试." 22 std::cout <<
"0:选择已录好的pcm音频文件进行唤醒测试;" << std::endl;
23 std::cout <<
"1:通过实时录音进行唤醒测试." << std::endl;
24 std::cout <<
"请输入0或1选择不同方式:" << std::endl;
25 std::cout <<
"awaken_mode :_\b";
26 std::cin >> awaken_mode;
36 std::string dialogue_prompt_wav =
"play " +
base_path +
"/defaultconfig/audio/wozai.wav";
37 system(dialogue_prompt_wav.c_str());
59 std::string dialogue_prompt_wav =
"play " +
base_path +
"/defaultconfig/audio/wozai.wav";
60 system(dialogue_prompt_wav.c_str());
72 int main(
int argc,
char** argv)
77 std::string pcm_file =
base_path +
"/defaultconfig/audio/awaken.pcm";
86 std::cout <<
"请输入用于测试的pcm文件,若输入为d,则用默认的文件进行唤醒测试:";
90 pcm_file =
base_path +
"/defaultconfig/audio/awaken.pcm";
119 float record_time = 120;
121 bool enable_record_save =
true;
130 std::cout <<
"无效的awaken_mode模式的选择!!!" << std::endl;
void recordThroughMIC(const float record_time, bool enable_audio_save)
录音并进行语音唤醒.
科大讯飞离线唤醒模块接口定义头文件. TODO: 还需要添加版权、版本等信息
void dataLoopAwaken()
将音频数据循环写入科大讯飞接口进行离线唤醒.
void uninitAsr()
一次离线唤醒结束后释放资源.
void awakenInit()
科大讯飞离线唤醒模块的初始化.
void usage(int &awaken_mode)
const std::string base_path
void getPcmFileData()
读取pcm文件里的音频数据,并将数据的内容和数据大小存入pcm_data_结构体.
void loginAndSetParams(const std::string base_path, const std::string pcm_file, const int channel)
科大讯飞离线唤醒登录以及参数设置.
void saveRecordDataToFile()
把录音数据存入/cache/pcm/目录下的pcm文件里,以次序和时间命名.
void stopRecordThroughMIC()
关闭录音设备.
AwakenOffline awaken_demo
int main(int argc, char **argv)