一.硬件描述
Raspberry Pi4 (4GiB RAM )
PSound AI Card
扬声器
(本人不做广告,只是描述本人采用的硬件配置如下)
二.搭建树莓派平台
1.下载OS
安装操作系统:(当然可以自己选择,比如ubuntu的也是可以的)
我采用的是官方推荐的:
2020-02-13-raspbian-buster
2.导入OS
win32diskimager-v0.9-binarySDCardFormatterv5_WinEN
具体步骤为先下载操作系统,解压得到后缀为2020-02-13-raspbian-buster.img的文件,然后将SD卡格式化(用SDCardFormatterv5),接着打开win32diskimager-v0.9-binary,选中.img和sd卡,直接点击write即可,完成后将sd卡插入树莓派。
(没必要勾选MD5 Hash)
3.使用OS
首先明确一点,本人没有树莓派显示器,所以一切在PC上实现,那么问题来了,总得先连上树莓派吧。这时树莓派也没连着wifi,所以我是采用网线连的,连上PC即可。
windows下 连接网线前 cmd=>输入"arp -a",然后连接网线后再次输入“arp -a”,会发现多出的部分如下:
记住这个ip:我的是上图中的192.168.137.175
ubuntu18.04下,可以输入ping raspberrypi.local
来直接查看其ip
然后下载putty:https://www.chiark.greenend.org.uk/~sgtatham/putty/ 和VNC viewer:https://www.realvnc.com/en/connect/download/viewer/
不想去官网的,我先给出网盘上的:
前后两者的区别在于后者有图形化图面,当然使用后者也需要用putty打开VNC功能,具体如下:
点击否:
login as:pi
pi@192.168.137.175’s password:raspberry
(注:输入密码时你是看不到自己是否输入的,盲输就行了,输完回车)
然后输入:sudo raspi-config
选择Interfacing Optinotallow=>VNC=>yes=>ok=>finish
这时,你再打开VNC viewer ,输入同样的IP地址,即可在PC上图形化操作树莓派。
3.5连接不上
如果发现树莓派连接不上电脑,也就是说arp -a的结果不是192开头,而是169开头,那么是有问题的。解决如下:
把sd卡插回电脑,打开后,新建一个txt文件,然后命名为"ssh",注意把后缀.txt给删掉。
然后windows10下进行如下操作:
之后,记得把插在电脑上的网线头拔掉重插。如果还是连不上,可以尝试下一个,比如:
如上图所示,如果192.168.137.66连不上,可以尝试192.168.137.100!!!
3.7解释
IPv4的地址划分中,169.254.0.0/16是link-local地址,当主机获取IP地址失败时会得到一个Link-local地址,路由器不会转发该地址的数据报文。
4.设置输入法
先连上wifi,没难度,认识符号就会
打开terminal,输入:
sudo apt-get install fcitx fcitx-googlepinyin fcitx-module-cloudpinyin fcitx-sunpinyin
安装完毕后,重启即可修改,切换输入法快捷键都会吧。
目录 | 对应功能 |
bin | 存放Linux的常用命令 |
boot | 存放Linux的启动文件 |
dev | 存放Linux的外部设备 |
etc | 存放所有系统管理需要的各种配置文件和子目录 |
home | 存放主目录 |
lib | 存放动态链接共享库 |
media | 提供所有可移动设备的常规设备挂载点 |
mnt | 临时文件挂载点 |
proc | 存放有关系统资源的信息 |
root | 表示根用户的主目录 |
sbin | 存放系统中非必备和并不特别重要的系统二进制文件及网络应用工具 |
sys | 存放内核、固件及系统相关文件 |
tmp | 存放临时文件 |
usr | 存放用户文档、游戏、图形文件、库以及各种其他用户和管理命令及文件 |
var | 存放的是不断扩充且经常修改的目录 |
三.搭建语音平台(这才是主题)
最开始的硬件都准备好了吧,然后打开链接安装驱动:
https://github.com/jim2meng/dueros 只需输入以下即可(当然采用我的方法可以继续看,采用链接的可以结束本次阅读了):
sudo apt-get update
sudo apt-get install gstreamer1.0*
安装成功下面三行不需要执行,安装失败,请按照下面分三步分开安装
sudo apt-get install libgstreamer1.0*
sudo apt-get install gstreamer1.0-omx-generic*
sudo apt-get install gstreamer1.0-plugins*
卸载下面的,不然gstreamer在树莓派上可能运行不成功
sudo apt-get remove gstreamer1.0-omx-rpi*
先按链接的方法测试一下声卡没问题,没问题我们继续:
pip3 install speechrecognition
sudo apt-get install -qq python python-dev python-pip build-essential swig libpulse-dev
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple pocketsphinx
全部安装完成后,不出意外的话应该可以试试了,具体可以看我的另一篇博客:
注:树莓派python site-package位置为:
/home/pi/.local/lib/python3.7
淘宝文件资料链接:
附录
import uuid
import psutil
import netifaces
from urllib import request
#MAC
node = uuid.uuid1()
print(node)
#获取本的全部网卡信息
info = psutil.net_if_addrs()
net1 = info['eth0']
net2 = info['lo']
ipv4 = net1[0].address
#ipv6 = net1[1].address
print(ipv4)
#print(ipv6)
#print(info)
#获取局域网网关信息
gate = netifaces.gateways()
gate_addr = gate['default'][2][0]
print(gate_addr)
#网络上的主机间通过IP地址与端口号进行通信,称为Socket通信,TCP/IP
#协议中应用层的HTTP、FTP、DNS都是通过Socket通信实现的。
#扫描本机是否有端口打开,预防病毒
import socket
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.settimeout(0.5)
ip = '192.168.56.1'
for port in range(5000,9000):
result = s.connect_ex((ip,port))
if result == 0:
print('port %d is openned!'%port)
s.close()