>> Github
以下是制作智能扬声器的资源集合。希望有一天我们可以制作一个日常使用的开源软件。
智能扬声器的简化流程图如下:
+---+ +----------------+ +---+ +---+ +---+
|Mic|-->|Audio Processing|-->|KWS|-->|STT|-->|NLU|
+---+ +----------------+ +---+ +---+ +-+-+
|
|
+-------+ +---+ +----------------------+ |
|Speaker|<--|TTS|<--|Knowledge/Skill/Action|<--+
+-------+ +---+ +----------------------+
- 音频处理包括声学回声消除(AEC),波束成形,噪声抑制(NS)等。
- 关键字定位(KWS)会检测关键字(例如OK Google,Hey Siri)以开始对话。
- 语音到文本(STT)
- 自然语言理解(NLU)将原始文本转换为结构化数据。
- 知识/技能/行动 - 知识库和插件(Alexa Skill,Google Action)提供答案。
- 文字转语音
<! —more—>
KWS + STT + NLU +技能+ TTS
活跃的开源项目
- Mycroft - 一个可以攻击的开源语音助手
dingdang robot - 一款基于Jasper的中文语音交互机器人,采用覆盆子pi构建
SDK
亚马逊Alexa语音服务 - 是使用最广泛的语音助手
- C ++ SDK
- Java客户端
- Python客户端
- Google智能助理SDK
它具有最聪明的大脑,其扩展名为Google Action,可以通过digitalflow.ai创建几个步骤,其Device Action非常适合家庭智能设备。
-
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中文版
Snips NLU - 一个Python库,允许解析用自然语言编写的句子并提取结构化信息。
TTS
Mimic - Mycroft的TTS引擎,基于CMU的Flite(Festival Lite)
- manytts - 一个用纯java编写的开源,多语言文本到语音合成系统
- espeak-ng - 一种支持99种语言和口音的开源语音合成器。
- ekho - 中文文本转语音引擎
-
音频处理
声学回声消除
- 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