现有的一些“智能音箱”如某度和某猫精灵,跟现在的chatGPT比显得智障。如果能有一款接入chatGPT的智能音箱,它的交互性就好多啦。有gpt加持的智能音箱绝对会很强,以下提供探讨下实现思路。
目前智能音箱在语音交互层面依然不够成熟,正如雷科技此前撰写《ChatGPT该给语音助手们补补“智商”了》一文中提到的那样,不管是Siri还是小爱同学,大部分使用过语音助手的用户大概都同意,它们肯定不算聪明,甚至交互起来非常别扭。
语音交互体验不佳,用户自然用起来的兴趣就不大了。
然而,ChatGPT的突然出现,给行业带来了希望。这类大型自然语言处理模型,恰好能解决传统语音助手“无法理解前后语意,长句识别不够准确”的问题,能为语音交互提供更好的准确性、扩展性、连贯性,让机器理解人类语音指令的能力,实现指数级飞跃。
正因如此,借助ChatGPT来优化语音助手的设想,确实存在着较高的可行性。如果真的能让语音助手接入ChatGPT,那就能让智能音箱主动分辨用户是否在和自己交流,并和用户随时随地展开自然交流。让用户愿意去和智能音箱交谈,也让智能音箱成为用户日常生活或工作中,真正高效智能的助手。
要实现一个智能 AI 音箱,涉及到语音识别、自然语言处理、语音合成等多个技术领域。下面介绍一个简要的实现方案步骤。
实现过程
-
采集语音指令 需要使用麦克风或者其他外部设备来采集用户的语音指令。可以使用如 PortAudio 等音频库进行录音,并转换成适合语音识别的采样率和格式。
-
语音识别 采集到语音数据之后,需要使用语音识别技术将其转换成文本。可以使用如百度智能云、讯飞等提供的语音识别服务,也可以使用开源的语音识别库如 Kaldi 等进行离线识别。
-
文本处理 得到文本之后,需要进行自然语言处理,将指令分类和解析。这里可以使用 chatgpt 进行指令分类和对话管理。需要将 chatgpt 集成到代码中,并在处理文本时发送给 chatgpt 进行处理。
-
处理 chatgpt 响应 得到 chatgpt 的响应之后,需要将其转换成语音并进行播放。可以使用各类语音合成库,如百度智能云、讯飞、MaryTTS 等进行语音合成,并使用如 PortAudio 等音频库进行播放。 以上方案仅为一种简要的实现方案。
PortAudio介绍
PortAudio是一个免费的、跨平台的、开放源码的音频I/O库。它可以让你用C或C++来编译并在多种平台能够运行的简单音频程序,包括Windows、Macintosh OS X和UNIX(OSS / ALSA)。它旨在促进不同平台上开发人员之间的音频软件融合。许多应用程序已经使用PortAudio库进行音频I/O处理。
Kaldi介绍
Kaldi是目前最流行的ASR(自动语音识别技术)开源项目之一,已被众多商用的语言识别系统使用。自从2019年Kaldi最主要的开发维护者,被称为Kaldi之父的Daniel Povey加入小米,出任小米集团语音首席科学家后,更加提升了小米的智能语音产品,并且小米也承诺会继续坚持自己纯粹、极致的开源文化,继续不断地加大对Kaldi的投入,持续为Kaldi社区做贡献。
后记
有开发者已经这样做了。在代码托管平台Github上,有开发者尝试将ChatGPT接入小爱同学,只要用户完成部署,所有唤起小爱同学后,以「帮我」开头询问的问题都会自动以文本形式发送一份给ChatGPT,而ChatGPT 生成的文本则会被小爱同学通过TTS(语音合成技术)进行语音回答。
从开发者的演示显示,整个过程足够流畅,实际回答也远超小爱同学原本的“智力”水平。
不过,这个项目只是个人开发者的尝试,这也意味着目前接入ChatGPT的小爱同学只有聊天能力,如果你将全部对话都接到ChatGPT,那么智能互联的功能就相当于全废了,比如定闹钟、播音乐、控制iot设备等。
如何让ChatGPT在听得懂人说话的同时,能够去帮助人们做事,才是改善智能音箱使用体验的关键所在。
引用
基于KALDI开发安卓离线语音识别项目
在树莓派上搭建kaldi离线语音识别系统
kaldi嵌入式平台的移植及实现 Linux音频录制和播放
markdown PortAudio —— 跨平台音频采集API PortAudio portaudio使用笔记
Kaldi的简单介绍
kaldi在Windows下的使用
本文由 mdnice 多平台发布