Skip to content

Latest commit

 

History

History
108 lines (71 loc) · 5.07 KB

zh.md

File metadata and controls

108 lines (71 loc) · 5.07 KB

DIY智能音箱

这是一份为DIY智能音箱或者语音交互设备而收集的资源列表,希望最终我们可以DIY一个可以日常使用的开源智能音箱。

语音交互的简化逻辑大致是这样的:

+---+   +----------------+   +---+   +---+   +---+
|Mic|-->|Audio Processing|-->|KWS|-->|STT|-->|NLU|
+---+   +----------------+   +---+   +---+   +-+-+
                                               |
                                               |
+-------+   +---+   +----------------------+   |
|Speaker|<--|TTS|<--|Knowledge/Skill/Action|<--+
+-------+   +---+   +----------------------+
  • Audio Processing 即语音前端处理,包括回声消除 (Acoustic Echo Cancellation, AEC), 波束成形 (Beamforming), 降噪 (Noise Suppression, NS)等,现在主流采用阵列麦克风实现远场语音交互,开始有一些将神经网络跟经典语音处理算法结合的研究。
  • Keyword Spotting (KWS) 即关键词检测,用于检测OK Google、Hey Siri之类的关键词,然后开启一次对话。运行在终端设备,避免语音一直上传到云端
  • Speech To Text (STT) 即语音转文字,现在已经HMM+GMM全面切换到神经网络了
  • Natural Language Understanding (NLU) 即自然语言理解,用神经网络实现已经是主流了
  • Knowledge/Skill/Action 即知识库和扩展
  • Text To Speech 即文本转语音,Google的基于神经网络的WaveNet TTS已经开始应用在Google Assistant上了

在语音、自然语言处理及图像领域,基于神经网络的机器学习非常有效,像Google的AI First和百度的All In AI,他们有能力把AI落地,而不是在建造空中楼阁。


这个列表以语音交互技术栈的各部分划分。

KWS + STT + NLU + Skill + TTS

提供比较完整语音交互技术栈是比较难,并且KWS、STT、NLU和TTS等这4个部分,最好的算法都是基于神经网络的,近几年发展得非常迅速。

其中一些活跃的开源项目值得去了解和参与:

基于巨头的云服务和SDK,可以快速打造一个语音交互设备。

KWS

  • Snowboy - DNN based hotword and wake word detection toolkit
  • Honk - PyTorch reimplementation of Google's TensorFlow CNNs for keyword spotting
  • ML-KWS-For-MCU - Maybe the most promise for resource constrained devices such as ARM Cortex M7 microcontroller

STT

NLU

TTS

  • Mimic - Mycroft's TTS engine, based on CMU's Flite (Festival Lite)
  • manytts - an open-source, multilingual text-to-speech synthesis system written in pure java
  • espeak-ng - an open source speech synthesizer that supports 99 languages and accents.
  • ekho - Chinese text-to-speech engine
  • WaveNet, Tacotron 2

Audio Processing

语音前端处理现在集中在麦克风阵列信号处理上,还不算成熟,远场、嘈杂环境、鸡尾酒效应还待解决。神经网络算法也开始被应用到DOA、Beamforming等算法上。

Audio I/O