通过Telegram Bot 把语音信息发送到 Raspberry Pi 并播放(一)

今天是国庆节前一天, 好像事不多, 这篇早该完成的博客一直拖到了现在.
<树莓派录音并发送到特定Telegram Group(二)> 相关的第二篇都已经写完了, 哎...

前言

去年媳妇在找工作, 但是由于出租屋内的手机信号不好, 经常接不到电话, 即使接到电话, 通话也是很卡断断续续的.
我公司信号没问题, 于是媳妇就把我号码也写到的简历上了, 这样我在公司经常收到面试电话, 再告诉他们原由,
让他们发面试邀请邮件或者我通知媳妇给他们回电话(主要通过QQ).
有时候媳妇不并总是在电脑前, QQ消息并不能及时回复, 就会出现你明明知道她在那里, 但就是联系不上,
于是就想到了利用树莓派来播放语言, 树莓派插上广播, 使用mplayer播放语音文件, 可以达到这个目的.
现在经常用来把下班行程告诉岳母, 然后根据语音提示合理的安排做饭时间. 一般到家正好开饭. 哈哈

继续阅读

树莓派录音并发送到特定Telegram Group(二)

目的:
在Raspberrypi上录音,然后把录音发送到特定Telegram group, 之前做了通过Telegram Bot 把录音发送到Raspberry pi 并播放.

操作说明:
Raspberry pi GPIO 版本: 0.6.3(这个和最新的0.10.0有方法名有区别)
手指触摸开关,指示灯亮起,此时开始录音,当想停止录音时,手指再次触摸开关, 指示灯关闭, 停止录音(TTP223, 也可以切换到另一模式,手指触摸长亮,手指离开关闭)。将音频文件移动到指定文件夹,然后通过Telegram Bot 把音频文件发送到指定的Telegram Group.

引用:

http://www.jianshu.com/p/3763957519a4
http://www.jianshu.com/p/008339095fd6
http://www.jianshu.com/p/ace71c44ec67

Github 项目:
https://github.com/tianzhenyun/raspberry-record-audio

继续阅读

线性方程组 解的判别 与 解的结构

Github地址 https://github.com/tianzhenyun/formula

一.线性方程组求解定理

1.线性方程组有解判别定理 线性方程组
a11 x1 + a12 x2 + … + a1n x n = b1 ,
a21 x1 + a22 x2 + … + a2n x n = b2 ,
......................................................
as1 x1 + as2 x2 + … + asn x n = bs
有解的充分必要条件是 : 它的系数矩阵与增广矩阵有相同的秩.

2.齐次线性方程组 a11 x1 + a12 x2 + … + a1n x n = 0 ,
a21 x1 + a22 x2 + … + a2n x n = 0 ,
......................................................
as1 x1 + as2 x2 + … + asn x n = 0
有非零解的充分必要条件是: 它的系数矩阵的秩 r 小于未知量个数 n.

齐次线性方程组求解一般步骤:

  • 把系数矩阵通过初等变换,变换成阶梯形矩阵.
  • 判断阶梯形矩阵中非零行的个数秩(r),以及计算自由元个数m=n-r.
  • 确定自由元位置,然后以次为它们赋值1,0...
  • 求解出方程组的基础解系.
  • 用基础解系表示出方程全解.

非齐次线性方程组求解,与齐次线性方程组求解过程基本一致,只需要再求出一个特解。

继续阅读

矩阵的逆 C 语言 算法一

一.求解步骤

  • 矩阵必须是方阵(即矩阵的行列相等)
  • 矩阵可逆的充分必要条件是其行列式的值不为零
  • 求出矩阵的伴随矩阵
  • 逆矩阵=行列式值的倒数*伴随矩阵

二.算法

#include <stdio.h>
#include <stdlib.h>

void main()
{
    int i,j;
    int dimension;
    double deterValue=1;
    double **array,**deterArray, **companionMatrix, *temp;

    //声明函数
    void printfDouble2Dimension(int s, int n, double **array);
    double deter(int dimension, double **array);
    void copyDouble2Dimension(int s, int n, double **source, double **dest);
    void getCompanionMatrix(int dimension, double **array, double **companionMatrix);
    ......

继续阅读

矩阵的逆 C 语言 算法二

一.初等变换法

如果矩阵A和B互逆,则AB=BA=E。由条件AB=BA以及矩阵乘法的定义可知,矩阵A和B都是方阵。再由条件AB=E以及定理“两个矩阵的乘积的行列式等于这两个矩阵的行列式的乘积”可知,这两个矩阵的行列式都不为0。也就是说,这两个矩阵的秩等于它们的级数(或称为阶,也就是说,A与B都是方阵,且rank(A) = rank(B) = n)。换句话说,这两个矩阵可以只经由初等行变换,或者只经由初等列变换,变为单位矩阵。
因为对矩阵A施以初等行变换(初等列变换)就相当于在A的左边(右边)乘以相应的初等矩阵,所以我们可以同时对A和E施以相同的初等行变换(初等列变换)。这样,当矩阵A被变为E时,E就被变为A的逆阵B。

继续阅读

Centos install Shadowsocks-go

原文链接: https://techllage.com/techllage/131-shadowsocks-go (已挂)

今天又来发教程了……过几天复习忙起来了就发不了了,干脆趁这个周日晚上发出来吧。
今天我来介绍一下 shadowsocks-go 的配置教程。
昨天我写的教程主要讲了Shadowsocks-libev/Shadowsocks-python的教程。这两款是开发进度最快,最稳定的版本。而shadowsocks-go的优点在于,它可以实现服务端配置多用户,甚至客户端配置多服务器。
因此实用价值是很高的。不过配置难度稍微大一些。 (未完待续)

我的实验环境:Techllage的服务器,centos 7 x64版本,Golang 1.4。整个过程只需要一个SSH客户端,电脑上手机上都可以很容易地部署。

继续阅读

在Matlab中对已经被表示成数字矩阵的图像进行处理

一、 灰度拉伸变换

把图像中每个像素点的灰度值,按照希望达到的效果,以线性变化的形式,进行变换。
如下图,就是一种分段函数形式,把输入的X轴灰度值变换为输出的Y轴灰度值,只是将灰度值做分段线性变换。分段函数控制点(r1,s1)和(r2,s2)

继续阅读

Raspberry pi 定时天气播报

操作步骤:

  • 简单的写了python脚本
  • 添加定时计划里执行

百度的天气接口:http://api.map.baidu.com/telematics/v3/weather?location=city&output=json&ak=api_key
百度的语音合成接口:http://tsn.baidu.com/text2audio?tex=text&lan=zh&cuid=cuid&ctp=1&tok=token

继续阅读

Tomcat 启用 HTTPS

Tomcat 启用 HTTPS

最近在阿里云购买了一个云服务器ECS,简单的部署了个人网站,使用ip地址访问一切正常,我之前在TK上申请了一个免费域名,就绑定了二级域名到阿里云,第一天正常访问,第二天就不行了,访问站点直接提示域名未注册(未备案.....),无法访问,显然被阿里云拦截了,通过IP地址访问还是正常的。

后来GOOGLE了一下,一般是备案域名和主机。。。,还有一种方式是启用HTTPS,http是明文传输,阿里云能够看到我访问的域名,发现在域名未注册然后拦截,但HTTPS是加密的,所以可以正常访问(哈哈)。

引用链接:

https://tomcat.apache.org/tomcat-6.0-doc/ssl-howto.html
http://www.oschina.net/question/12_23148
http://www.cnblogs.com/f1194361820/p/4748590.html

继续阅读

Raspberry Pi 整点报时

完整的音频文件及脚本: Github

参考链接:

http://blog.sina.com.cn/s/blog_6d1aef300100qta0.html
http://linuxtools-rst.readthedocs.org/zh_CN/latest/tool/crontab.html

  • 安装Mplayer
  • 下载语音文件(解压到/{home})
  • 创建脚本文件TimeAudio.sh(/usr/local/bin)
#!/bin/bash

filePath=/{home}/TimeAudio
Time=`date +%H%M`
audioFile="$filePath/$Time.mp3"
#echo $audioFile
player=/usr/bin/mplayer

$player $audioFile

继续阅读

Xpath Blog

欢迎来到我的个人博客网站