============ 语音部分 ============
· 语音技术引言
语音链:
发音-传递-感知
-
语音产生数字模型(公式要求理解)
-
重要假设:
语音根据声带是否振动分为两类
· 语音分析
时域分析:
直接对语音的时域波形进行分析。简单直观,清晰易懂,运算量小,物理意义明确。但很难反映语音感知特性,且易受环境变化影响
主要参数有:音量,过零率,音高/基音周期
-
频域分析:
将语音的时域波形转换到频域进行分析。具有明显的物理意义和声学特性,且不易受环境变化影响
主要参数有:共振峰,音高/基音周期,梅尔倒谱系数MFCC,线性预测倒谱系数LPCC
-
音量:代表声音的强度,又称力度,强度或能量,可由一帧内的语音采样点振幅大小来类比。有两种计算方式:
特点:
1. 一般而言,浊音的音量大于清音,清音的音量又大于噪音
2. 是一个相对性的指标,受到麦克风的设定的影响很大
3. 通常用在端点检测,检测浊音的声母或韵母的开始及结束位置
4. 在计算前最好先减去语音信号的平均值,避免语音的直流偏移导致的误差
-
过零率:
指一个短时帧内,离散采样信号值由正到负和由负到正变化的次数,这个量大概能够反映信号在短时帧内的平均频率
-
端点检测:
目标是检测语音开始和结束的位置。端点检测出错会在语音识别上造成不良后果:
False Rejection:
将Speech误认为Silence/Noise,造成语音识别率下降
False Acceptance:
将Silence/Noise误认为Speech,造成语音识别率下降
算法流程:
1. 计算信号前100毫秒的能量与过零率的均值与方差(假设这段时间里没有语音)
2. 寻找整段录音中最大的能量值
3. 根据步骤1和2确定能量阈值,如选取整个语音区间的一些百分比的峰值,基于清音的过零率分布确定过零率的阈值
4. 寻找一个超过高阈值ITU的能量区间En
5. 在En从下穿过ITL的地方找到一个假定存在的起始点N1,在En从上穿过ITL的地方找到一个假定存在的终止点N2
6. 通过比较Zn和IZCT往回移动N1,找到Zn超过IZCT的第一个点,相似地,往后移动N2,找到Zn超过IZCT的最后一个点
简易理解版本:
先通过能量找到浊音(一般的发声规律是清音 - 浊音 - 清音),从浊音向外扩展找到清音边缘(清音通过过零率检测)。发清音时,会出现过零率递增,结束后会出现过零率递减
-
蛤?
· 语音识别
语音识别的性能评价:
特征参数:
静态参数:MFCC (Mel-Frequency Cepstrum Coefficients)
Mel频率的目的:模拟人耳对不同频率语音的感知
人类对不同频率语音有不同的感知能力:
Mel频率的定义:
MFCC的计算流程:
DFT离散傅里叶变换:从时域信号变成频域信号
Mel-频率变换:将频率变换为Mel-频率
对数能量:应用:对噪音和谱估计误差有更好的鲁棒性
倒谱参数:离散傅里叶变换(倒谱维数:前12维)
帧能量
倒谱均值归一化CMN:目的是消除信道带来的影响,应用:T通常为整个词的特征帧数
-
语音识别模型:
动态时间规整 DTW
矢量量化 VQ
隐马尔科夫模型 HMM
神经网络 TDNN
模糊逻辑算法
-
语音识别模式匹配的问题:时间校准,即解决同一个人在不同时刻说同一句话,发同一个音的时间长度不同的问题。方法一是线性时间规整,即依赖于端点检测,对整个语音均匀地伸长或缩短,但这样无法精确对准,因此有了
动态时间规整 DTW:
将时间规整与距离测度结合起来,采用优化技术,以最优匹配为目标,寻找最优的时间规整函数w(i),从而实现大小(长短)不同的模式的比较
适用场合:特定人,基元较少的场合,多用于孤立词识别
问题:运算量较大,过分依赖端点检测,太依赖于说话人原来的发音,不能对样本进行动态训练,没有充分利用语音信号的时序动态特性
-
VQ就是将某一区域内的矢量归位某一类
矢量量化的基本要素:聚类和量化
-
一阶马尔科夫假设:当前状态qt只与前面相邻的一个状态qt-1有关,与其它状态无关
马尔科夫链:
MM->HMM:
HMM根据观察输出函数是基于VQ,连续密度还是二者的综合,又分为DHMM(离散),CDHMM(连续密度),SCHMM(半连续)
HMM的三个基本问题:
两个基本假定:
1. 当前状态只与前一状态有关
2. 当前状态下的输出只与当前状态有关
总结:
HMM是描述说话人发音的统计模型,高斯混合密度分布刻画了语音状态(如音素)以及语音状态之间的时序变迁的统计规律
基本算法:
评估:给定观测向量Y和模型,利用前向后相算法计算得分
匹配:给定观测向量Y,用Viterbi算法确定一个优化的状态序列
训练:用Baum-Welch算法重新估计参数,使得分最大
· 说话人识别
??讲了啥啊???
============ 音乐部分 ============
· 音乐基本要素:
音高:
指各种不同高低的声音,由发音体的振动频率决定
音强:
即音的强弱(响亮)程度,由发音时发音体振幅大小决定
音长:
指声音的长短,由发音体的振动时间决定
音色:
即声音的感觉特性,由发音体所产生的谐波决定。发音物体的性质,形状不同,所产生的的谐波也不同,因而音色也不同
· 音乐的表示
音乐的音乐领域表示:
乐谱(五线谱)
音乐的计算机表示:
1. 乐谱版面描述语言:
用于编辑,排版乐谱的人(如MuTex)
2. 数字音乐接口(MIDI):
用于电子设备,是一种发声指令而不是具体音频信号
3. 音频信号表示(PCM/MP3)
· 音乐合成的流程:
作曲作词 - 编曲 - 录音 - 混音
· 音乐合成主要技术:
软件编辑:
Overture,SONAR,Au
语言编程:
OpenAL(跨平台音效制作)
Nyquist(LISP语言)
Matlab
Flash Action Script
· 音乐分析:探究音乐喷泉,蓝巨星的原理
· 音乐的表现形式:
节奏:
节奏是指组织起来的音的长短关系,音乐的骨架。节拍是指时值相等的强拍和弱拍有规律地交替出现
旋律:
旋律是指长短,高低,强弱不同的一连串乐音有组织地进行。旋律又是曲调,它是音乐的基础和灵魂
和声:
和声包括“和弦”和“和声进行”。和弦通常是由三个或三个以上的乐音按一定的法则纵向(同时)重叠而形成的音响组合。和弦的横向组织就是和声进行
· 音乐分析-节奏识别:
一般的节奏识别框架:
节奏检测:中科院声学所的节奏识别框架:
· 节奏识别-节奏特征提取:
时域分析
频域分析
· 音乐分析-旋律识别:
音准评分:
1. 旋律评分:
求取演唱者演唱旋律,并与歌曲原旋律对比,匹配越好给分越高
2. 抢拍与慢拍:
分析演唱者抢拍与慢拍情况,并酌情给予减分
3. 节奏分析:
分析演唱者的节奏感是否与歌曲的节奏一致,节奏感越好给分越多
4. 演唱情绪分析:
分析演唱者演唱的情绪,如果演唱者演唱的情绪与歌曲的意境相符,会有相应的加分
5. 声音圆润饱满度:
分析演唱者演唱的声音是否圆润,是否饱满,越圆润越饱满给分越多
6. 语音识别:
分析演唱者演唱的歌词是否与歌曲的歌词相符,错误率越少给分越多
· 音乐分析-音乐检索:
乐纹样例检索:
乐纹:
可以代表一段音乐重要声学特征的基于内容的紧致数字签名
乐纹的主要特性:
鲁棒性:在经受比较严重的音频信号处理后仍能被识别出来
区分性:不同歌曲之间的指纹有较大的差异,而同一音乐的不同版本之间指纹有较小差异
乐纹索引:
通过特征点对索引技术构建乐纹库
· 音乐检索-哼唱检索
哼唱检索-系统框架:
人声中旋律抽取 - 形成音高序列 - 与库做匹配 - 输出结果
中科院声学所旋律检索用的框架:
· 旋律表示:三层表示
· 音乐检索-哼唱检索
旋律特征提取:
基频提取,音符切分,轮廓点提取
============ 视频部分 ============
· 基本概念
镜头检测:给定一个包含N个镜头的视屏V,找出每个镜头开始和结束的位置
镜头过渡的四种分类:
硬边界Hard cuts:迅速的场景变换
消隐Fades:淡入淡出
溶解Dissolves:前一个淡出同时后一个淡入
擦除Wipe:一条线在屏幕上移动,另一个场景跟着线移动
-
镜头边缘检测算法的实质及核心问题:
如何找到一种或几种良好视频图像特征,通过判断相邻图像帧之间的特征是否发生了剧烈变化来检测镜头边缘
首先需要定义特征
然后需要基于这样的特征来定义相似度函数
几个关键问题:
自适应阈值
渐变镜头数学模型
算法:
绝对帧间差法
图像像素差法
图像数值差法
颜色直方图法
压缩域差法
矩不变量法
边界跟踪法
运动矢量法
-
镜头,关键帧,场景,组:
帧:视频流中的基本组成单元,是独立图像。视频流数据就是由连续图像帧构成的
镜头:视频流数据中最小的物理数据单元。是摄像机拍下的不间断帧序列,是视频流数据进一步结构化的基础结构层。属于同一组镜头的图像帧之间特征保持稳定
关键帧:关键帧是可以用来代表镜头内容的图像,用来表示各镜头的特征,进行进一步的结构化。为什么要提取关键帧:视频流的图像帧之间存在时间和空间冗余度。可以通过关键帧来建立索引,方便查询视频内容
场景:语义上相关和时间上相邻的若干组镜头组成了一个场景。场景是视频所蕴含的高层抽象概念和语义的表达,可以用属于这个场景的若干镜头对应的关键帧来表示
组:介于物理镜头和语义场景之间的结构
镜头切分 - 相似镜头成组 - 镜头组与镜头组之间的联系
-
视频目录生成构造:
分为基于预定模型构造和基于通用模型构造。前者需要领域知识,后者基于普遍规律
步骤:
1. 镜头边缘检测
2. 关键帧提取
3. 时空特征提取(定义镜头特征):镜头可以表示成包含时间,空间信息的五元组
4. 时间可适性成组
5. 场景结构构造
-
镜头空间特征和时间特征的区别:
时间特征是基于镜头中的所有帧得到的
空间特征是基于镜头中的关键帧得到的
如何匹配镜头之间的相似度:
镜头相似的概念:
视觉相似性:具有相似的空间特征
时间局部性:相似镜头在时间上会尽可能接近
注意:这里仅仅使用关键帧来代表镜头,即使镜头里面还有其他图像帧;相似镜头属于同一个组;通常状况下可以使用每个镜头的聚类质心之间的距离来描述两个镜头之间的相似性
方法:
1. 先计算镜头间的颜色相似度。1减去直方图交,值越小相似度越大
2. 引入一个时间引力,帧在时间上的距离越远,时间引力就越小
3. 两个值相乘,取最大值 ↓
4. 定义运动相似度:
5. 总相似度:颜色相似度和运动相似度按权重相加
· 视频压缩
为什么需要视频压缩?
不压缩的视频数据量很大,且在时间,空间,颜色上有冗余
视频压缩的流程?
有损压缩和无损压缩
有损压缩:压缩后的数据相对原始数据发生变化,但是非常接近。相比无损压缩,有更高的压缩率
YUV色彩模型
人眼对亮度变化更敏感
Y表示明亮度,也就是灰阶值;U和V表示的是色度,作用是描述影像色彩及饱和度,用于指定像素的颜色
YUV色彩模型来源于RGB模型,特点是将亮度和色度分离开,从而适合于图像处理领域
压缩中量化的概念和方法
量化:把无穷连续的幅值变成有限离散的幅值,量化的bits越多,则表示数据的精度越高。这是模拟到数字的量化过程,无穷到有限的过程。这个量化也即把无穷的数据压缩成有限的数据,得以保存模拟信号
量化在有损数据的压缩中起着相当重要的作用。很多情况下,量化可以被当做将有损数据压缩同无损数据压缩相区别的标志之一,量化的目的通常是为了减少数据量
量化表的使用方法
因为人眼对亮度的感知高于色度,JPEG压缩时使用了两个量化表 - 色度量化表和亮度量化表
视频数据在时序上的压缩方法有哪些?
1. 差分编码:检测相应的像素和区域的位移
2. 运动补偿:
基本思想:有很多运动的图像序列由一个或多个动态的前景和一个静态的背景组成,我们用JPEG的方式编码第一帧,用这一帧作为参考帧,逐块检测第二张图片,比较参考图像中的每一块,对于每一个在参考图中有相同块的块,we only send a special code instead of whole code。对于其他块我们照常编码
主要步骤:
运动估计(运动向量搜索)
基于运动补偿的预测
预测错误的残差(derivation of the prediction error)
视频压缩中的I,B,P帧的定义,区别,特点:
I帧是靠尽可能去除图像空间冗余信息来压缩传输数据量的帧内编码图像,被当做独立的图片。对于I帧,用类似JPEG的方法压缩,I帧只解决了空间冗余问题
P帧表示的是这一帧跟之前一个关键帧(或P帧)的差别,解码时要用之前缓存的画面叠加上本帧定义的差别来生成最终画面(也就是差别帧,P帧没有完整画面数据,只有与前一帧的差别数据)。时间冗余信息的剔除是包含在对P帧的压缩上
B帧是双向差别帧,记录的是本帧与前后帧的差别(具体情况比较复杂,有四种情况)。换言之,要解码B帧,不仅要取得之前的缓存画面,还需要解码之后的画面,通过前后画面与本帧数据叠加来取得最终画面。B帧压缩率高,但解码时CPU会比较累
一般来说,I的压缩率最低,B最高。可以使用B来节省大量空间,节省出来的空间可以用来多保存一些帧,这样在相同码率下可以提供更好的画质
-
MPEG2的可扩展性:
可伸缩编码:base layer提供基本信息,enhancement layer提供更好的细节
1. SNR可扩展性:加强层提供了更高的SNR
2. 空间可扩展性:可以生成不同分辨率的图片(就是可以传给你低清视频)
3. 时间可扩展性:支持更高的帧率(可以把帧拆开放)
4. Hybrid可扩展性:可以组合任意两种或更多种可扩展性
5. Data Partitioning:把DCT系数分成不同的部分,比如低频一部分高频一部分,方便在噪声信道上传播
· 需要知道细节的算法:
镜头边缘检测算法:
1. 绝对帧间差法:判断相邻图像帧之间的特征的绝对差是否大
计算相邻两个图像帧中所有像素的色彩亮度之和,两帧的差别就定义为各自对应的像素亮度差之和
2. 图像像素差法:判断相邻图像中像素点发生变化的有多少
首先统计两幅图像中对应像素变化超过阈值的像素点的个数,然后,将变化的像素点个数与第二个预定的阈值比较,如超过范围则认为这两帧中发生了较大变化
3. 图象数值差法
将图像分成若干块子区域,然后在这些区域中分别比较对应像素数值上的差别
4. 颜色直方图法
相同的直方图相似度为1,越不相似值越小
5. 双阈值法
双阈值采用两个阈值,Tb,类似于普通判断镜头切分的阈值,Ts,较低的阈值,用以判断特殊效果,采用简单的直方图差法来判断相邻帧的差别(直方图的差之和)
如果差别大于Tb,则认为是镜头切分点,在Tb和Ts之间的,标注为可能的渐变的开端,然后该帧和后续帧比较(称为累计比较),渐变的过程中,累计比较差会逐渐增加,如果帧间差减少到小于Ts,而累计差超过Tb,为渐变的结束。
如果相邻帧差低于Ts,而累计差还低于Tb,就放弃渐变开始点,寻找下一个可能的渐变。
关键: 同时满足两个不同的阈值条件,不仅识别普通的镜头突变,也能识别渐变
6.压缩域差法
不对图像解压,而是直接用JPEG压缩图像帧的DCT系数作为帧相似度的衡量标准。
好处是直接从原始视频数据流中提取特征,从而加快检测速度。由于使用压缩域对视频进行编码,每个压缩域系数保留了原始图像帧中或图像帧间最重要特性,所以压缩域系数可以有效分析视频数据
-
渐变镜头的数学模型:
灰度均值:
灰度方差:
-
关键帧提取算法:
1. 基于镜头边界法
将切分得到的镜头中的第一幅图像和最后一幅图像作为镜头关键帧
2. 基于颜色特征法
(先随机选一个关键帧,比如说第一帧)镜头当前帧与最后一个判断为关键帧的图像,如有较多特征发生改变,则当前帧为新的关键帧
3. 基于运动分析法
摄像机运动造成图像变化。分为两类:
由相机焦距变化造成 - 选择首位两帧为关键帧
由相机角度变化造成 - 如当前帧与上一关键帧重叠小于30%则选为关键帧
4. 基于聚类的关键帧提取
K-means,聚类质心作为关键帧
-
镜头的时间特征如何定义(一种方法):
直方图的交
镜头的空间特征如何定义(一种方法):
-
离散信源的熵定义:
霍夫曼编码的具体方法:
Run-length编码:
网上的:
PPT上的:(这应该是计算前面有多少个0吧……)
-
运动补偿中子块之间匹配的具体方法(一种方法):
简易理解法:把大的图像下采样变小,然后顺序搜索,找到块以后再放大更精细地找
-
如何利用YUV色彩模型压缩视频数据:
人类视觉系统对于亮度更加敏感,对于色度采用比亮度低的分辨率进行采样是一种简单而有效的压缩方式
UV可以下采样
· 大致理解流程的算法
视频目录构造的基本流程:
镜头边缘检测 - 关键帧提取 - 时空特征提取 - 时间可适性成组 - 场景结构构造
时间可适性成组:组里包含了相似的镜头:
1. 先计算镜头间的颜色相似度
2. 再计算镜头间的运动相似度
3. 最后计算总相似度
-
时间时序结构图构造的主要步骤
1. 视频解码
2. 视频切分
3. 关键帧提取
4. 视频聚类分析
5. 构造时序图
6. 按照时序图浏览
-
静态图像压缩JPEG方法基本流程:
-
给出一种简单的视频压缩方案:
YUV色彩空间压缩?
I帧使用JPEG式编码?
P帧做差量化游程编码?运动补偿?
-
视频数据空间压缩的方法:
I帧使用JPEG式编码?
其它帧做差编码压缩?
-
运动补偿方法的步骤:
1. 计算运动向量
2. 计算视频之间的残差
3. 对残差进行编码传输