程序人生

不想被定义,所以要编程

LibROSA库提取MFCC特征的过程解析

目录 源码解析 获取梅尔频谱 分帧 加窗 快速傅里叶变换 梅尔滤波器 取对数 离散余弦变换 总结 LibROSA(本文使用的版本是0.6.3)中的mfcc函数可以用来提取音频的梅尔频率倒谱系数(Mel-Frequency Cepstral Coefficients,MFCCs)...

2019-04-07 19:28:41

阅读数 299

评论数 4

C++断言

断言简述 断言(assertion)是编程中的一种常用手段,在通常情况下,断言就是将一个返回值总是真(或者我们需要是真)的判别式放在语句中,用以排除在设计逻辑上不应该出现的情况。举个例子:我们都知道除数不能为0,那么就可以对除数使用断言,以迫使程序在除数为0的情况下产生异常退出。 通常来说,断...

2019-03-06 15:24:57

阅读数 36

评论数 0

vim分屏

目录 切割窗口 水平分割 调节窗口大小 垂直分割 关闭窗口 切换窗口 移动窗口 窗口批处理 分屏功能是通过分割窗口来实现的,这是提高工作效率的一大利器。无论我们想同时显示两个文件,或者同时显示一个文件的两个不同的位置,又或者并排比较两个文件……这些都能通过分屏来实现。 切割窗口...

2019-02-28 14:40:40

阅读数 114

评论数 0

macOS下SVN常见命令简述

获取帮助 命令格式:svn help(或svn h,或svn ?) 此命令用以获取svn的常见命令及其书写格式。此外,加上具体的命令名称还可以获取该命令的说明文档,如:svn help status。 检出 命令格式:svn checkout|co URL [local_path] ...

2019-02-19 11:17:13

阅读数 44

评论数 0

Go并发编程——goroutine与channel

goroutine 并发编程表现为程序由若干个自主的执行单元组成,在Go里,每一个并发执行的活动称为goroutine。从宏观作用上看,goroutine类似于操作系统或其他编程语言中的进程/线程,但实现却大不相同。 Go语言中,当一个程序执行时,只有一个goroutine来调用main函数,...

2019-02-15 01:56:45

阅读数 48

评论数 0

Go语言的类型断言

类型断言是一个作用在接口值上的操作,写出来类似于x.(T),其中x是一个接口类型的表达式,而T是一个类型(称为断言类型)。类型断言会检查作为操作数的动态类型是否满足指定的断言类型,这有两种可能: 1.如果T是一个具体类型,那么类型断言会检查x的动态类型是否为T。如果是则检查成功,类型断言的结果就...

2019-02-12 14:51:46

阅读数 44

评论数 0

Go语言的接口

概述 接口是一种抽象类型,是对其他类型行为的概括与抽象,从语法角度来看,接口是一组方法定义的集合。很多面向对象的语言都有接口这个概念,但Go语言接口的独特之处在于它是隐式实现。换句话说,对于一个具体的类型,无须声明它实现了哪些接口,只要提供接口所必需的方法即可。这种设计让编程人员无须改变已有类型...

2019-02-12 12:45:09

阅读数 49

评论数 2

Go语言的方法

目录 方法概述  嵌套结构体中的方法调用 方法变量 方法表达式 封装 方法概述 尽管Go没有统一的面向对象编程(OOP)的定义,但依然支持方法(C++中常叫做成员函数)。因为对我们来说,对象就是一个值或变量,并且拥有其方法,而方法是某种特定类型的函数。OOP就是使用方法来描述每个数据...

2019-02-09 23:44:05

阅读数 24

评论数 0

Go语言的结构体

概述 与C相同,Go的结构体是零个或多个任意类型的命名变量组合在一起的聚合数据类型,每个变量叫做结构体的成员。结构体的每个成员都通过点号来访问。 定义结构体时,成员通常一行写一个,但相同类型的成员也可以写在同一行上。但需要注意的是:成员的顺序对于结构体同一性很重要,如果我们将变量的定义顺序调换...

2019-02-06 22:49:35

阅读数 27

评论数 0

Go语言的函数特性

函数声明 Go语言的每一个函数声明都包含一个函数名、一个形参列表、一个可选的返回列表以及函数体:func name(parameter-list) (result-list) {body} 上述函数声明的语法通式中,若函数仅有一个或没有返回值,返回列表的圆括号可以省略。 函数的类型称作函数签...

2019-02-02 23:41:02

阅读数 36

评论数 0

Go语言变量的基本特性

变量声明 Go语言中,用var关键字创建一个具体类型的变量,并设置它的初始值。通用形式为:    var name type = expression 类型和表达式部分可以省略其中一个,但不能都省略。如果省略类型,变量的类型将由初始化表达式决定;如果表达式省略,其初始值对应于类型的零值——对于...

2019-02-01 23:08:20

阅读数 22

评论数 0

Go语言的常量

Go语言的常量是一种表达式,常量可以保证在编译阶段就计算出表达式的值。所有的常量本质上都属于基本类型:数字、布尔型、字符串等。Go语言的常量定义与变量类似,只不过使用了const关键字修饰,但不能使用短变量声明关键字 := 来定义常量。 对于常量操作数,所有数学运算、逻辑运算和比较运算的结果依然...

2019-02-01 22:24:51

阅读数 61

评论数 0

Go的基本数据类型

整数 与其他程序设计语言一样,Go的整型也分为有符号整型和无符号整型两类。有符号整型有int、int8、int16、int32、int64;无符号整型有uint、uint8、uint16、uint32、uint64、uintptr。上述整型中,后面带数字的整型有明确的大小,数字即代表比特位。in...

2019-01-31 21:36:43

阅读数 36

评论数 0

MySQL数据类型

MySQL提供了多种数据类型,主要包括数值类型、字符串类型、日期和时间类型等。不同版本的MySQL支持的数据类型及其命名方式可能会稍有不同。我们可以通过查询帮助文件来获得具体信息,以5.7.19为例: 我们还可以进一步查询某一种具体类型的定义及其存储空间等基本信息。  数值类型 MySQ...

2019-01-22 18:22:42

阅读数 30

评论数 0

MySQL基础——SQL语句

目录 DDL语句 创建数据库 查看已创建的数据库 选择数据库 删除数据库 创建表 查看表定义信息 删除表 修改表 修改字段类型 增加表字段 删除表字段 修改字段排列顺序 DML语句 插入记录 更新记录 删除记录 查询记录 去重查询 条件查询 排序和限制...

2019-01-21 02:04:43

阅读数 49

评论数 0

主存内容更新算法

更新主存内容 主存和缓存之间信息交换的关键是更新主存内容,一般有两种更新算法:写回法(Write Back)和写直达法(Write Through)。 写回法是指在CPU执行写操作命中Cache时,信息只写入Cache,仅当需要被替换时,才将已被写入过的Cache块先送回主存,然后再调入新的数...

2019-01-15 02:13:53

阅读数 61

评论数 0

《剑指offer》题解

1.赋值运算符函数 CMyString& CMyString::operator=(const CMyString &str) { if (this != &str) { CMyString...

2018-12-25 13:53:47

阅读数 73

评论数 0

Linux进程间通信总结

  目录 信号 管道 命名管道 System V IPC 组成 标识符 ftok函数 结构定义 特点 消息队列 信号量 共享内存 套接字 Linux下的进程间通信(Interprocess Communication,IPC)方式基本上是从Unix继承而来的。对Uni...

2018-11-13 12:52:44

阅读数 161

评论数 0

进程间通信之Linux共享内存编程

共享内存 共享内存(Shared Memory)是指多个进程共享一段指定的内存空间进行数据交互,三种System V IPC机制(另外两种是信号量和消息队列)中共享内存是速度最快的一种。 共享内存机制是最快的一种进程间通信(Interprocess Communication,IPC)机制,因...

2018-11-12 20:32:46

阅读数 167

评论数 0

进程间通信之Linux信号量编程

信号量 信号量(Semaphore)是一种用于实现计算机资源共享的IPC机制之一,其本质是一个计数器。信号量是在多进程环境下实现资源互斥访问或共享资源访问的方法,可以用来保证两个或多个关键代码段不被并发调用。在进入一个关键代码段之前,进程/线程必须获取一个信号量;一旦该关键代码段完成了,那么该进...

2018-11-12 16:03:03

阅读数 675

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭