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

思考与练习

练习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.mfbz.cn/a/169832.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【ArcGIS Pro微课1000例】0033:ArcGIS Pro处理cad数据(格式转换、投影变换)

文章目录 一、cad dwg转shp1. 导出为shp2. cad至地理数据库3. data interoperability tools二、shp投影变换一、cad dwg转shp 1. 导出为shp 加载cad数据,显示如下: 选择需要导出的数据,如面状,右键→数据→导出要素: 导出要素参数如下,点击确定。 导出的要素不带空间参…

el-table 对循环产生的空白列赋默认值

1. el-table 空白列赋值 对el-table中未传数据存在空白的列赋默认值0。使用el-table 提供的插槽 slot-scope&#xff1a;{{ row || ‘0’ }} 原数据&#xff1a; <el-table-column label"集镇" :propcity ><template slot-scope"{row}">{{…

Linux 命令补充

目录 tr 命令 命令举例 cut 命令 命令举例 uniq 命令 命令举例 sort 命令 命令举例 面试题 1. 给你一个文件如何提取前 10 的 IP 2. 如何提前 ss 中的状态 tr 命令 作用tr转换tr -d删除tr -c取反tr -s压缩 命令举例 cut 命令 作用cut提取cut -f指定列cut -d指定分…

MyBatis的xml实现

1.下载插件MyBatisX 2.添加依赖 <!--Mybatis 依赖包--><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.3.1</version></dependency><!--…

人工智能给我们的生活带来了巨大的影响?

1. 人工智能从哪些方面给我们带来了影响&#xff1f; 人工智能出现&#xff0c;极大地影响了人类的生活&#xff0c;下面是人工智能所影响的领域&#xff1a; 1. 日常生活 智能家居: AI驱动的设备&#xff0c;如智能扬声器、灯光、恒温器&#xff0c;正在改变我们与家居环境的…

猫12分类:使用yolov5训练检测模型

前言&#xff1a; 在使用yolov5之前&#xff0c;尝试过到百度飞桨平台&#xff08;小白不建议&#xff09;、AutoDL平台&#xff08;这个比较友好&#xff0c;经济实惠&#xff09;训练模型。但还是没有本地训练模型来的舒服。因此远程了一台学校电脑来搭建自己的检测模型。配置…

.NET 8.0 AOT 教程 和使用 和 .NET ORM 操作

NET AOT编译是一种.NET运行时的编译方式&#xff0c;它与传统的JIT编译方式不同。在传统的JIT编译中&#xff0c;.NET应用程序的代码在运行时才会被编译成本地机器码&#xff0c;而在AOT编译中&#xff0c;代码在运行之前就被提前编译成本地机器码。这样可以在代码运行的时候不…

Docker搭建Redis集群

Docker搭建Redis集群 创建一个专属redis的网络 docker network create redis --subnet 172.38.0.0/16通过shell脚本创建并启动6个redis服务 #通过脚本一次创建6个redis配置 for port in $(seq 1 6); \ do \ mkdir -p /mydata/redis/node-${port}/conf touch /mydata/redis/n…

CentOS7安装部署Kafka with KRaft

文章目录 CentOS7安装部署Kafka with KRaft一、前言1.简介2.架构3.环境 二、正文1.部署服务器2.基础环境1&#xff09;主机名2&#xff09;Hosts文件3&#xff09;关闭防火墙4&#xff09;JDK 安装部署 3.单机部署1&#xff09;下载软件包2&#xff09;修改配置文件3&#xff0…

VS2019编译安装GDAL(C++)程序库

一、GDAL简介 GDAL&#xff0c;全称Geospatial Data Abstraction Library&#xff0c;即地理空间数据抽象库&#xff0c;是一个在X/MIT许可协议下读写空间数据的开源库&#xff0c;可以通过命令行工具来进行数据的转换和处理。而在调用中我们常用的OGR&#xff08;OpenGIS Simp…

文件上传漏洞(CVE-2022-23043)

简介 CVE-2022-23043是一个与Zenario CMS 9.2文件上传漏洞相关的安全漏洞。该漏洞被定义为文件的不加限制上传&#xff0c;攻击者可以利用这个漏洞上传webshell以执行任意命令。利用这个漏洞的攻击者暂无特定情况。要利用此漏洞&#xff0c;攻击者首先需要访问Zenario CMS的管…

gin相关操作--一起学习921190764

gin官方文档 https://gin-gonic.com/docs/quickstart/1. 安装 go get -u github.com/gin-gonic/ginhttps://github.com/gin-gonic/gin简单入门 package mainimport ("github.com/gin-gonic/gin""net/http" )func pong(c *gin.Context) {//c.JSON(http.S…

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

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

Three.js相机模拟

有没有想过如何在 3D Web 应用程序中模拟物理相机? 在这篇博文中,我将向你展示如何使用 Three.js和 OpenCV 来完成此操作。 我们将从模拟针孔相机模型开始,然后添加真实的镜头畸变。 具体来说,我们将仔细研究 OpenCV 的两个失真模型,并使用后处理着色器复制它们。 拥有逼…

MySQL 备份和恢复

目录 一.MySQL数据库的备份的分类 1.1.数据备份的重要性 1.2.数据库备份的分类和备份策略 1.3.常见的备份方法 二.MySQL完全备份 2.1.什么是完全备份 2.2.完全备份的优缺点 2.3.实现物理冷备份与恢复 1&#xff09;实现流程 2&#xff09;前置准备 3&#xff09;实现…

nodejs微信小程序 +python+PHP+图书销售管理系统的设计与实现-网上书店-图书商城-计算机毕业设计

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性&#xff1a;…

俄罗斯方块游戏制作

创建包和文件夹 1.创建小方块类 package eluosifangkuai; import java.awt.image.BufferedImage; import java.util.Objects;/*** author xiaoZhao* date 2022/5/7* describe* 小方块类* 方法&#xff1a; 左移、右移、下落*/ public class Cell {// 行private int row;//…

线上bug-接口速度慢

&#x1f47d;System.out.println(“&#x1f44b;&#x1f3fc;嗨&#xff0c;大家好&#xff0c;我是代码不会敲的小符&#xff0c;双非大四&#xff0c;Java实习中…”); &#x1f4da;System.out.println(“&#x1f388;如果文章中有错误的地方&#xff0c;恳请大家指正&a…

【opencv】debug报错HEAP CORRUPTION DETECTED

运行至第一句涉及矩阵运算的代码&#xff08;如cv::multiply&#xff09;时报错 HEAP CORRUPTION DETECTED: after Normal block (#45034) at 0x000001BDC586F0E0. CRT detected that the application wrote to memory after end of heap buffer.release下不会报错&#xff0…

go语言学习-go环境安装

1、安装Go 1.1 下载安装 go官网 找对应电脑的版本进行安装即可。 点击安装包&#xff0c;直接下一步下一步即可&#xff0c;安装目录可以自行设置一下。 1.2 验证 windows通过cmd验证。 linux或者mac可以通过自带终端执行测试。 2、配置环境变量 2.1 windows 找到系统…