
语音信号处理
文章平均质量分 83
语音信号处理相关博文
Talon不会写代码
I'm just a lonely loner on a lonely road alone.
展开
-
【语音信号处理】自适应滤波方法——LMS算法
LMS 算法(最小均方算法)滤波器——改变信号频谱模拟滤波器: 由R、L、C构成的模拟电路。数字滤波器: 由数字加法器、乘法器、延时器构成,基于数字信号运算实现。自适应滤波器: 一种能够根据输入信号自动调整自身参数的数字滤波器。非自适应滤波器: 具有静态滤波器系数的数字滤波器,这些静态系数构成滤波器的传递函数。自适应滤波器的应用对于一些应用(如系统辨识、预测、噪声消除等),我们无法事先知道需要进行操作的参数,必须使用自适应的系数进行处理,这种情况下通常使用自适应滤波器。自适应滤波器处理语音原创 2021-07-18 00:55:23 · 4695 阅读 · 2 评论 -
【语音信号处理】噪声抑制NS(一)噪声估计——MCRA方法
噪声抑制(Noise Suppression, NS)基本概念噪声抑制技术用于消除背景噪声,改善语音信号的信噪比和可懂度,让人和机器听得更清楚。噪声抑制的两部分:噪声估计、增益因子估计噪声估计噪声抑制的核心是对噪声的估计(noise estimation / noise tracking)噪声估计的常用方法:递归平均(Recursive averaging) 只要某个频带中语音存在的概率很低,则可以利用这个频带估计/更新噪声谱。最小值追踪(Minima controlled) 由于原创 2021-07-18 00:53:17 · 3093 阅读 · 0 评论 -
【语音信号处理】时频分析与傅里叶变换
时频分析与傅里叶变换变换变换是一种常用的数学工具例如:其中 exe_xex 和 eye_yey 构成标准正交基,满足如下条件:{∣∣ex∣∣=∣∣ey∣∣=1⟨ex,ey⟩=0\begin{cases}||e_x||=||e_y||=1 \\\langle{e_x,e_y}\rangle=0\end{cases}{∣∣ex∣∣=∣∣ey∣∣=1⟨ex,ey⟩=0前面的系数表示平面中的点在这个基向量方向上有多少个单位长度。傅里叶变换傅里叶变换本质上也是一种标准正交变原创 2021-04-11 14:41:50 · 1978 阅读 · 0 评论 -
【语音信号处理】采样定理
采样定理模拟信号的采样对于一个模拟信号的采样,可以理解为一个模拟信号和一个周期性冲击函数序列点乘的过程。采样利用周期性冲激函数序列,从连续信号 xa(t)x_a(t)xa(t) 中抽取一系列的离散值,得到采样信号,即离散时间信号 x^a(t)\hat{x}_a(t)x^a(t)。冲激函数序列:δT(t)=∑m=−∞∞δ(t−mT)\delta_T(t)=\sum_{m=-\infty}^{\infty}\delta(t-mT)δT(t)=m=−∞∑∞δ(t−mT)则,采样信号:原创 2021-04-11 14:40:42 · 1342 阅读 · 0 评论 -
【语音信号处理】数字信号及其基本运算
数字信号及其基本运算最近报名了深蓝学院的《语音信号处理》课程,对网课内容进行一些笔记整理,便于日后复习使用。信号信号是信息的物理载体,信息是信号的具体内容。连续时间信号: 在连续时间范围内定义的信号,信号的幅度可以是连续的(模拟信号),也可以是离散的。离散时间信号: 时间为离散变量的信号,即独立变量时间被量化了,而幅度仍是连续变化的。数字信号: 时间离散而幅度量化的信号。模拟信号到数字信号数字信号的基本运算1. 移位设某一序列 x(n)x(n)x(n),当 m>0m>原创 2021-04-08 17:50:03 · 1220 阅读 · 0 评论 -
【corpus】QUT-NOISE-TIMIT Corpus
QUT-NOISE-TIMIT Corpus最近复现论文的时候用到了这个数据集,做这个数据集的过程狠艰辛,数据集的论文中没有给出下载地址,网上也搜不到,我在 QUT 的学校官网里找出来的,结果官方提供的合成脚本还有错误…(太坑了!)这个数据集是 QUT 自己录制的噪声集,然后混合了 TIMIT 的语音,整个数据集包括600小时的带噪语音。QUT-NOISE 噪声集包含10个场景录制的5种常见背景噪声,时长超过10个小时,详细信息可以查看论文。数据集论文 :The QUT-NOISE-TIMIT Cor原创 2021-03-19 23:58:54 · 715 阅读 · 1 评论 -
【蓝牙sbc协议】sbc源码阅读笔记(四)——sbc_encode函数详解
sbc_encode函数详解函数定义:// sbc.cSBC_EXPORT ssize_t sbc_encode(sbc_t *sbc, const void *input, size_t input_len, void *output, size_t output_len, ssize_t *written){ struct sbc_priv *priv; int samples; ssize_t framelen; int (*sbc_enc_process_input)(int原创 2020-06-23 22:51:14 · 1530 阅读 · 0 评论 -
【蓝牙sbc协议】sbc源码阅读笔记(三)——数据读写过程
sbc_编码过程详解编码部分源码// sbcenc.cstatic void encode(char *filename, int subbands, int bitpool, int joint, int dualchannel, int snr, int blocks, bool msbc){ struct au_header au_hdr; sbc_t sbc; int fd, size, srate, codesize, nframes; ssize_t encoded;原创 2020-06-23 17:59:46 · 1042 阅读 · 0 评论 -
【蓝牙sbc协议】sbc源码阅读笔记(二)——sbc_struct详解(下)
sbc_struct结构详解*priv、*priv_alloc_basepriv指针与priv_alloc_base指针。在初始化过程sbc_init(&sbc, 0L)中,给两个指针分配空间:/* sbc.c */// sbcSBC_EXPORT int sbc_init(sbc_t *sbc, unsigned long flags){ if (!sbc) return -EIO; memset(sbc, 0, sizeof(sbc_t)); // struct原创 2020-06-21 20:02:02 · 1057 阅读 · 0 评论 -
【蓝牙sbc协议】sbc源码阅读笔记(二)——sbc_struct详解(上)
sbc_struct结构详解sbc_struct结构的定义:// sbc.hstruct sbc_struct { unsigned long flags; uint8_t frequency; uint8_t blocks; uint8_t subbands; uint8_t mode; uint8_t allocation; uint8_t bitpool; uint8_t endian; void *priv; void *priv_alloc_base;};typ原创 2020-06-15 17:00:48 · 1340 阅读 · 0 评论 -
【蓝牙sbc协议】sbc源码阅读笔记(一)——编码过程
sbcenc.c*main(int argc, char argv[])首先设定 option 的默认值,然后根据用户命令设定 option 相关参数。对指定文件进行编码(执行encode函数)usage(void)打印相关option:OptionOption打印帮助信息hhelp打印帮助信息vverbose详细模式mmsbcmSBC编解码器ssubbands子带数量(4/8)bbitpoolBitpool value原创 2020-06-04 23:19:31 · 4609 阅读 · 10 评论