>> Github
以下是制作智能扬声器的资源集合。希望有一天我们可以制作一个日常使用的开源软件。
智能扬声器的简化流程图如下:

  1. +---+ +----------------+ +---+ +---+ +---+
  2. |Mic|-->|Audio Processing|-->|KWS|-->|STT|-->|NLU|
  3. +---+ +----------------+ +---+ +---+ +-+-+
  4. |
  5. |
  6. +-------+ +---+ +----------------------+ |
  7. |Speaker|<--|TTS|<--|Knowledge/Skill/Action|<--+
  8. +-------+ +---+ +----------------------+
  • 音频处理包括声学回声消除(AEC),波束成形,噪声抑制(NS)等。
  • 关键字定位(KWS)会检测关键字(例如OK Google,Hey Siri)以开始对话。
  • 语音到文本(STT)
  • 自然语言理解(NLU)将原始文本转换为结构化数据。
  • 知识/技能/行动 - 知识库和插件(Alexa Skill,Google Action)提供答案。
  • 文字转语音

<! —more—>

<! —more—>

KWS + STT + NLU +技能+ TTS

活跃的开源项目

它具有最聪明的大脑,其扩展名为Google Action,可以通过digitalflow.ai创建几个步骤,其Device Action非常适合家庭智能设备。

  • 百度DuerOS

    KWS

  • Mycroft Precise - 一款轻巧,易于使用的RNN唤醒词听众

  • Snowboy - 基于DNN的热门词和唤醒词检测工具包
  • Honk - PyTorch重新实现Google的TensorFlow CNN用于关键字定位
  • ML-KWS-For-MCU - 可能是资源受限设备(如ARM Cortex M7微控制器)的最大承诺

    STT

  • Mozilla DeepSpeech - 百度DeepSpeech架构的TensorFlow实现

  • Kaldi
  • PocketSphinx - 使用HMM + GMM的轻量级语音识别引擎

    NLU

  • Rasa NLU

  • Rasa NLU中文版
  • Snips NLU - 一个Python库,允许解析用自然语言编写的句子并提取结构化信息。

    TTS

  • Mimic - Mycroft的TTS引擎,基于CMU的Flite(Festival Lite)

  • manytts - 一个用纯java编写的开源,多语言文本到语音合成系统
  • espeak-ng - 一种支持99种语言和口音的开源语音合成器。
  • ekho - 中文文本转语音引擎
  • WaveNet,Tacotron 2

    音频处理

  • 声学回声消除

  • SpeexDSP,它的python绑定speexdsp-python
  • EC - Echo Cancelation Daemon基于SpeexDSP AEC,用于Raspberry Pi或运行Linux的其他设备。
  • 到达方向(DOA) - 最常用的DOA算法是GCC-PHAT
  • TDOA
  • odas - ODAS代表Open embeddeD Audition System。这是一个专门用于执行声源定位,跟踪,分离和后置过滤的库。ODAS完全采用C编码,具有更高的可移植性,并经过优化,可在低成本嵌入式硬件上轻松运行。ODAS是免费和开源的。
  • 波束成形
  • BeamformIt - 滤波和求和波束形成
  • CGMM Beamforming - 参考实现
  • MVDR波束成形
  • GSC波束成形
  • 语音活动检测
  • WebRTC VAD,py-webrtcvad
  • DNN VAD
  • 噪音抑制
  • NS的WebRTC音频处理,python-webrtc-音频处理

    音频I / O.

  • PortAudio,pyaudio

  • libsoundio
  • ALSA
  • 的PulseAudio
  • Pipewire