存档

文章标签 ‘树莓派’

树莓派/香蕉派语音合成

2015年3月3日 没有评论

自从衣服自己洗入手了香蕉派(banana pi)后,已经过去了很长时间了。
其实这些时间里,一直在解决语音合成的问题。按照当时的初衷是想做一个有点智(dou)能(bi)味道的东西。在olay怀孕期间,做了一个定时任务,每天定时播放胎教音乐,不过现在看起来小红薯似乎对音乐也没有多大兴趣。

然后第二步是打算做天气的定时语音预报,一直比较中意的是科大讯飞的语音合成技术。衣服自己洗本来就对Linux编译特别不熟悉,在他们的开放平台上申请了个appid后,就走上了自我折磨的不归路哇。

由于香蕉派上安装的是Lubuntu系统,硬件配置不算好,所以打算在电脑上把代码编译后再复制到香蕉派上。科大讯飞官方提供的SDK,并没有c#的版本,就考虑用c++编译一个仅仅负责语音合成的程序,然后用c#来写逻辑。Java什么的还是算了吧,看到java一大堆的配置就头疼。

mono安装下来,跑了个命令行似乎没有什么问题,于是开始处理语音合成部分。装了个Ubuntu虚拟机,编译官方的demo后拷贝到香蕉派上,运行失败。突然想起来banana pi是基于arm系统,而虚拟机里的ubuntu是基于x86的。

那么退一步,直接在香蕉派上编译应该就可以了吧。
于是直接远程桌面香蕉派,安装了CodeLite开发环境,上传源码,编译失败,一番搜索发现是要添加 -ldl 选项,但是一看官方的build脚本,是有这个选项的。后来各种尝试后,万万没有想到,应该把 -ldl 放到编译命令的最后面。当然咯,-pthread 也是一样的道理,这里就不多说了。

坑的眼睛都睁不开。

修改了编译脚本后,可以正常编译了,但是运行失败,估计是官方提供的 libmsc.so 库格式不对。
于是发邮件,对方说需要提供appid和交叉编译的名称,于是又网上搜索交叉编译,发现大家用的基本上是arm-linux-gcc,回邮件。一周后,交叉编译提供的 libmsc.so 库发过来,重新引用编译。
运行提示找不到 libmsc.so 库。再次网络搜索,发现Linux系统中对于共享库文件默认是在固定的几个目录里,而不像windows那样,先从程序的运行目录里查找dll文件。添加进去还是不行。接着网络搜索,发现还要设置 export LD_LIBRARY_PATH 为库文件存放的目录,同时还需要sudo ldconfig -v来刷新。

多么纠结的Linux啊~泪流满面。喔,忘记说的是,衣服自己洗还不会C++,为了这事情,又买了C++开发的书来学习,精神可嘉有没有~

运行还是提示找不到libmsc.so文件,官方论坛里也没有有效的答复,最后我放弃了。

今天在论坛里发现官方释放了一个针对树莓派的demo,但是提供的是一个静态库a文件。抱着试一试的想法,上传,编译失败。网上搜索也没有个所以然出来。照葫芦画瓢自己写编译脚本运行还是不行。突然想起来前面的 -ldl 要放到最后面的问题,于是添加到最后。终于编译成功,运行成功。

很是激动有没有,这就意味着困扰了好几个月的问题终于解决了。后面就好说了,获取天气预报,用c#来处理,这个实现,就放到后面的博客里描述吧。

香蕉派环境配置(二)之合并分区

2014年8月14日 1 条评论

经过一段时间的运行,香蕉派里磁盘空间很快就满了。使用 df -lh 命令,可以看到 /dev/root 占用率已经达到 100%。这个现象让我很是迷惑,当初买SD卡时我买的是8G大小,难道这么快就用光光了?对于 Linux 我不懂,顿时慌了手脚,于是就在考虑是买一个更大容量的SD卡,还是考虑采用移动硬盘的方式,还是把香蕉派扔掉的犹豫中渡过了几个不眠夜。

目前我的香蕉派里就安装了Nginx、PHP、Mysql,加上系统本身的空间,内容应该没有特别大。

在一次偶然的过程中,我打开了Disks程序,突然发现SD卡,里面还有大约4G的空白空间。我的第一反应是还好自己放在购物车里的订单还没有支付。既然有剩余空间就比较好处理了,用一些工具应该可以实现。可惜我不会,只好求助网络。

网上搜索有帖子说,对于Linux系统一旦安装好,那么分区就是固定的了,一个处理不好连系统无法启动。我这边看到有2个分区,第一个分区不到100M,应该是引导分区,第二个分区就是实际用的。剩余4.3G是剩余空间,还没有分区。

以root登录系统,使用 Disks 工具,选中那个4.3G的空白空间,然后格式化并添加。记得是快速格式化,磁盘格式选择和主分区一致的Ext4格式。

现在就该使用解决问题的命令fdisk了,命令格式:fdisk <存储设备名>  //如: fdisk /dev/sda
进入fdisk 后,使用单键命令
m 显示Help

p  列出所有分区
d  删除分区
n  新建分区
w 存盘退出
q 不存盘退出

对主设备进行fdisk,对于香蕉派,命令是:sudo fdisk  /dev/mmcblk0。

按 p 键 列出所有分区,可见有三个分区。第一个分区是 FAT32分区,是引导用的,第二个分区是Linux 主分区,第三个分区是刚添加的那个4.3G的空白分区。记下Linux 主分区的Start Sector号 ,我的是102400。

按 d 键 Partition Number (分区号) 选 2, 删除linux主分区(第2个区)。再按d键, Partition Number (分区号) 选 3,  删除4.3G的空白分区(第3个区)

按 p 键 列出所有分区,可见只剩第一个分区了

按 n 键,重新创建linux主分区
Partition Type(分类类型) 选 P (Primary)
Partition Number (分区号) 选 2

First Sector(起始Sector) 一定要输入刚才记下来的Start Sector号(我的是102400),默认直接回车也可以。Last Sector (终止Sector)用默认值,直接回车。

按 p 键 列出所有分区,可见有两个分区,linux主分区在第2个,起始位置是原位置。 按 w 键 存盘退出fdisk。

接下来,立即重启,不要做任何其它事情

sudo reboot

重启并登录后,立即用以下命令sudo resize2fs /dev/mmcblk0p2 ,该命令将把第二个分区扩展到新的空间中。现在查看一下硬盘使用情况,OK了。无论是用 Disks 程序还是 df -lh 命令,都可以看到主分区有7G多了。

上述操作的原理是:首先删除了linux主分区和空白,重建的主分区起始Sector位置与原主分区一致,再resize2fs,则原主分区数据完全没变,但改变了主分区的大小。

至此,香蕉派的分区合并就完成了,衣服自己洗很是高兴,希望对手头上有树莓派/香蕉派的同学有帮助。

超越树莓派的香蕉派

2014年8月13日 没有评论

整个事情的时间跨度有点长,在好几年前网上看到树莓派这个词,那时我小不懂事,于是就搜索了一把,从此留了下伏笔。

搜索结果看到树莓派很是流行,我觉得性能不是很好,就放下了。不过偶尔看到和树莓派有关的内容,还是会点击看一看的。最近的一个活是一个关于智能家居的开发,觉得蛮有意思的。

在某一天看到某人的微博,说是买了个树莓派。顿时心理就痒的不行,第二天恰好看到有香蕉派,性能比树莓派好很多,于是就立马入手了香蕉派。如果百度搜索香蕉派的话,基本上都是饮食类的内容,如果搜索banana pi的话,就会出现对应的结果,从这个角度来看,香蕉派还有段距离要走。

香蕉派在CPU和内存上都比树莓派上了一个级别。只比信用卡稍微大一点点,可以用来做文件服务器,web服务器等,而且借助 wifi,可以放在家里各种地方,拿出来显摆也是很不错的哟。

香蕉派 香蕉派背面

香蕉派,有2个USB接口,1个网卡接口,1个HDMI 和音频接口,出乎我意外的是,居然还有红外接口,用来做智能家居的控制是再好不过的了。和树莓派一样,使用SD扩展卡,经过我的试用这些硬件基本满足折腾的需求。由于使用HDMI接口,我外接显示器还买了个转接头,键盘是用的工作上服务器的小键盘。没有无线网卡,在网上买了一个免驱动的,这样一来,USB接口就不够用了,只好又买了个USB Hub。那个时候,电脑又坏了,去中关村跑了好几趟,顺便买了个 hub,质量水的不得了,还花了20大洋,好在可以用。

买香蕉派,本来是想折腾,一是弄个web服务器,另外一个是想看看智能家居方面有没有什么机会。香蕉派官方说是兼容树莓派,也可以安装安卓哟,不过我还是选择的ubuntu镜像,其实应该算做是LUbuntu,LUbuntu 是另外一个界面的ubuntu,对于GUI做了精简,适合硬件能力不算好的设备。

如果大家喜欢的话,不妨去看看。