当前位置: 首页 > news >正文

全美东莞网站建设福建省建设行业企业资质查询网站

全美东莞网站建设,福建省建设行业企业资质查询网站,跨境电商怎么搞,网络营销的概念?目录 功能设计 模块划分 业务接口/功能示意图 服务实现流程思想 服务代码实现 编写proto文件 服务端创建子类(SpeechRecognitionServiceImpl)完成RPC服务调用函数重写 SpeechRecognize(语音识别) 服务端完成语音识别子服务类(SpeechRecognitionServer) 注意 …

目录

功能设计

模块划分

业务接口/功能示意图

服务实现流程思想

服务代码实现

编写proto文件

服务端创建子类(SpeechRecognitionServiceImpl)完成RPC服务调用函数重写

SpeechRecognize(语音识别)

服务端完成语音识别子服务类(SpeechRecognitionServer)

注意 

实例化服务类对象,启动服务

工程系统构建配置文件(CMakeLists.txt)

服务测试


本章节,主要对项目中语音识别子服务模块进行分析、开发与测试。

功能设计

语音识别子服务,通过调用语音识别SDK,进行语音识别,将识别后的文字返还给入口网关子服务即可,因此,提供的功能性接口只有一个:

语音消息的文字转换:客户端进行语音消息的文字转换。

模块划分

参数/配置文件解析模块基于gflags框架直接使用,进行参数/配置文件的解析。
日志模块基于spdlog封装的logger 直接进行日志输出。
服务注册模块基于etcd框架封装的注册模块 直接进行语音识别子服务模块的服务注册。
RPC服务模块基于brpc框架 搭建语音识别子服务的RPC服务器。
语音识别SDK基于百度云的语音识别SDK框架封装的识别模块,进行语音识别文字。

业务接口/功能示意图

服务实现流程思想

1、编写服务所需的proto文件,利用protoc工具生成RPC服务器所需的.pb.h 和 .pb.cc 项目文件。
2、服务端 创建子类,继承于proto文件中RPC调用类,并进行功能性接口函数重写。
3、服务端 完成语音识别子服务类。
4、实例化 服务类对象,启动服务。

服务代码实现

编写proto文件

speech请求(SpeechRecognitionReq)包含成员:

1、请求ID:用于标识该请求的唯一性。

2、语音数据:存放语音文件数据(以byte的方式存放)。

3、用户ID:标识用户,便于后续网关服务器响应用户。

4、用户登陆会话ID:用于网关进行用户身份鉴权,识别用户是否登陆。(此处用不上,为了代码大一统,添上)

speech应答(SpeechRecognitionResp)包含成员:

1、请求ID:对应请求中的请求ID,标识请求唯一性。

2、成功标识:标识该次请求的处理结果。

3、错误信息(optional):如果处理出错,记录出错信息。

4、语音文字数据(optional):如果处理成功,存放转换后的文字数据。

RPC服务器(SpeechRecognitionService)提供接口:

1、SpeechRecognition (SpeechRecognitionReq) returns (SpeechRecognitionResp)。

proto文件(speechRecognition.proto):

syntax="proto3";
package yangz;option cc_generic_services = true;// SpeechRecognitionReq
message SpeechRecognitionReq
{string req_id = 1;bytes speech_data = 2;string user_id = 3;optional string login_session_id = 4;
};// SpeechRecognitionResp
message SpeechRecognitionResp
{string req_id = 1;bool success = 2;optional string err_msg = 3;optional string speech_character_data = 4;
};// SpeechRecognitionService
service SpeechRecognitionService
{rpc SpeechRecognize(SpeechRecognitionReq) returns (SpeechRecognitionResp);
};

服务端创建子类(SpeechRecognitionServiceImpl)完成RPC服务调用函数重写

SpeechRecognize(语音识别)

实现流程:

1、接收请求,获取语音数据。

2、调用基于语音识别SDK封装的框架,获取识别后的文本内容。

3、组织响应进行返回。

speechRecognitionServer.hpp:

    // 创建子类, 继承于SpeechRecognitionService, 完成功能性接口的实现class SpeechRecognitionServiceImpl : public yangz::SpeechRecognitionService{public:SpeechRecognitionServiceImpl(const yangz::SpeechRecognitionClient::ptr &src_client): _src_client(src_client){}~SpeechRecognitionServiceImpl() {}
http://www.dtcms.com/a/469302.html

相关文章:

  • SpringBoot集成springdoc
  • 【Java开发日记】请介绍类加载过程,什么是双亲委派模型?
  • 算法奇妙屋(五)-链表
  • 从iPhone转移到itel手机的联系人转移指南
  • MySQL实战篇04_Docker入门实战:从零搭建MySQL容器环境
  • 上海网站制作机构做网站后面维护要收钱吗
  • wget 命令速查手册 | HTTP / FTP 文件下载全指南
  • ffmpeg avio使用示例
  • 我把Excel变成了像素画板!用Python实现图片到单元格的映射
  • Android相册高频面试场景分析
  • 郑州建筑公司网站建设网页制作标准
  • iOS 推送证书 P8 介绍及生成流程
  • Ubuntu22.04安装Ibus的中文输入法
  • 基于STM32的智能物联网加湿器/智能家居
  • 23种设计模式——解释器模式(Interpreter Pattern)
  • 贴吧网站建设个人免费空间申请
  • 机器人能否实现远程视频通话方便家属探视老人
  • 小杰深度学习(ten)——视觉-经典神经网络——LetNet
  • LeetCode每日一题——困于环中的机器人
  • c++11 列表初始化 右值引用 移动语义 引用折叠 完美转发
  • 以太网与工业以太网通信C#开发
  • 14-verilog的SPI主驱动
  • vue项目安装chromedriver超时解决办法
  • 【C++】12.多态(超详解)
  • 【Linux操作系统】进程控制
  • 做实验流程图的网站广州免费核酸采集点时间
  • 网站网页设计公司电子商务公司logo
  • 潮玩盲盒抽赏小程序玩法拆解:不同视角下的增长逻辑分析
  • 使用Milvus和DeepSeek构建RAG demo
  • WD5030A,24V降5V,15A 大电流,应用于手机、平板、笔记本充电器