你的树莓派还在吃灰吗?来试试把它改造成语音助手吧!

2016-08-29 22:41:35 +08:00
 namco1992

大家好,我又不要脸地来骗 star 了~

可能有点标题党的成分,但是我的树莓派已经吃灰很久了。所以这次写了个小程序,花一点微小的成本把树莓派改造成语音助手,何乐而不为呢?其实这个 idea 在去年 Amazon 的 Echo 没出的时候就有了,当时就写了一个,现在是一个重构版本。 Amazon 的 Echo 还是不太符合中国国情,不如试试自己搭建一个屌丝版的 Echo 吧~

这次的树莓派语音助手做成了我写的一个小工具 voicetools 的一个示例程序, voicetools 只是一个尽可能方便大家做语音合成和语音识别的一个 wrapper ,让大家一行代码完成语音识别和合成的工作。

项目地址:https://github.com/namco1992/voicetools

voicetools 介绍

语音识别及语音合成

from voicetools import BaiduVoice
# api key 及 secret key 请在百度语音官方网站注册获取
token = BaiduVoice.get_baidu_token('YOUR_VOICE_API_KEY', 'YOUR_VOICE_SECRET')
bv = BaiduVoice(token)
# 语音识别
results = bv.asr('path/to/your/audio/file')  # 返回识别结果列表,可选参数见百度语音文档
# 语音合成
audio = bv.tts('你好')  # 返回 MP3 格式二进制数据,可选参数见百度语音文档

还集成了两个 AI 类型的 API ,就不占篇幅了,有兴趣可以移步项目地址查看。

树莓派语音助手介绍

简介

该示例程序基于 voicetools ,遵循最简单的 one-in-one-out ,只需要在该示例程序的基础上添加关键词和对应执行的动作,就可以扩展成为个性化的专属助手。 目前示例程序实现的功能有语音提醒今明两天天气预报查询

特性

需要准备什么?

如何运行和扩展?

扩展只需三步,且只需要关注你要实现的功能即可。请移步项目地址参考实例。

最后,如果大家有兴趣的话,请给个 star 鼓励一下,非常感谢~

如果有任何问题,欢迎 PR 和 Issue 。

22591 次点击
所在节点    Python
58 条回复
namco1992
2016-08-30 09:45:31 +08:00
@lan894734188 去年的时候尝试过 google 的 TTS ,现在貌似也不对外提供服务了。并且由于中国国情,使用起来也不甚方便。至于 google now 还没有尝试过呢~
Phariel
2016-08-30 09:52:40 +08:00
淘宝上有卖科大讯飞 TTS 的 Arduino 模块 我买了一个还没用过 太懒了。。。
anym0us
2016-08-30 09:55:33 +08:00
还能有其他玩法嘛,买来装了个 KALI 然后嘿嘿嘿,
goreliu
2016-08-30 09:58:30 +08:00
问题是,如果在手机上就可以实现,为什么要常年开着一个树莓派在那耗电。而且天气预报之类还是看比听更直观。语言提醒的话,总不能抱着树莓派各地跑,而手机要方便很多。

很多和树莓派相关的用法,都存在这个问题。
namco1992
2016-08-30 10:16:26 +08:00
@goreliu 呃,我只是实现一个摆在家里的语音助手,并没有打算移动它。你可以参考 Amazon 的 Echo 。至于功能的话,我的初衷是我实现两个小功能抛砖引玉,理论上来说有了语音输入和对应的关键词输出,可以自行实现任何功能搭配起来。
rainsun
2016-08-30 10:35:46 +08:00
手动 mark
achaocha
2016-08-30 10:50:24 +08:00
手动 mark
Flygoat
2016-08-30 10:59:06 +08:00
借楼问一下各位知道 RPI3 有 Aarch64 下 HardFP 的编译器吗?还有 VideoCore IV 的 VC04_services 驱动有 Aarch64 的替代品吗?
t0byxdd
2016-08-30 11:00:33 +08:00
表示树莓派现在就做梯子用。。。
wujunze
2016-08-30 11:03:51 +08:00
感谢分享 可以试试
tabris17
2016-08-30 12:03:13 +08:00
声音传感器唤醒树莓派这个怎么弄?
ksc010
2016-08-30 12:30:54 +08:00
楼主用的 usb 的麦克吗?
我想适配蓝牙耳机的
missdeer
2016-08-30 14:01:29 +08:00
其实我想要楼主的麦克风 /扬声器 /传感器 taobao 链接
namco1992
2016-08-30 14:03:32 +08:00
@missdeer ::doge:: 这个随便找吧,我也是买的最普通的,那些卖数电模电器件的店都有的
namco1992
2016-08-30 14:11:39 +08:00
@tabris17 首先设定好你的传感器信号输入端,我是用的 4 ,然后设置初始电平,如果是初始高电平,亦即检测到下降沿时唤醒树莓派,然后搞一个 loop 持续监测就可以了。代码你可以参考 https://github.com/namco1992/voicetools/blob/master/examples/raspi_assistant/assistant.py
namco1992
2016-08-30 14:16:01 +08:00
@ksc010 我是用的 USB 的麦克风,蓝牙的确没有试过,我的是 2 代树莓派,也没买蓝牙适配器。蓝牙的话可能声音的输入输出都需要另外设置。
tabris17
2016-08-30 14:17:38 +08:00
@namco1992 就是树莓派通过 GPIO 连接传感器,然后树莓派上跑个进程,轮询传感器的数据。也就是说树莓派是一直“醒”着的咯?否则怎么跑进程轮询呢?
namco1992
2016-08-30 14:32:30 +08:00
@tabris17 我对“醒”的定义是树莓派接收到声音信号,进入接收语音指令的状态。在没有接收到声音信号时,肯定是需要一个进程来进行下降沿检测,但是我认为这时候并不是“醒”。
tabris17
2016-08-30 14:39:43 +08:00
@namco1992 原来如此,明白了,谢谢啦
xuecat
2016-08-30 16:27:38 +08:00
唉,我还是吃灰吧!我估计我配不来。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/302557

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX