- 博客(79)
- 资源 (6)
- 收藏
- 关注
原创 FreeSwitch(十八):EventSocket
一、架构 与Lua之类的嵌人式语言不同,通过 Event Socket方式,可以使用运行在 FREESWITCH外部的程序控制 Freeswitch。它可以通过 Socket方式使用 FREESWITCH提供的所有的APp程序和API命令。1.1、外连模式 FREESWITCH是一个B2BUA,当Bob呼叫 Alice时,首先电话会到达 FREESWITCH(通过SIP),建立个单腿的 Channel(a-leg),然后电话进人路由状态, FREESWITCH查找 D...
2020-07-15 14:18:42
2356
原创 FreeSwitch(十二):基本功能与实现
一、mod_info呼叫队列1.1、呼叫停泊与取回 一般来说,普通的电话呼叫会使用 bridge App来桥接两条腿。但在电话分配中,一般采用停泊与取回的方式进行电话搭接。顾名思义,停泊跟泊车类似,即在有来话时,先将来话停靠在一个泊位上(一般还会放点音乐),然后通过某种算法找到一个空闲的座席,该座席拨打一个与该泊位相关的号码,就可以将该泊位上的电话取回,双方进行通话。 fifo是一个“生产者一一消费者”模型,即来话( Caller)相当于生产者( Producer),...
2020-07-14 11:07:11
3267
原创 FreeSwitch(十一):基本功能与实现
一、录音1.1、单腿录音originate user/1000 &record(/tmp/welcome. wav) 上述命令大家已经很熟悉了,我们呼叫1000,1000接听后即可以直接讲话并录音。由于这种录音方式仅涉及一条腿(leg,即一个 Channel),因而称为单腿录音。另外,我们也可以在 Dialplan中录音(与上述命令是等价的)<extension name=" record"><condition field="destinat...
2020-07-13 11:22:55
4242
原创 FreeSwitch(十):基本技能
一、通话设置1、安装freeswitch,启动控制台,用sofia status命令查看freeswitch监听的IP和本电脑ip。2、软电话设置freeswitch的ip.口令1234.3、 FreeSwitch配置文件设置电脑IP。 <param name="rtp-ip" value="192.168.67.149"/> <param name="sip-ip" value="192.168.67.149"/> <param na...
2020-07-09 14:24:12
3258
1
原创 tensorflow(九):自定义模型
一、数据准备animal:http://www.robots.ox.ac.uk/~vgg/data/pets/(images.tar.gz,~765M) flower:http://www.robots.ox.ac.uk/~vgg/data/flowers/(17flowers.tgz,~58.8M) plane:http://www.robots.ox.ac.uk/~vgg/data/airplanes_side/airplanes_side.tar(airplanes_side.t...
2020-07-09 00:04:27
430
原创 tensorflow(八):用谷歌训练好的模型进行加载、分类-inception_model
import tensorflow as tfimport osimport tarfileimport requestsimport tensorflow as tfimport osimport numpy as npimport refrom PIL import Imageimport matplotlib.pyplot as pltdef download_inception(): inception_pretrain_model_url = 'http://down.
2020-07-08 22:11:55
555
原创 FreeSwitch(九):SIP模块
一、基本概念(1)Sofia-sip:FreeSwitch使用了比较成熟的开源的SIP协议栈。(2)EndPoint:互联协议接口模块。如SIP、H232.(3)mod_Sofia:实现了SIP中的注册服务器、重定向服务器、媒体服务器等各种功能。他的定位是一个B2BUA,不能实现代理服务器。(4)SIP profile:在mod_sofia中,SIPprofile相当于SIPUA,通过不同的配置参数配置一个UA的行为。每个SIP profile可以监听不同的IP地址和端口。(5)GetW
2020-07-08 16:49:11
4525
原创 FreeSwitch(八):媒体
一、媒体与媒体处理 使用PCM方式对原始声音信号进行采样量化得到线性编码,然后再进行压缩,这种编码称为PCM编码。 如果需要在网络上传输语音,则需要将编码后的语音打包。如果采样频率8000HZ,打包间隔20毫秒,那么一秒传输50个包,每个包包含160个采样数据。没个采样数据占一字节,则数据净荷160字节。 FreeSwitch支持的其他语音编码: 在freeSwitch中,编码名称格式为“名称@xxh@yyi”,h表示赫兹,i表示...
2020-07-07 14:55:51
1878
原创 tensorflow(七):训练模型的保存和加载
一、训练模型的保存 模型的保存用到两行代码: (1)saver=tf.train.Saver() (2)saver.save(sess,'net/my_net.ckpt')#模型训练和保存import tensorflow as tffrom tensorflow.examples.tutorials.mnist import input_data#载入数据集mnist = input_data.read_data_sets("MNIST_data", one_...
2020-07-05 20:24:38
397
原创 tensorflow(六):RNN实现手写体识别MNIST
一、RNN结构 这是一个标准的RNN结构图,图中每个箭头代表做一次变换,也就是说箭头连接带有权值。左侧是折叠起来的样子,右侧是展开的样子,左侧中h旁边的箭头代表此结构中的“循环“体现在隐层。 在展开结构中我们可以观察到,在标准的RNN结构中,隐层的神经元之间也是带有权值的。也就是说,随着序列的不断推进,前面的隐层将会影响后面的隐层。图中O代表输出,y代表样本给出的确定值,L代表损失函数,我们可以看到,“损失“也是随着序列的推荐而不断积累的。 除上述特点之外,标准RNN的还有以下特点:
2020-07-05 19:54:05
906
原创 tensorflow(五):CNN实现手写体识别MNIST
一、卷积神经网络 1)我们从上图可以看到这里有6个特征平面(这里不应该称为卷积核,卷积核是滑动窗口,通过卷积核提取特征的结果叫特征平面),得到的每个特征平面使用的一个5x5的卷积核(这里说明窗口滑动的权值就是卷积核的内容,这里需要注意的是特征平面有6个说明有6个不同的卷积核,因此每个特征平面所使用的权值都是一样的,这样就得到了特征平面。那么特征平面有多少神经元呢?如下图,32x32通过一个5x5的卷积核运算,根据局部连接和平滑,需要每次移动1,因此从左移动到右时是28,因此特征平面是28x..
2020-07-05 16:06:49
614
原创 tensorflow(四):简单神经网络数据可视化,用tensorboard
一、准备神经网络程序import tensorflow as tffrom tensorflow.examples.tutorials.mnist import input_data# 载入数据集mnist = input_data.read_data_sets("MNIST_data", one_hot=True)# 每个批次的大小batch_size = 100# 计算一共有多少批次n_batch = mnist.train.num_examples // batch_size#
2020-07-05 01:34:30
376
原创 tensorflow(三):简单神经网络实现手写体识别MNIST
一、代码import tensorflow as tffrom tensorflow.examples.tutorials.mnist import input_data# 载入数据集mnist = input_data.read_data_sets("MNIST_data", one_hot=True)# 每个批次的大小batch_size = 100# 计算一共有多少批次n_batch = mnist.train.num_examples // batch_size# 定义两个pl
2020-07-04 18:46:42
395
原创 tensorflow(二):实现回归模型
一、非线性回归 这个程序为简单的三层结构组成:输入层、中间层、输出层。 变量x为N行1列,N 不确定。 中间层W1行10列,即10个神经元。x与w的成积为N行10列。 输出为N行10列乘以10行一列等于N行一列。 import numpy as npimport matplotlib.pyplot as pltimport tensorflow as tf #使用numpy生成200个随机点x_data=np.linspace(-0.5,0.5,2...
2020-07-04 17:12:07
365
原创 tensorflow(一):线性回归
一、jupyter设置python环境在python的虚拟环境下安装了tensorflow,但是用jupyter notebook的时候发现无法找到tensorflow模块.(1) conda install nb_conda_kernels(2)conda install -n env_name ipykernel(3)python -m ipykernel install --name XXXX二、线性回归代码import tensorflow as tfimp...
2020-07-04 16:26:18
234
原创 二、springboot中mybatis项目入门——注解版
一、Maven依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency>...
2019-10-14 21:42:57
262
原创 一、springboot中mybatis配置
一、引入maven <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> ...
2019-10-11 21:18:25
1077
原创 论文中画图工具
import matplotlib.pyplot as pltimport matplotlib as mplimport numpy as npdef lineChart6(): """l验证结果""" mpl.rcParams["font.sans-serif"] = ["SimHei"] mpl.rcParams["axes.unicode_minus"]...
2019-07-27 09:38:24
987
转载 图像识别
Python图片识别汉字字母数字,tesseract-ocr2018年03月09日 Python LEO 2607环境:ubuntu + python2.7代码: #/usr/bin/envpython #-*-coding:UTF-8-*- fromPILimportImage import...
2019-07-24 12:24:44
255
原创 Linux总结(二十六):linux的/文件特殊权限chattr、 lsattr、sudo
一、chattr命令:修改文件系统的权限属性 管理 Linux 系统中的文件和目录,除了可以设定普通权限和特殊权限外,还可以利用文件和目录具有的一些隐藏属性。chattr 命令,专门用来修改文件或目录的隐藏属性,只有 root 用户可以使用。1、基本格式[root@localhost ~]# chattr [+-=] [属性] 文件或目录名 + 表...
2019-07-14 20:36:37
406
原创 Linux总结(二十五):linux的/文件特殊权限SUID、SGID、SBIT
一、SetUID文件特殊权限1、基本定义 可以看到,原本表示文件所有者权限中的 x 权限位,却出现了 s 权限,此种权限通常称为SetUID,简称SUID 特殊权限。 SUID 特殊权限仅适用于可执行文件,所具有的功能是,只要用户对设有 SUID 的文件有执行权限,那么当用户执行此文件时,会以文件所有者的身份去执行此文件,一旦文件执行结束,身份的切换也随之...
2019-07-14 19:39:33
967
原创 Linux总结(二十四):linux的文件权限管理—chgrp、chown、chmod、umask、mask、setfacl 和 getfacl 命令
对不同的用户,设置不同的文件访问权限,包括对文件的读、写、删除等,在 Linux 系统中,每个用户都具有不同的权限,拿非 root 用户来说,它们只能在自己的主目录下才具有写权限,而在主目录之外,只具有访问和读权限。一、权限概述1、使用ls -al 查看文件权限:第一列:规定了不同的用户对文件所拥有的权限 第二列:引用计数,文件的引用计数代表该文件的硬链接个...
2019-07-13 04:35:25
1771
原创 Linux总结(二十三):linux的用户组命令useradd、passwd、usermod、chage、userdel、id、su、groupadd、groupmod、groupdel、
一、useradd:添加新用户1、基本格式[root@localhost ~]#useradd [选项] 用户名useradd命令常用选项 选项 含义 -u UID 手工指定用户的 UID,注意 UID 的范围(不要小于 500)。 -d 主目录 手工指定用户的主目录。主目录必须写绝对路径,而且如果需要手工指定主目录,则一定要注意权限; -c ...
2019-07-10 02:14:31
1458
原创 Linux总结(二十二):linux的用户组/etc/gshadow、初始组和附加组、/etc/login.defs
一、Linux /etc/gshadow文件 /etc/passwd 文件存储用户基本信息,同时考虑到账户的安全性,将用户的密码信息存放另一个文件 /etc/shadow 中。本节要将的 /etc/gshadow 文件也是如此,组用户信息存储在 /etc/group 文件中,而将组用户的密码信息存储在 /etc/gshadow 文件中。1、 vimLinux /etc/...
2019-07-09 23:47:01
1260
原创 Linux总结(二十一):linux的用户组文件/etc/passwd、/etc/shadow、/etc/group
一、简介 1、用户组是具有相同特征用户的逻辑集合。简单的理解,有时我们需要让多个用户具有相同的权限,比如查看、修改某一个文件的权限,一种方法是分别对多个用户进行文件访问授权,如果有 10 个用户的话,就需要授权 10 次,那如果有 100、1000 甚至更多的用户呢? 显然,这种方法不太合理。最好的方式是建立一个组,让这个组具有查看、修改此文件的权限,然...
2019-07-09 22:59:10
2345
原创 python算法总结(三):计数排序
一、计数排序思路 算法的步骤如下: (1) 找出待排序的数组中最大和最小的元素 (2)统计数组中每个值为i的元素出现的次数,存入数组C的第i项 (3)对所有的计数累加(从C中的第一个元素开始,每一项和前一项相加) (4)反向填充目标数组:将每个元素i放在新...
2019-07-09 01:00:53
571
原创 python算法总结(二):python实现最大子数组和(动态规划法)
一、动态规划法求最大字段和1、基本思路 设数组为listd[],设maxsum[i]为以listd[i]结尾的子数组的最大和,对于元素listd[i + 1],只有两种选择: (1)listd[i + 1]接着前面的子数组构成最大和。 (2)listd[i + 1]自己单独构成子数组。 则,动态规划...
2019-07-08 16:15:06
1560
原创 Linux总结(二十):linux中函数库和脚本程序
一、Linux函数库 Linux系统中存在大量的函数库。简单来讲,函数库就是一些函数的集合,每个函数都具有独立的功能且能被外界调用。我们在编写代码时,有些功能根本不需要自己实现,直接调用函数库中的函数即可。需要注意的是,函数库中的函数并不是以源代码的形式存在的,而是经过编译后生成的二进制文件,这些文件无法独立运行,只有链接到我们编写的程序中才可以运行。1、函数库...
2019-07-08 01:56:45
290
原创 Linux总结(十九):linux中yum
一、yum源配置 yum,全称“Yellow dog Updater, Modified”,是一个专门为了解决包的依赖关系而存在的软件包管理器。就好像 Windows 系统上可以通过 360 软件管家实现软件的一键安装、升级和卸载,Linux系统也提供有这样的工具,就是 yum。可以这么说,yum 是改进型的 RPM 软件管理器,它很好的解决了 RPM 所面临的软件包依...
2019-07-08 01:36:50
1192
原创 Linux总结(十七):linux中RPM包
一、源码包和二进制(rpm包)包比较1、使用源码包安装软件也有几点不足:(1)安装过程步骤较多,尤其是在安装较大的软件集合时(如 LAMP 环境搭建),容易出现拼写错误。(2)编译时间较长,所以安装时间比二进制安装要长。(3)因为软件是编译安装的,所以在安装过程中一旦报错,新手很难解决。2、相比源码包,二进制包是在软件发布时已经进行过编译的软件包,所以安装速度比源码包快得多...
2019-07-06 16:52:00
728
原创 Linux总结(十六):linux文本处理工具——基本awk
一、认识awk 和 sed 命令类似,awk 命令也是逐行扫描文件(从第 1 行到最后一行),寻找含有目标文本的行,如果匹配成功,则会在该行上执行用户想要的操作;反之,则不对行做任何处理。1、基本格式[root@localhost ~]# awk [选项] '脚本命令' 文件名awk 命令选项以及含义 选项 含义 -F fs 指定以 fs ...
2019-07-06 15:24:23
277
原创 Linux总结(十五):linux文本处理工具——高级sed
一、sed 多行命令 sed基本命令格式:sed [选项] ‘正则或者数字 {命令脚本; 命令脚本}’ 文件 有时我们需要对跨多行的数据执行特定操作,如果用普通的 sed 编辑器命令来处理文本,就不可能发现这种被分开的情况。sed 包含了三个可用来处理多行文本的特殊命令:D,N,P (1)Next 命令(N):将数据流中的...
2019-07-06 13:42:43
251
原创 Linux总结(十四):linux文本处理工具——基本sed
一、sed脚本定义 Vim 采用的是交互式文本编辑模式,可以用键盘命令来交互性地插入、删除或替换数据中的文本。sed 命令不同,它采用的是流编辑模式,最明显的特点是,在 sed 处理数据之前,需要预先提供一组规则,sed 会按照此规则来编辑数据。1、sed的特点 (1)sed 会根据脚本命令来处理文本文件中的数据,这些命令要么从命令行中输入,要么存...
2019-07-06 02:22:21
226
原创 Linux总结(十三):linux文本处理工具grep
一、grep命令:查找文件内容 从文件中找到包含指定信息的那些行,在 UNIX 系统中,搜索的模式(patterns)被称为正则表达式(regular expressions),为了要彻底搜索一个文件,有的用户在要搜索的字符串前加上前缀 global(全面的),一旦找到相匹配的内容,用户就像将其输出(print)到屏幕上,而将这一系列的操作整合到一起就是 global reg...
2019-07-05 19:43:24
180
原创 Linux总结(十二):linux文件显示命令 cat,more,less,head,tail
一、cat命令:连接文件或打印输出 cat 命令可以用来显示文本文件的内容(类似于 DOS 下的 type 命令),也可以把几个文件内容附加到另一个文件中,即连接合并文件。关于此命令,有人认为写 cat 命令的人是因为喜欢猫,因此给此命令起名为“cat”,其实不然,cat 是 concatenate(连接、连续)的简写。1、基本命令[root@localhost ~...
2019-07-05 18:06:57
1301
原创 Linux总结(十一):linux移动光标快捷键
一、移动光标表中所有的快捷键都在命令模式(默认状态)下直接使用。1、Vim快捷方向键Vim光标上、下、左、右移动快捷键 快捷键 功能描述 h 光标向左移动一位 j 光标向下移动一行(以回车为换行符),也就是光标向下移动 k 光标向上移动一行(也就是向上移动) l 光标向右移动一位 2、Vim光标以单词为单位移动Vim光...
2019-07-05 00:55:34
7404
原创 Linux总结(十):linux的VIM文本编辑器
一、Vim的安装1、CentOS 系统中,使用如下命令即可安装 Vim:yum install vim2、Ubuntu系统(或者deepin):sudo apt-get install Vim3、文本编辑器VIM的优点或者使用的原因: 推荐使用 Vim 文本编辑器的原因有很多,比如说: (1)几乎所有的Linux 发行版都内嵌有 V...
2019-07-05 00:00:38
317
原创 Linux总结(九):linux文件归档和压缩——linux的zip、unzip、gzip、gunzip、bzip2、bunzip2命令
一、Linux的zip命令1、基本格式[root@localhost ~]#zip [选项] 压缩包名 源文件或源目录列表zip 命令常用选项及含义 选项 含义 -r 递归压缩目录,及将制定目录下的所有文件以及子目录全部压缩。 -m 将文件压缩之后,删除原始文件,相当于把文件移到压缩文件中。 -v 显示详细的压缩过程信息。 -q 在压缩...
2019-07-04 22:29:49
3628
1
原创 Linux总结(八):linux文件归档和压缩——linux的tar命令
一、归档和压缩定义1、归档 归档,也称为打包,指的是一个文件或目录的集合,而这个集合被存储在一个文件中。归档文件没有经过压缩,因此,它占用的空间是其中所有文件和目录的总和。通常,归档总是会和系统(数据)备份联系在一起,不过,有关数据备份的内容,留到后续章节讲,本章仅学习归档命令的基本使用。2、压缩 压缩是指利用算法将文件进行处理,已达到保留最大文件信...
2019-07-04 20:54:37
7800
1
ffmpeg基础库编程开发》20140307.pdf
2020-11-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人