kaldi安装

为了省去安装的麻烦,我直接使用的是容器版本的kaldi https://hub.docker.com/r/kaldiasr/kaldi docker pull kaldiasr/kaldi This is the official Docker Hub of the Kaldi project: http://kaldi-asr.org Kaldi offers two sets of images: CPU-based images and GPU-based images. Daily builds of the latest version of the master branch (both CPU and GPU images) are pushed to DockerHub. Sample usage of the CPU based images: docker run -it kaldiasr/kaldi:latest Sample usage of the GPU based images: Note: use nvidia-docker to run the GPU images....

2020-05-12 15:40:02 · 1 min · Eddie Wang

Type 'Timeout' is not assignable to type 'number'

let timer:NodeJS.Timer; timer = global.setTimeout(myFunction, 1000); 参考http://evanshortiss.com/development/nodejs/typescript/2016/11/16/timers-in-typescript.html

2020-05-12 15:35:54 · 1 min · Eddie Wang

macbook 清空DNS缓存

sudo killall -HUP mDNSResponder

2020-05-11 17:40:48 · 1 min · Eddie Wang

xmpp学习

2020-05-08 11:09:53 · 0 min · Eddie Wang

从pcap文件提取转wav语音文件

wireshark具有这个功能,但是并不适合做批量执行。 下面的方案比较适合批量执行。 # 1. 安装依赖 yum install gcc libpcap-devel libnet-devel sox -y # 2. 克隆源码 git clone https://github.com/wangduanduan/rtpsplit.git # 3. 切换目录 cd rtpsplit # 4. 编译可执行文件 make # 5. 将可执行文件复制到/usr/local/bin目录下 cp src/rtpbreak /usr/local/bin # 6. 切换到录音文件的目录,假如当前目录只有一个文件 rtpbreak -r krk9hprvin1u1laqe14g-8beffe8aaeb9bf99.pcap -g -m -d ./ audio git:(edge) ✗ rtpbreak -r krk9hprvin1u1laqe14g-8beffe8aaeb9bf99.pcap -g -m -d ./ + rtpbreak v1.3a running here! + pid: 1885, date/time: 01/05/2020#09:49:05 + Configuration + INPUT Packet source: rxfile 'krk9hprvin1u1laqe14g-8beffe8aaeb9bf99....

2020-05-01 09:36:26 · 3 min · Eddie Wang

娱乐智障

娱乐至死,娱乐也能让人变得智障。 贪图于精神愉悦,在永无休止的欢悦中难以自拔。 道德经上写道:五色令人目盲,五音令人耳聋,五味令人口爽,驰骋田猎令人心发狂。 现代人尤其如此。买分辨率最高的显示器,刷新频率最高的手机,买最贵的耳机,吃口味最为劲爆的火锅。 感觉人都已经被五官所控制,变成了一个行尸走肉的躯壳。 但是话又说回来,人为什么要这要麻痹自己呢? 或许变成一个智障,才能稍微从现实的夹缝中稍微缓口气。 冷风如刀,以大地为砧板,视众生皆为鱼肉。

2020-04-28 21:56:52 · 1 min · Eddie Wang

自动IP拦截工具fail2ban使用教程

简介 如果你的主机在公网上有端口暴露出去,那么总会有一些不怀好意的家伙,会尝试通过各种方式攻击你的机器。常见的服务例如ssh, nginx都会有类似的威胁。 手工将某个ip加入黑名单,这种操作太麻烦,而且效率低。而fail2ban就是一种自动化的解决方案。 fail2ban工作原理 fail2ban的工作原理是监控某个日志文件,然后根据某些关键词,提取出攻击方的IP地址,然后将其加入到黑名单。 fail2ban安装 yum install fail2ban -y # 如果找不到fail2ban包,就执行下面的命令 yum install epel-release # 安装fail2ban 完成后 systemctl enable fail2ban # 设置fail2ban开机启动 systemctl start fail2ban # 启动fail2ban systemctl status fail2ban # 查看fail2ban的运行状态 用fail2ban保护ssh fail2ban的配置文件位于/etc/fail2ban目录下。 在该目录下建立一个文件 jail.local, 内容如下 bantime 持续禁止多久 maxretry 最大多少次尝试 banaction 拦截后的操作 findtime 查找时间 看下下面的操作的意思是:监控sshd服务的最近10分钟的日志,如果某个ip在10分钟之内,有2次登录失败,就把这个ip加入黑名单, 24小时之后,这个ip才会被从黑名单中移除。 [DEFAULT] bantime = 24h banaction = iptables-multiport maxretry = 2 findtime = 10m [sshd] enabled = true 然后重启fail2ban, systemctl restart fail2ban fail2ban提供管理工具fail2ban-client...

2020-04-28 08:48:11 · 9 min · Eddie Wang

Linux进程和线程

思考题:当你用ssh登录到一个linux机器,并且执行了某个hello.sh之后,有哪些进程参与了该过程? linux系统架构 kernel mode user mode 内核态和用户态的区别 什么是进程 进程是运行的程序 process 是对 processor 虚拟化,通过时间片 进程都有uid nginx访问某个目录,Permission denied 进程都有pid $$ 进程都有父进程 准确来说,除了pid为0的进程之外,其他进程都有父进程 有时候,你用kill命令杀死了一个进程,但是立马你就发现这个进程又起来了。你就要看看,这个进程是不是有个非init进程的父进程。一般这个进程负责监控子进程,一旦子进程挂掉,就会去重新创建一个进程。所以你需要找到这个父进程的Id,先把父进程kill掉,然后在kill子进程。 进程是一棵树 #!/bin/bash echo "pid is $$" times=0 while true do sleep 2s; let times++; echo $times hello; done ➜ ~ pstree 24601 sshd─┬─3*[sshd───zsh] ├─sshd───zsh───pstree └─sshd───zsh───world.sh───sleep 进程都有生命周期 创建 销毁 进程都有状态 runing 进程占用CPU, 正在执行指令 ready 进程所有需要的资源都已经就绪,等待进入CPU执行 blocked 进程被某些事件阻断,例如IO。 进程的状态转移图 进程都有打开的文件描述符 使用lsof命令,可以查看某个进程所打开的文件描述符 /proc/pid/fd/目录下也有文件描述符 lsof -c 进程名lsof -p 进程号lsof filename # 查看某个文件被哪个进程打开** [root@localhost ~]# lsof -c rtpproxy COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME rtpproxy 2073 root cwd DIR 253,0 4096 128 / rtpproxy 2073 root rtd DIR 253,0 4096 128 / rtpproxy 2073 root txt REG 253,0 933247 18295252 /usr/local/bin/rtpproxy rtpproxy 2073 root mem REG 253,0 2127336 33617010 /usr/lib64/libc-2....

2020-04-25 20:30:18 · 7 min · Eddie Wang

老年生活

最近感觉提前步入老年生活,晚上九点睡觉,早上六点醒来。醒来之后打盹一会,等着按灭六点十分的闹钟。 哎,又困了。😩😩😩😩😩😩

2020-04-23 21:18:22 · 1 min · Eddie Wang

简历之吃苦耐劳

最近需要招个前端开发,我更想让他向Nodejs方面发展。 简历看的眼花,不知道为什么有那么多人都在简历上写吃苦难耐,难道做前端开发真的需要吃苦耐劳吗? 我在NPM上没有找到能收邮件的包,找到了发邮件的包。 我想找个能收邮件的包,自动收邮件,自动分析和过滤一些不想看的简历。

2020-04-23 21:06:33 · 1 min · Eddie Wang