鸿蒙HarmonyOS开发板讯飞平台+语音控制开关灯
想了解更多内容,鸿蒙请访问:
和华为官方合作共建的开控制开关鸿蒙技术社区
https://harmonyos.51cto.com/#zz
参考连老师博文:https://harmonyos.51cto.com/posts/1842
通过讯飞开放平台可以将语音实时转换为文字,我们可以实现语音控制开关灯。发板大致流程如下:
1、讯飞创建应用,平台下载sdk,语音编译demo可执行程序(本文采用的鸿蒙Linux SDK);
2、通过应用的开控制开关唯一APPID,登录到讯飞开放平台;
3、发板用户输入语音,讯飞Linux SDK程序通过麦克风接收到语音数据,平台上传到讯飞开放平台;
4、语音平台返回语音翻译的鸿蒙文字,由Linux SDK程序通过udp socket通信的开控制开关方式发送给开发板;
5、开发板接收到数据,发板执行控制开关灯的动作;
平台准备
1、讯飞控制台:https://console.xfyun.cn/app/myapp,首先申请账号。实名认证后可以领取免费的语音服务;
2、服务器托管创建新应用;
3、下载对应的SDK,编译demo程序,本文采用的Linux SDK;

PC(Linux SDK)准备
1、本文选择的是和开发板位于同一wifi下的虚拟机,解压Linux_iat1227_5fe1be98.zip,采用demo程序//samples/iat_online_record_sample;
2、编译程序,编译成功生成可执行程序iat_online_record_sample;
cd samples/iat_online_record_sample source 64bit_make.sh3、登录平台应用需要唯一的APPID即可;
const char* login_params = "appid = 5fe1be98, work_dir = .";
4、Linux SDK程序接收到平台返回结果,通过udp socket发送数据到开发板;
static void show_result(char *string, char is_over) { printf("\rResult: [ %s ]", string); if(is_over) { putchar(\n); /* sendto */ struct sockaddr_in serv_addr; bzero((char *) &serv_addr, sizeof(serv_addr)); serv_addr.sin_family = AF_INET; inet_pton(AF_INET, IP, (void *)&serv_addr.sin_addr); serv_addr.sin_port = htons(PORT); ssize_t send_len = sendto(SOCKFD, string, strlen(string), 0, (const struct sockaddr *)&serv_addr, sizeof(serv_addr)); printf("send_len=%ld, [%s]\n", send_len, string); } }开发板准备
1、开发板编写一个udp socket server程序,根据接收到的命令控制开关灯;
bzero(buf, sizeof(buf)); recv_len = recvfrom(sockfd, buf, sizeof(buf), 0, (struct sockaddr *)&cli, &addrlen); if(recv_len > 0) { printf("recv: len=%u, [%s] \n", recv_len, buf); /* GPIO_10: RED GPIO_11: GREEN GPIO_12: YELLOW */ if(strncmp(buf, "开灯", strlen("开灯")) == 0) { GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_10, 1); } else if(strncmp(buf, "关灯", strlen("关灯")) == 0) { GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_10, 0); } else { printf("Unknown command.\n"); } }总体测试
1、启动开发板,连接好wifi,监听udp端口;IP:192.168.124.14 PORT:12345;
2、启动Linux SDK demo程序,高防服务器./iat_online_record_sample;IP:192.168.124.10;
3、用户对PC麦克风输入语音“开灯”,打印信息如下,接收讯飞平台文字,发送数据到开发板;
4、开发板接收到数据,打印信息如下,GPIO控制灯亮;

5、用户对PC麦克风输入语音“关灯”,打印信息如下,接收讯飞平台文字,发送数据到开发板;

6、开发板接收到数据,打印信息如下,GPIO控制灯灭;

以上就是分享的全部内容,谢谢观看。
©著作权归作者和HarmonyOS技术社区共同所有,如需转载,请注明出处,否则将追究法律责任
想了解更多内容,请访问:
和华为官方合作共建的鸿蒙技术社区
https://harmonyos.51cto.com/#zz