admin管理员组文章数量:1564192
简介
AIUI文档中心
AIUI例程修改后源码
在AIUI平台创建应用,下载linux sdk,但是sdk默认内部录音不可用,需要修改录音输入
使用mic录音
录音来源
修改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,通过外部输入音频数据。
AIUI例程修改代码
编译需要ALSA支持,因为mic输入需要
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
版权声明:本文标题:讯飞AIUI ubuntu linux使用 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dongtai/1727479179a1116610.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论