一、目的

前一篇博文中我们提交语音交互框架设计,那如何设计一个语音SDK呢?本篇博文会给出一些建设性意见和参考设计。

二、框架

语音SDK设计篇

上图中每个实心圆代表每个线程,完成对应的功能;需要特别说明的是信号处理与唤醒,有些厂商这两个模块可能已经做好集成,呈现给开发者的接口封装了内部逻辑,对话只需要关心语音输出和相关事件。

上图中调度器也就是本文的核心,来实现上可以是行为树也可以是状态机,本文着重介绍状态机的实现方式。

三、设计

调度器顾名思义就是根据输入进行相关调度处理,保证其他各个线程都是按照指定逻辑进行处理。

现在我们来分析一下一个语音设备在处理语音时可能经历的状态:

  • IDLE(空闲)
  • WAIT_FOR_WAKEUP(等待被唤醒)
  • WAIT_FOR_SPEECH_START(等待语音起点)
  • SPEECHING(拾音中) 
  • WAIT_FOR_ASR(等待识别结果)

语音SDK设计篇

由于涉及到公司语音SDK的具体设计,各个状态下的具体消息跳转不一一标明,图中连线代表状态迁移,至于由于什么消息导致怎样的迁移,开发者可以自行思考。

至此,一个语音SDK草图就算完成了。

相关文章:

  • 2021-12-17
  • 2022-01-06
  • 2021-11-14
  • 2021-08-13
  • 2021-06-26
  • 2021-05-31
  • 2021-12-11
  • 2022-12-23
猜你喜欢
  • 2021-11-02
  • 2021-11-05
  • 2022-12-23
  • 2021-08-24
  • 2022-12-23
  • 2021-08-23
  • 2021-05-01
相关资源
相似解决方案