【每日刷题——语音信号篇】

思考与练习

练习2.1

  • 语音信号在产生的过程中,以及被感知的过程中,分别要经过人体的哪些器官?

1.产生过程
肺部空气 → \rightarrow 冲击声带 → \rightarrow 通过声道(可以调节) → \rightarrow 发出不同声音
2.感知过程
空气传播 → \rightarrow 进入人耳 → \rightarrow 鼓膜震动 → \rightarrow 听小骨 → \rightarrow 耳蜗 → \rightarrow 电信号 → \rightarrow 中枢听觉系统

练习2.2

  • 汉语拼音的声调,对应的是语音信号的哪种特征?
    1.基频:一段信号有10Hz和100Hz叠加而成,那么基频就是10Hz,如图1所示。
    图1
图1 基频为10Hz的正弦波

2.基音轨迹: 信号以横轴为时间,纵轴为基频得到的曲线。汉语拼音四声如图2所示 1 ^1 1

在这里插入图片描述

图2 普通话声调的基音轨迹

练习2.3

  • 人耳听觉的非线性是由哪些因素造成的?
    人耳构造非线性
    1.外耳:耳翼、外耳道、鼓膜,外耳道看似一条管道,有许多共振频率,对某些频率的声音进行放大。
    2.中耳:通过三块听小骨传到内耳,在一定声强范围内,传递是线性的,超出一定范围,这种传递变成非线性的(保护内耳)
    3.内耳:耳蜗依靠毛细胞将机械振动(耳蜗中流体速度变化)转化电信号,耳蜗不同位置的毛细胞,对应不同频率声音,分布大致按频率对数分布。
    非线性体现在两方面:对频率感知的非线性,对声强感知的非线性。

图3

图3 耳的构造

练习2.4

  • 动圈式麦克风的工作原理是什么?与电容式麦克风相比,动圈式麦克风有哪些优缺点?
    动圈式麦克风
图4 动圈式麦克风

1.工作原理:当声波使膜片振动时,连接在膜片上的线圈随着一起振动,产生感应电流(电信号),通过信号放大器,并从扬声器发出声音。
2.优缺点:优点有不需要直流工作电压,缺点包括灵敏度低。

练习2.5

  • 编写一段程序,利用μ-law 变换的公式,将16 位线性脉冲编码格式存储的音频转换为8 位非线性脉冲编码格式,并比较转换前后音频的声音质量及文件大小。
sox input.wav -e mu-law -b 8 output.wav
sox input.wav -e mu-law output1.wav

output.wav和output1.wav一样大小,均为input.wav一半。上面两行代码一直,表示 μ − law \mu-\text{law} μlaw默认为8位
μ − law \mu-\text{law} μlaw公式为:
f ( x ) = sgn ( x ) ln ( 1 + μ ∣ x ∣ ) ln ( 1 + μ ) f(x) =\text{sgn}(x)\frac{\text{ln}(1+\mu|x|)}{\text{ln}(1+\mu)} f(x)=sgn(x)ln(1+μ)ln(1+μx)
在这里插入图片描述

图5

练习2.6

  • 窗函数的作用是什么?有哪些常见的窗函数?
    作用
    1.吉布斯现象(Gibbs phenomenon):在不连续点出产生高频分量,导致傅里叶变换后的频谱出现局部峰值。
    2.频谱泄露:周期信号在分帧过程中被截断,导致频谱在整个频带内发生拖尾现象。
    常见的窗函数
    1.汉宁窗
    α = 0.5 \alpha=0.5 α=0.5
    2.汉明窗
    α = 0.46 \alpha=0.46 α=0.46
    ω [ n ] = ( 1 − α ) − α c o s 2 π n N − 1 \omega[n]=(1-\alpha)-\alpha cos\frac{2\pi n}{N-1} ω[n]=(1α)αcosN12πn
    在这里插入图片描述
图6 汉明窗和汉宁窗

练习2.7

  • 编写一段程序,用以计算一段有限离散信号的离散傅里叶变换。
import scipy
import matplotlib.pyplot as plt
import numpy as np# 读取音频文件
rate, data = scipy.io.wavfile.read("resampled.wav")# 计算 STFT
f, t, Z = scipy.signal.stft(data, fs=rate, window='hann', nperseg=400, noverlap=240,nfft=None, detrend=False, return_onesided=True,boundary='zeros', padded=True, axis=-1
)# 绘制音频波形
plt.figure(figsize=(12, 6))
plt.subplot(2, 1, 1)
plt.plot(data)
plt.title('Audio Waveform')
plt.xlabel('Sample')
plt.ylabel('Amplitude')# 绘制频谱
plt.subplot(2, 1, 2)
plt.pcolormesh(t, f, 10 * np.log10(np.abs(Z)), shading='auto')
plt.title('Spectrogram')
plt.xlabel('Time (s)')
plt.ylabel('Frequency (Hz)')
plt.colorbar()
plt.tight_layout()
plt.show()

在这里插入图片描述

图7 声波图及频谱图

练习2.8

  • 感知线性预测与梅尔倒谱系数在设计与实现上有哪些相同点与不同点?
    1.相同点:频域转换使用SIFT,最终系数都采用IDFT
    2.不同点
  • 1 ^{1} 1PLP通过对功率谱进行巴克刻度变换,再与临界频带滤波器组卷积,结果通过等响度曲线预加重,而MFCC在第一步先进行预加重。
  • 2 ^{2} 2频率校正:PLP系数通过巴克刻度、临界频带
  • 3 ^{3} 3声强校正:PLP采用 y = x 1 3 y=x^\frac{1}{3} y=x31,MFCC采用 y = log x y=\text{log}x y=logx

练习2.9

  • 除了LibROSA,还有一些基于Python 语言的音频特征提取工具库。下载并熟悉pyAudioAnalysis 与python_speech_features 工具库,利用其从音频中提取特征并进行可视化。
  • pyAudioAnalysis教程
  • python_speech_features教程

参考文献

  1. 宋刚, 姚艳红. 用于汉语拼音单音节声调识别的基频轨迹拟合方法[J]. 计算机工程与应用, 2008, 44(29):239-240.

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

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

相关文章

IDEA自动注解设置(中文版)

IDEA自动注解设置 1、添加类自动注释 文件 - 设置 - 编辑器 - 文件和代码模板 - Include - File Header /** *description:TODO *author: ${USER} *create: ${DATE} ${TIME} */2、添加类方法自动注释 文件 - 设置 - 编辑器 - 实时模版 - …

沸点 | Ultipa 图数据库金融应用场景优秀案例首批入选,金融街论坛年会发布

为推进图数据库在金融行业的创新应用试点,近日,在2023金融街论坛年会“全球金融科技中心网络年会暨ZIBS北京论坛”上,北京前沿金融监管科技研究院发布了基于国际标准组织——国际关联数据基准委员会(LDBC)的《图数据库…

Unexpected WSL error

问题描述 启动 Docker Desktop 报错 Unexpected WSL error,报错完整信息如下: Docker Desktop - Unexpected WSL error An unexpected error was encountered while executing a WSL command, Commoncauses include access rights issues, which occur…

阿里云ack集群升级流程

最近一直在升级过期的ack 集群版本 从1.22升级到1.24.。 参考: 升级流程、方式及所需时间

AIGC ChatGPT4对Gbase数据库进行总结

ChatGPT4 用一个Prompt完成Gbase数据库的总结。 AIGC ChatGPT 职场案例 AI 绘画 与 短视频制作 PowerBI 商业智能 68集 数据库Mysql 8.0 54集 数据库Oracle 21C 142集 Office 2021实战应用 Python 数据分析实战, ETL Informatica 数据仓库案例实战 Excel 2021实操 …

微机原理_14

一、单项选择题(本大题共15小题,每小题3分,共45分。在每小题给出的四个备选项中,选出一个正确的答案。) 1,下面寻址方式的操作数不在存储器中的是() A. 堆栈寻址 B. 寄存器间址 C.寄存器寻址 D. 直接寻址 2,条件转移指令JNE的条件是() A. CF…

数据结构--字符串的模式匹配

案例导入概念 朴素(暴力)模式匹配算法 定位操作: 计算时间复杂度 总结

【Kingbase FlySync】命令模式:部署双轨并行,并实现切换同步

【Kingbase FlySync】命令模式:安装部署同步软件,实现Oracle到KES实现同步 双轨并行方案说明一.准备工作二.环境说明三.目标实操(1).准备安装环境Orcle服务器(Oracle40)1.上传所有工具包2.操作系统配置a.增加flysync 用户、设置密码b.配置环境变量c.调整limits.conf…

clickhouse分布式之弹性扩缩容的故事

现状 社区不支持喔,以后也不会有了。曾经尝试过,难道是是太难了,无法实现吗?因为他们企业版支持了,可能是利益相关吧,谁知道呢,毕竟开源也要赚钱,谁乐意一直付出没有回报呢。 社区…

Mistral 7B 比Llama 2更好的开源大模型 (四)

Mistral 7B在平衡高性能和保持大型语言模型高效的目标方面迈出了重要的一步。通过我们的工作,我们的目标是帮助社区创建更实惠、更高效、更高性能的语言模型,这些模型可以在广泛的现实世界应用程序中使用。 Mistral 7B在实践中,对于16K和W=4096的序列长度,对FlashAttentio…

Python-----PyInstaller的简单使用

PyInstaller简介 PyInstaller是一个Python库,可以将Python应用程序转换为独立的可执行文件。PyInstaller支持跨平台,可以在Windows、Linux和MacOS上生成可执行文件。 PyInstaller会分析Python程序,并将程序打包成一个完整的可执行文件&…

复杂数据统计与R语言程序设计实验一

1.下载并安装R语言软件,熟悉基本操作的命令及操作界面,掌握软件的使用方法(提供学号加姓名的截图)。 2.下载并安装Rstudio, (提供运行代码及运行结果的截图)。 3.下载并安装R包DT,…

uniapp小程序定位;解决调试可以,发布不行的问题

遇见这个问题;一般情况就两种 1、域名配置问题; 2、隐私协议问题 当然,如果你的微信小程序定位接口没开启;定位也会有问题; 第一种,小程序一般是腾讯地图;所以一般都会用https://apis.map.qq.co…

【Java】volatile-内存可见性问题

1、什么是内存可见性问题? (1)实例 要明白什么是内存可见性,我们首先来看一段代码 public class demo1 {public static int isQuit 0;public static void main(String[] args) {Thread thread1 new Thread(()->{while (is…

Redis高级特性和应用(发布 订阅、Stream)

目录 发布和订阅 操作命令 发布消息 订阅消息 查询订阅情况 查看活跃的频道 查看频道订阅数 使用场景和缺点 Redis Stream Stream总述 常用操作命令 生产端 消费端 单消费者 消费组 创建消费组 消息消费 在Redis中实现消息队列 基于pub/sub 基于Stream Re…

Element Plus框架快速上手详解(一)

Element Plus框架快速上手详解 1、Element Plus1.1、安装 2、Button3、Link链接4、Layout布局5、Container布局容器6、Radio单选框6.1、单选框组6.2、事件 7、Checkbox多选框7.1、多选框组7.2、事件 8、Input输入框组件8.1、事件8.2、方法 9、Select选择器9.1、基础多选9.2、事…

pytho你-opencv划痕检测

pytho你-opencv划痕检测 这次实验,我们将对如下图片进行划痕检测,其实这个比较有难度,因为清晰度太差了。 我们做法如下: (1)读取图像为灰度图像,进行自适应直方图均衡化处理,增强…

ClickHouse的 MaterializeMySQL引擎

1 概述 MySQL 的用户群体很大,为了能够增强数据的实时性,很多解决方案会利用 binlog 将数据写入到 ClickHouse。为了能够监听 binlog 事件,我们需要用到类似 canal 这样的第三方中间件,这无疑增加了系统的复杂度。 ClickHouse 20.…

python爬虫SHA案例:某直播大数据分析平台

声明: 该文章为学习使用,严禁用于商业用途和非法用途,违者后果自负,由此产生的一切后果均与作者无关 一、找出需要加密的参数 js运行 atob(‘aHR0cDovL3d3dy5oaDEwMjQuY29tLyMvc2VhcmNoL3NlYXJjaA’) 拿到网址,F12打…

基于安卓android微信小程序的个人管理小程序

运行环境 开发语言:Java 框架:ssm JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7(一定要5.7版本) 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包&a…