关键字:HTTP POST JSON Base_64
目的:本地连云,送处理后的语音到云端,云端有调度服务,收到语音后,ASR+NLU+TTS,返回ASR的结果,NLU的结果,以及TTS的语音。
Base_64编解码:使用64个可见字符传输,将8位的二进制编码为6位的。
https://www.jianshu.com/p/e95278ed98b4
数据封装JSON格式:cJSON
1、最简单的手动封装和解析:
https://blog.csdn.net/zsj1126/article/details/80933783
HTTP POST上传JSON:使用libcurl
返回数据后,再解析JSON。
线程间的通信与同步:
互斥锁:内存的临界区,同一时间内只允许单一线程访问
ringbuffer:一个写指针,一个读指针,根据写入的数据长度,移动两个指针
pingpongbuffer:以数据实现为例:两个数据,索引0的位置是标志位,两个数组一个用来写数据,另一个用来读数据,然后再交换,并且更改标志位。
进程间的通信和同步:
1、sharemem:共享内存
写进程开辟一块共享内存,1page = 4096 byte,向读进程发送信号量,并形成消息队列,读进程根据信号量,读取消息队列的消息,读取共享内存的数据。
2、socekt 套接字
https://blog.csdn.net/weixin_39258979/article/details/80931464
https://www.jianshu.com/p/066d99da7cbd
https://blog.csdn.net/qq_33951180/article/details/68066634