声门脉冲语音处理

news2025/7/13 13:54:52

在这里插入图片描述
对于 0<t<tpeak,gattack(t)
攻击部分,即上升分支的时间,时间 t 的范围从 0 秒到最大峰值时间 tpeak ,图示例中选择为大约总长度的 35%,即 tpeak=35%⋅T0,或者在样本 Lattack=⌊35%⋅Lg⌉ 中,运算符 ⌊⋅⌉ 是舍入运算符,在 Python 用 np.round()
对于 tpeak<t<tc,grelease(t)
对于 tc<t<T0 ,gsustain(t)
数学上定义为:
脉冲长度(以秒为单位)T0 = 1/Fp
样本长度 Lg=Fs/Fp的绝对值
在这里插入图片描述

在这里插入图片描述

gattack

# reminder (lab-sheet 1), generation of a sine signal
fs = 8000                          # samples per second
dt = 1/fs                          # seconds per sample

fp = 150                           # pitch frequency (of complete glottis pulse)
Lg = np.floor(fs/fp)               # number of samples per glottis pulse
Lattack = np.round(0.35*Lg)        # length of the attach part
tPeak = Lattack / fs               # time in seconds of the attack part

print('A period of a signal with frequency of '+str(fp)+' Hz is '+str(1/fp)+' seconds or '+str(fs/fp)+' samples')
print('The glottis impulse has thus a length of '+str(Lg))

omega_g = np.pi / tPeak            # (angular) frequency

# let's first create a full period of the sinus (since we know how this works)
t1 = np.arange(0,Lg/fs,dt)         # time vector in seconds (one period length)
x1 = np.cos(omega_g*t1)            # one period of cosine wave signal

# now a raised cosine
x2 = 0.5*(1-np.cos(omega_g*t1))    # rased cosine signal (same time vector as before)

# sine signal of frequency fp Hz
tAttack = np.arange(0,tPeak,dt)         # shorter time vector in seconds
gAttack = 0.5*(1-np.cos(omega_g*tAttack))     # same raised cosine signal as before for shorter time

plt.figure(figsize=(8,6))
plt.subplot(3,1,1)
plt.plot(x1,marker='.',label='$x_1(t)=\cos(\omega_g t)$')
plt.xlim(-1,Lg)
plt.ylim(-1.1,1.1)
plt.xlabel('dicrete time in samples $k$')
plt.legend(loc='upper right')

plt.subplot(3,1,2)
plt.plot(x2,marker='.',label='raised cosine $x_2(t)=\cos(\omega_g t)$')
plt.xlim(-1,Lg)
plt.ylim(-1.1,1.1)
plt.xlabel('dicrete time in samples $k$')
plt.legend(loc='lower right')

plt.subplot(3,1,3)
plt.plot(gAttack,marker='.',label='$g_{\mathrm{attack}}(t)$')
plt.xlim(-1,Lg)
plt.ylim(-1.1,1.1)
plt.xlabel('dicrete time in samples $k$')
plt.legend(loc='lower right')

# create a second axis to (additionally) show time in ms
ax1 = plt.gca()                   # get current axis
ax2 = ax1.twiny()                 # add a secod axis (allowing for second x-labels) 
ax2.set_xticks(ax1.get_xticks())  # copy x-ticks to second axis
ax2.set_xbound(ax1.get_xbound())  # copy x-bounds to second axis
ax2.set_xticklabels([str(x/fs*1000) for x in ax1.get_xticks()])
ax2.set_xlabel('time $t$ in ms');

plt.tight_layout()

grelease

K=2

Ldecay = np.round(0.15*Lg)        # length of the attach part
print((K-1)/K)
print(np.arccos((K-1)/K))
      
      
tc = tPeak + np.arccos((K-1)/K)/omega_g

print('tPeak='+str(tPeak*1000)+' ms, '+str(tPeak*fs)+'samples')
print('tc=   '+str(tc*1000)+' ms, '+str(tc*fs)+'samples')

t = np.arange(tPeak,tc,dt)         # shorter time vector in seconds

g_decay= K* np.cos(omega_g * (t-tPeak)) -K +1

plt.figure()
plt.plot(tAttack,gAttack,marker='.',c='r',label='$g_{\mathrm{attack}}(t)$')
plt.axvline(x=np.max(tAttack),c='r',ls='--',label='$t_\mathrm{peak}}$')
plt.plot(t,g_decay,marker='.',label='$g_{\mathrm{release}}(t)$')
plt.axvline(x=np.max(tc),c='r',ls='--',label='$t_c$')

plt.legend();

最后

g=np.concatenate((gAttack,g_decay,np.zeros(20,)))

plt.figure()
plt.plot(g);

在这里插入图片描述

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

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

相关文章

2023年系统规划与设计管理师-第三章信息技术服务知识

一. 思维导图 二.IT 服务管理 (ITSM) 1. 什么是 IT 服务管理 (ITSM)&#xff1f; IT 服务管理 (ITSM) 包含一组策略和实践&#xff0c;这些策略和实践可用于为最终用户实施、交付和管理 IT 服务&#xff0c;以满足最终用户的既定需求和企业的既定目标。 在此定义中&#xff0…

otn 709帧结构

otn架构说明: 基于G.709接口,包括波分侧和客户侧,客户侧通常用于互联互通。 光通路净荷单元:OPU0/OPU1/OPU2/OPU3/OPU4/flex,主要用于完成业务同步或异步映射; 光通路数据单元:ODU0/ODU1/ODU2/ODU3/ODU4/ODU-flex,完成通道连接性能监测和子速率复用、 光通路传送单元…

POJ1008:玛雅日历

一、Description During his last sabbatical, professor M. A. Ya made a surprising discovery about the old Maya calendar. From an old knotted message, professor discovered that the Maya civilization used a 365 day long year, called Haab, which had 19 months.…

Netty学习笔记

文章目录二、Netty 入门2.1、概述2.1.1、Netty 是什么&#xff1f;2.1.2、Netty 的作者2.1.3、Netty 的地位2.1.4、Netty 的优势2.2、Hello World2.2.1、目标2.2.2、服务器端2.2.3、客户端2.2.4、流程梳理&#x1f4a1; 提示2.3、组件2.3.1、EventLoop&#x1f4a1; 优雅关闭演…

保姆级二进制安装高可用k8s集群文档(1.23.8)

保姆级二进制安装高可用k8s集群文档k8s搭建方式前期准备集群规划机器准备1、master vagrantfile2、master install.sh3、node vagrantfile4、node install.sh5、时间同步vagran 启动脚本vagrant up注意点安装conntrack 工具ipvs的安装VBoxManage snapshot 准备虚拟机快照ETCD部…

C语言编程作业参考答案

编程题参考答案 文章目录编程题参考答案week1_test选择结构-编程题循环结构上机练习数组编程函数编程2week1_test Write a program to output the average of 2 integers. #include <stdio.h>void main(){int a , b;double c;printf("Please enter 1 integers\n&q…

官网下载mysql 8.0.27及安装

https://www.mysql.com/downloads/&#xff0c;找到社区版下载链接MySQL Community (GPL) Downloads 1、 2、 3、 4、 5、

光谱异常样本检测分析

以近红外光谱为例&#xff0c;大部分光谱数据在不考虑分类问题时&#xff0c;在构建模型前需要对采集数据进行样本分析&#xff0c;以降低因生产过程异常、人为误操作和其他原因对软测量模型的影响&#xff0c;即异常样本检测分析。 按照定义&#xff0c;异常样本检测任务指的是…

k8s编程operator——(3) 自定义资源CRD.md

文章目录1、自定义资源的使用1.1 注册自定义资源1.2 使用自定义资源&#xff1a;1.3 Finalizers1.4 合法性验证2、如何操作自定义资源2.1 使用RestClient和DynamicClient来操作自定义资源对象2.2 使用sharedIndexInformer2.3 code-generator2.3.1 下载安装2.3.2 code-generator…

Ajax、Fetch、Axios三者的区别

1.Ajax&#xff08;Asynchronous JavaScript And XML&#xff09; Ajax 是一个技术统称&#xff0c;它很重要的特性之一就是让页面实现局部刷新。 特点&#xff1a; 局部刷新页面&#xff0c;无需重载整个页面。 简单来说&#xff0c;Ajax 是一种思想&#xff0c;XMLHttpReq…

毕业设计-基于机器学习的图片处理图片倾斜校正

前言 &#x1f4c5;大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科同学来说是充满挑战。为帮助大家顺利通过和节省时间与精力投…

如何简单理解大数据

如何简单理解大数据 HDFS-存储 海量的数据存储 hadoop 只是一套工具的总称&#xff0c;它包含三部分&#xff1a;HDFS&#xff0c;Yarn&#xff0c;MapReduce&#xff0c;功能分别是分布式文件存储、资源调度和计算。 按理来说&#xff0c;这就足够了&#xff0c;就可以完成大…

matlab实现MCMC的马尔可夫转换MS- ARMA - GARCH模型估计

状态转换模型&#xff0c;尤其是马尔可夫转换&#xff08;MS&#xff09;模型&#xff0c;被认为是识别时间序列非线性的不错的方法。 估计非线性时间序列的方法是将MS模型与自回归移动平均 - 广义自回归条件异方差&#xff08;ARMA - GARCH&#xff09;模型相结合&#xff0c;…

Ubuntu22.04+Nvidia驱动+Cuda11.8+cudnn8.6

Ubuntu22.04Nvidia驱动Cuda11.8 一、准备环境 ubuntu 22.04nvidia显卡 这里使用的是RTX3060已安装Python3.10 二、安装pip3 # 安装 sudo apt install python3-pip # 升级 sudo pip3 install --upgrade pip # 如果要卸载&#xff0c;使用命令&#xff1a; sudo apt-get remov…

MySQL创建和管理表

基础知识 一条数据存储的过程 存储数据是处理数据的第一步 。只有正确地把数据存储起来&#xff0c;我们才能进行有效的处理和分析。否则&#xff0c;只能是一团乱麻&#xff0c;无从下手。 那么&#xff0c;怎样才能把用户各种经营相关的、纷繁复杂的数据&#xff0c;有序、…

ES6解析赋值

ES6中新增了一种数据处理方式&#xff0c;可以将数组和对象的值提取出来对变量进行赋值&#xff0c;这个过程时将一个数据结构分解成更小的部分&#xff0c;称之为解析。 1.对象解析赋值: 在ES5中&#xff0c;要将一个对象的属性提取出来&#xff0c;需要经过一下几个过程。 …

aws sdk 学习和使用aws-sdk-go

https://www.go-on-aws.com/infrastructure-as-go/cdk-go/sdk example&#xff0c;https://github.com/awsdocs/aws-doc-sdk-examples golang的安装&#xff0c;使用1.15之后默认开启GO15VENDOREXPERIMENT的版本 yum install golang -y go env -w GOPROXYhttps://goproxy.cn,…

智慧教室解决方案-最新全套文件

智慧教室解决方案-最新全套文件一、建设背景1、教育信息化2.0行动计划2、中国教育现代化20353、加快推进教育现代化实施方案二、建设思路互联网时代教学环境定义三、建设方案四、获取 - 智慧教室全套最新解决方案合集一、建设背景 1、教育信息化2.0行动计划 “网络学习空间覆…

【直播】-DRM和TZC400的介绍-2022/11/26

直播背景和内容 最近有两位SOC大佬再和我探讨TZC的设计&#xff0c;以及使用场景。也有几位软件工程师&#xff0c;在深入得学习安全技术&#xff0c;也问到了TZC相关的技术。 然后就搞了本次的直播&#xff0c;共计17人报名。 上线12位同学。(有ASIC大佬、有软件大佬、芯片严…

shell脚本的条件判断3:探究[[]]和[]的区别

前言 实例中除非特别标注&#xff0c;否则都不是在centos中测试的。 一 简述 多数情况下[]和[[]]是可以通用的&#xff0c;两者的主要差异是&#xff1a;test或[]是符合POSIX标准的测试语句&#xff0c;兼容性更强&#xff0c;几乎可以运行在所有Shell解释器中&#xff0c;相…