赞
踩
AIUI文档中心
AIUI例程修改后源码
在AIUI平台创建应用,下载linux sdk,但是sdk默认内部录音不可用,需要修改录音输入
修改AIUI配置文件中的data_source字段可以指定AIUI录音来源,值为sdk时使用AIUI内部录音,使用CMD_START_RECORD、CMD_STOP_RECORD命令进行控制。另一取值user,表示由外部写入录音数据,使用CMD_WRITE、CMD_STOP_WRITE命令通知AIUI数据写入和写入结束。
注:data_source取值为sdk,仅在Android平台SDK下可用,其他平台只能取值user,通过外部输入音频数据。
static void mic_start() { printf("mic_start\n"); int errcode; errcode = sr_init(&iat, NULL, SR_MIC, &recnotifier); if (errcode) { printf("speech recognizer init failed\n"); return; } iat.write_recorder_data = writeAudioRecord; errcode = sr_start_listening(&iat); if (errcode) { printf("start listen failed %d\n", errcode); } } static void mic_stop() { printf("mic_stop\n"); int errcode = sr_stop_listening(&iat); if (errcode) { printf("stop listening failed %d\n", errcode); } IAIUIMessage *msg = IAIUIMessage::create( AIUIConstant::CMD_STOP_WRITE, 0, 0, "data_type=audio"); agent->sendMessage(msg); msg->destroy(); sr_uninit(&iat); } // 写入测试音频 void writeAudio() { // if (NULL != agent) { // IAIUIMessage* stopMsg = // IAIUIMessage::create(AIUIConstant::CMD_START_RECORD, 0, 0, "data_type=audio"); // agent->sendMessage(stopMsg); // stopMsg->destroy(); // } mic_start(); } void stopAudio() { // if (NULL != agent) // { // IAIUIMessage *stMsg = IAIUIMessage::create(AIUIConstant::CMD_STOP_RECORD); // agent->sendMessage(stMsg); // stMsg->destroy(); // IAIUIMessage *stopMsg = // IAIUIMessage::create(AIUIConstant::CMD_STOP_SAVE, 0, 0, "data_type=raw_audio"); // agent->sendMessage(stopMsg); // stopMsg->destroy(); // } mic_stop(); }
cmakelist.txt 增加speech_recognizer.c linuxrec.c等,增加include_directories,增加target_link_libraries
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。