芯片开放社区
登录
直播中
吴湛
10年用户
818经验值
擅长:33391
私信
关注
[问答]
在RVB2601上怎样去实现基于HTTPClient组件的云语音识别呢
开启该帖子的消息推送
httpclient
语音识别
在RVB2601上怎样去实现基于HTTPClient组件的云语音识别呢?有哪些实现步骤?
回帖
(1)
乔占宽
2022-3-8 09:12:35
设计思路
RVB2601 板载资源非常丰富,支持 WiFi、蓝牙、Codec、麦克风等,因此我们能够通过这块开发板实现绝大部分物联网场景下的应用,如云语音识别。
在官方提供的 RVB2601 示例程序中:ch2601_ft_demo 实现了麦克风录音并由扬声器回放的功能;ch2601_webplayer_demo 实现了从网络上下载音乐并播放的功能。因此我们有理由相信借助于现有的组件就能够实现一个基于 Http 的云语音识别。
然而,ch2601_webplayer_demo 中使用的网络库并不提供完整的 HTTP 功能,因此我们需要寻找支持 RVB2601 的其它网络库。
通过上网搜寻,找到了
平头哥YOC文档
,里面列举了众多 API 以及模块组件;以及对应的
YOC github 源码
。
其中,YOC 提供一个网络组件:HTTPClient,它“为http/https客户端组件,为用户提供一组简洁的调用接口。”并且看其接口列表它好像还实现了 HTTP 的各种请求(年轻了)。
因此我们选择使用 HTTPClient 组件来帮助我们与服务器通信,上传录音文件并接收识别结果。
HTTPClient 组件测试
由于这是一个没有出现在 RVB2601 示例程序中的组件,我们还不清楚能否使用以及如何使用。所幸源码中提供了 HTTPClient 的测试程序:
http_examples
。因此我们可以先尝试测试该组件。
项目工程建立在 ch2601_webplayer_demo 上。以下为操作流程:
项目配置
首先从
YOC github 源码
下载所需组件,除了 HTTPClient 外还需要 transport 组件。
接着进入 CDK 工程,右键 Packages 并新建一个普通包:
设置包名以及存储路径:
接着我们就能向刚刚新建的 Package 里添加下载的源码:
最后我们需要对 Package 进行配置:
在 Compiler 选项卡中设置 Include:
最后在 Base 选项卡中编辑 Description:
源码修改
我们直接将 http_examples.c 的内容加入到 player_demo.c 中,并向 CLI 控制台注册一个新命令 http_test:
/* player_demo.c */
static void cmd_http_func(char *wbuf, int wbuf_len, int argc, char **argv)
{
if (argc == 1 && strcmp(argv[0], "http_test") == 0) {
test_https();
}
else
printf("thttp_testn");
}
int cli_reg_cmd_player(void)
{
...
static const struct cli_command http_cmd_info= {
"http_test",
"http_test",
cmd_http_func,
};
aos_cli_register_command(&cmd_info);
...
return 0;
}
这样,当控制台接收到 http_test 命令后就会直接调用 http_examples.c 中的测试函数 test_https()。
测试后没有什么问题,因此我们能够在 RVB2601 上调用 HTTPClient 提供的接口,来帮助我们与服务器通信。
设计思路
RVB2601 板载资源非常丰富,支持 WiFi、蓝牙、Codec、麦克风等,因此我们能够通过这块开发板实现绝大部分物联网场景下的应用,如云语音识别。
在官方提供的 RVB2601 示例程序中:ch2601_ft_demo 实现了麦克风录音并由扬声器回放的功能;ch2601_webplayer_demo 实现了从网络上下载音乐并播放的功能。因此我们有理由相信借助于现有的组件就能够实现一个基于 Http 的云语音识别。
然而,ch2601_webplayer_demo 中使用的网络库并不提供完整的 HTTP 功能,因此我们需要寻找支持 RVB2601 的其它网络库。
通过上网搜寻,找到了
平头哥YOC文档
,里面列举了众多 API 以及模块组件;以及对应的
YOC github 源码
。
其中,YOC 提供一个网络组件:HTTPClient,它“为http/https客户端组件,为用户提供一组简洁的调用接口。”并且看其接口列表它好像还实现了 HTTP 的各种请求(年轻了)。
因此我们选择使用 HTTPClient 组件来帮助我们与服务器通信,上传录音文件并接收识别结果。
HTTPClient 组件测试
由于这是一个没有出现在 RVB2601 示例程序中的组件,我们还不清楚能否使用以及如何使用。所幸源码中提供了 HTTPClient 的测试程序:
http_examples
。因此我们可以先尝试测试该组件。
项目工程建立在 ch2601_webplayer_demo 上。以下为操作流程:
项目配置
首先从
YOC github 源码
下载所需组件,除了 HTTPClient 外还需要 transport 组件。
接着进入 CDK 工程,右键 Packages 并新建一个普通包:
设置包名以及存储路径:
接着我们就能向刚刚新建的 Package 里添加下载的源码:
最后我们需要对 Package 进行配置:
在 Compiler 选项卡中设置 Include:
最后在 Base 选项卡中编辑 Description:
源码修改
我们直接将 http_examples.c 的内容加入到 player_demo.c 中,并向 CLI 控制台注册一个新命令 http_test:
/* player_demo.c */
static void cmd_http_func(char *wbuf, int wbuf_len, int argc, char **argv)
{
if (argc == 1 && strcmp(argv[0], "http_test") == 0) {
test_https();
}
else
printf("thttp_testn");
}
int cli_reg_cmd_player(void)
{
...
static const struct cli_command http_cmd_info= {
"http_test",
"http_test",
cmd_http_func,
};
aos_cli_register_command(&cmd_info);
...
return 0;
}
这样,当控制台接收到 http_test 命令后就会直接调用 http_examples.c 中的测试函数 test_https()。
测试后没有什么问题,因此我们能够在 RVB2601 上调用 HTTPClient 提供的接口,来帮助我们与服务器通信。
举报
更多回帖
rotate(-90deg);
回复
相关问答
httpclient
语音识别
如何
去
实现
基于
HTTPClient
云
语音
识别
的POST请求功能
呢
2022-03-08
1866
如何快速上手
RVB2601
开发板?
2022-02-11
819
嵌入式
语音
识别
技术
在
80251内核中该如何
去
实现
呢
2021-12-23
2116
分享一种基于嵌入式系统开发
语音
识别
与
语音
合成应用
2021-12-23
1357
怎样
去
设计并制作出基于STM32的孤立词
语音
识别
系统
呢
2021-11-08
1453
怎样
去
搭建一个基于kaldi的嵌入式
语音
识别
系统
呢
2021-12-23
1617
怎样
去
设计一种基于LD3320芯片的嵌入式
语音
识别
系统
呢
2021-12-23
1952
怎样
去
搭建一种基于嵌入式平台的在线
语音
识别
系统
呢
2021-12-23
2336
怎样
去
搭建一个基于kaldi的嵌入式在线
语音
识别
系统
2021-10-28
2950
怎样
去
设计一种基于STM32F429的
语音
识别
交互系统
2021-10-20
1246
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分