AHOcoder声码器

news2024/11/25 2:59:34

AHOcoder声码器

目前最常见的声码器有WORLD,STRAIGHT,Griffin_Lim等,AHocoder算是少见的,但也可以学习一下。
代码下载网址:AHOcoder

简介

AHOcoder 语音声码器由 Daniel Erro 在巴斯克大学的 AHOLAB 信号处理实验室研发,专门为统计参数语音处理设计的语音编解码器,它可将语音信号转换为可处理的具有良好统计建模特性的向量。
AHOcoder 语音声码器的设计思想来源于谐波加噪声模型(Harmonics plus Noise Model, HNM),该模型将语音信号分解为低频段的谐波部分和高频段的噪声部分,但由于谐波数量会随基频的变化而变化。导致 HNM 特性不能直接用于统计系统。

参数分解

AHOcoder声码器将语音波形参数分解成三部分:对数基频,梅尔倒谱系数和最大浊音频率。
三部分的特征提取:

对数基频

基音检测,AHOcoder 声码器使用的是自相关法检测基音周期。
语音信号x(m)的短时自相关函数为:
在这里插入图片描述
式中,
k:语音信号的延迟点数;
N:语音分帧的长度。
利用了自相关函数如下特征。
短时自相关函数反映了语音信号与其经过k 点延迟后的的相似程度。利用短时自相关函数的性质,比较原始信号与其延迟信号间的相似度,当两者具有最大相似度时,延迟量就等于基音周期。这就是获得语音信号基音周期的方法,称为自相关基音检测法。
如果信号x(m)具有周期性,则相关函数R(k)也是周期函数且周期性与x(m)相同;如果当k=0,T,2T…时,短时自相关函数取得最大值。这样就得到周期T。

梅尔倒谱系数

假设一个简化的语音产生模型,其中脉冲或噪声激励通过整型滤波器,得到的频谱包络就表示该滤波器的频率响应。

频谱包络不仅包含声道信息,还包括声门信息。

  • 清音帧中,噪声激励的频谱是平坦的,这意味着滤波器的响应与信号本身的频谱一致。
  • 浊音帧中,脉冲激发的频谱为恒定振幅,线性频率相位置于基频整数倍的脉冲序列。因此,信号的频谱为一系列的峰值,这些峰值由激励脉冲乘以滤波器响应的均匀间隔的频谱采样而得到。

假设信号短时平稳,全带谐波分析返回这些频谱包络的离散采样,然后可以通过插值来估计连续的包络。

k 帧处的 N 点幅度谱包络计算如下:
在这里插入图片描述

最大浊音频率(Maximum Voiced Frequency, MVF)

最大浊音频率是谐波与噪声在频域的分界点,假设高于 MVF 的部分只包含噪声,低于 MVF 部分只包含谐波。早期的声码器实现中 MVF 被认为是一个固定值,分解合成的语音效果也不错。但后来发现在语音合成的低频部分和句子结尾会伴随有轻微的嗡嗡声,这时就需要对MVF 进行调整。当局部最大浊音频率通过下面的线性关系进行调整时,这种现象可以得到缓解:
在这里插入图片描述
分析得到的 MVF 在合成语音时会产生更自然的结果,同时也保留了系统的实时生成能力。

语音合成

该模型以基音同步帧速率和帧长重建语音信号,时域卷积,频域乘积。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/168245.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

若依配置教程(一)运行若依系统

一、下载源代码 若依的源代码是开源的,所以我们在若依的官方网站即可进行下载,若依的官网是:http://doc.ruoyi.vip/ruoyi-vue/,进入官网后,会显示代码下载的地址:https://gitee.com/y_project/RuoYi-Vue&a…

【进阶】Bean作用域和生命周期

努力经营当下,直至未来明朗! 文章目录一、通过⼀个案例来看 Bean 作⽤域的问题1. 被修改的Bean案例2. 原因分析二、作用域Scope定义1. Bean的六种作用域(重点)1)singleton2)prototype3)request4…

JVM——类加载与字节码技术(2)

三、编译期处理 所谓的 语法糖 ,其实就是指 java 编译器把* .java 源码编译为* .class 字节码的过程中,自动生成和转换的一些代码,主要是为了减轻程序员的负担,算是 java 编译器给我们的一个额外福利 【注意】以下代码的分析&am…

Python爬虫之基于 selenium 实现文献信息获取

目录初识 selenium网页分析代码实现踩过的坑最近有小伙伴后台跟我说,临近毕业,写毕业论文需要上知网查找大量的文献,但是一篇一篇看文献信息以及文献摘要又有点麻烦,能不能让我写一个爬虫去批量获取文献相关信息 我一听好家伙&am…

【算法】二叉树遍历

目录1.概述2.代码实现2.1.二叉树定义2.2.前序遍历2.3.中序遍历2.4.后序遍历2.5.层序遍历3.应用本文参考: LABULADONG 的算法网站 1.概述 (1)所谓遍历 (Traversal) 是指沿着某条搜索路线,依次对树中每个结点均做一次且仅做一次访问…

《从零开始编写一个直播服务器》 C++ 实现一个最简单的HTTP-FLV流媒体服务器

流媒体服务系列文章 文章目录流媒体服务系列文章前言一、http flv?二、使用步骤服务器代码总结前言 HTTP FLV通过http传输,时延可控制在2秒以内,浏览器可基于bilibili开源的flv.js(采用h5 mse技术)开发,比起rtsp、rtmp等免插件播…

Spring BeanPostProcessor

BeanPostProcessor,是bean的增强器,在bean初始化前后调用,常用的方法有postProcessBeforeInitialization和postProcessAfterInitialization,在Spring启动并初始化bean前后通过它们做一些扩展操作。 1、BeanPostProcessor 接口说明…

【信管9.1】​项目沟通及过程

项目沟通及过程沟通这个东西,可以说是整个项目成功失败最关键的因素。9成以上失败的项目在最后总结的时候,沟通不畅或者信息对接问题都会占据前三甲。其实只要是做项目,那么必须有团队,有团队有人,那么沟通就是不可避免…

03 技术太卷我学APEX-关于blob数据类型的使用

03 技术太卷我学APEX-关于blob数据类型的使用 0 Oracle 的blob类型 BLOB BLOB全称为二进制大型对象(Binary Large Object)。它用于存储数据库中的大型二进制对象。可存储的最大大小为4G字节。 通常像图片、文件、音乐等信息就用BLOB字段来存储,先将文件…

外贸软件成本核算丨采购出入库有磅差怎么办

在液化天然气油料等行业,在与供应商之间的进出口贸易过程中,总是少不了会出现磅差的情况,因此就需要有磅差的约定。那什么是磅差呢?磅差指的是,供应方在发货时提供的磅单与购买方实际验收过磅数量之间的差额。一般磅差…

C++设计模式(1)——单例模式

亦称:单件模式、Singleton 意图 单例模式是一种创建型设计模式, 让你能够保证一个类只有一个实例, 并提供一个访问该实例的全局节点。 问题 单例模式同时解决了两个问题, 所以违反了单一职责原则: 1、保证一个类只…

CSS给元素添加边框(样式、颜色、宽度)

给元素添加边框 CSS边框属性允许你指定一个元素边框的样式和颜色, 和边框宽度。 可以使用 border 属性将边框样式,颜色,和宽度 一起设置。 如果不设置其中的某个值,也不会出问题,比如 border: solid #ff0000; 也是允许的。 使用border-style属性设置边…

ORA-39002: 操作无效 ORA-39070: 无法打开日志文件

今天在oracle12c上导数据,出现了错误。导库脚本久经考验,不应该有什么问题,但就是报错了。错误开头2句是: ORA-39002: 操作无效 ORA-39070: 无法打开日志文件 网上搜来的结果,是存放导出文件的路径不对,就…

常用API(String、ArrayList)

API(应用程序接口) Java写好的技术(功能代码),可以直接调用String概述java.lang.String类代表字符串,String类定义的变量可以用于指向字符串对象,然后操作该字符串Java程序中的所有字符串文字&a…

JavaEE进阶第三课:Spring更简单的对象存储和取出(上)

上篇文章介绍了Spring的创建和使用,讲解3了Bean对象的基本存储和取出,这篇文章我们将会介绍Spring更简单的对象存储 目录1.Bean的存储1.0准备工作1.1五大类注解1.1.2为什么要有这么多注解1.2方法注解1.1.1方法注解需要搭配类注解一起使用1.2.2方法重载怎…

详细实例说明+典型案例实现 对迭代法进行全面分析 | C++

第四章 迭代法 目录 ●第四章 迭代法 ●前言 ●一、迭代法是什么? 1.简要介绍 2.代码示例(简单理解) 3.生活实例 ●二、迭代法的典型案例——开平方&帕斯卡三角形 1.开平方 2.帕斯卡三角形 ●总结 前言 简单的来…

游戏服务器如何维护

随着游戏的不断发展,游戏服务器的维护的重要性日益提升。对于玩家而言,他们需要得到更好的体验和更快的速度来享受这个娱乐项目。而对于运营者来说,则是确保安全运行、避免中断或者延迟的工作。本文就将介绍游戏服务器如何维护。如果你的游戏…

基于混沌系统和DNA算法的RGB图像加密(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨‍💻4 Matlab代码 💥1 概述 本文介绍了基于混沌系统和DNA编码的彩色数字图像加密、解密、抗噪声性能分析以及抗裁剪性能分析。 📚2 运行结果 &…

Linux cksum命令

Linux cksum命令用于检查文件的CRC是否正确。确保文件从一个系统传输到另一个系统的过程中不被损坏。CRC是一种排错检查方式,该校验法的标准由CCITT所指定,至少可检测到99.998%的已知错误。指定文件交由指令"cksum"进行校验后,该指…

Stream 管道流

文章目录前言Stream Api1、流的创建2、中间操作2.1、有状态① distinct② sorted③ limit④ skip⑤ concat2.2、无状态① filter② map③ flatMap④ peek⑤ mapToInt、mapToLong、mapToDouble、flatMapToDouble、flatMapToInt、flatMapToLong⑥ unordered3、终结操作3.1、短路操…