语音识别--单声道转换与降采样

news/2024/10/21 19:46:45/

⚠申明: 未经许可,禁止以任何形式转载,若要引用,请标注链接地址。 全文共计3077字,阅读大概需要3分钟
🌈更多学习内容, 欢迎👏关注👀【文末】我的个人微信公众号:不懂开发的程序猿
个人网站:https://jerry-jy.co/

❗❗❗知识付费,🈲止白嫖,有需要请后台私信或【文末】个人微信公众号联系我

语音识别--单声道转换与降采样

  • 单声道转换与降采样
    • 一、任务需求
    • 二、任务目标
          • 1、掌握单声道转化方法
          • 2、掌握音频降采样方法
    • 三、任务环境
          • 1、jupyter开发环境
          • 2、python3.6
          • 3、tensorflow2.4
    • 四、任务实施过程
      • 1、单声道转换
      • 2、降采样
    • 五、任务小结
  • 说明

单声道转换与降采样


一、任务需求

在本实验中,我们将通过平均跨通道的样本将音频信号转换为单声道。

从应用的角度上看,多声道转单声道,与降采样都可以有效降低音频的大小,当然,伴随而来的是质量下降。但很多情况下,并不是越清晰的音频越好,因此单声道转换和降采样就能够派上大用途了。

要求:在librosa中,使用函数librosa.to_mono实现单声道转换的功能。

二、任务目标

1、掌握单声道转化方法
2、掌握音频降采样方法

三、任务环境

1、jupyter开发环境
2、python3.6
3、tensorflow2.4

四、任务实施过程

1、单声道转换

import librosa
filename = '/home/jovyan/datas/sorohanro_-_solo-trumpet-06.hq.ogg'

y, sr = librosa.load(filename, mono=False)
y.shape

(2, 117601)

从音频的shape上看得出来,这是一个双声道的音频。

为了让你能看的更加清晰,对声道变换理解的更加透彻,我们在这里将双声道声波绘制出来。

import matplotlib.pyplot as plt
plt.figure(figsize=(15,5))
# 绘制双声道声波第一个通道
plt.subplot(2,1,1)
plt.plot(y[0,:1000])
# 绘制双声道声波第二个通道
plt.subplot(2,1,2)
plt.plot(y[1,:1000],c='g')

这是同一个音频文件的双声道声波图,接下来我们要将双声道音频,转化为单声道。转化方法非常简单,通过librosa.to_mono就可以实现。

y_mono = librosa.to_mono(y)
y_mono.shape

(117601,)

plt.figure(figsize=(15,2))
# 将双声道合并为一个通道
plt.plot(y_mono[:1000],c='r')

2、降采样

filename = '/home/jovyan/datas/sorohanro_-_solo-trumpet-06.ogg'
# 获取采样率
sr = librosa.get_samplerate(filename)
sr

22050

y, sr = librosa.load(filename, sr=sr, mono=False) len(y),sr

(117601, 22050)

# 使用resample降采样
y_8k = librosa.resample(y, sr, 8000)
y.shape, y_8k.shape

((117601,), (42668,))

可以看到,经过librosa.resample降采样后的音频采样点,从117601降低到42668,降低一半还多。

当然,降采样的采样率并不能随意减少,想象一下,一个音频文件,只有一个采样点会怎样?所以通常来说,在音频的一个最小周期上,至少要保证两个采样点才可以。

为了比较降采样前后的变化,我们播放两个声音。

import IPython.display as ipd
ipd.display(ipd.Audio(y,rate=22050))
ipd.display(ipd.Audio(y_8k,rate=8000))

听起来好像并没什么不同,为了加强确认,我们画出波形图看一看。

plt.figure(figsize=(14,4))
plt.subplot(211)
plt.plot(y)
plt.subplot(212)
plt.plot(y_8k)

五、任务小结

本节实验我们学习了如何将双声道转换为单声道,并学习了音频降采样方法。

从波形图上看,两个声音在细微上还是存在一些不同,但差距不大,如果并不是特别追求音频质量的话,显然8k音频也是能用的,最关键的是,文件大小缩小了一半有余。

–end–

说明

本实验(项目)/论文若有需要,请后台私信或【文末】个人微信公众号联系我


http://www.ppmy.cn/news/1455086.html

相关文章

Debian 德比安 Nginx + PHP + MySql + beanstalkd + Redis + Node.js

网卡模式选择桥接 mirrors.163.com 阿里镜像源 https://mirrors.aliyun.com/debian/ DeBian 安装软件选择时勾选上 SSH server apt update apt install sudo #安装 sudo usermod -aG sudo username #添加普通账号到 sudo 让 root 可以 SSH 配置文件 /etc/ssh/sshd_config 找…

19_Scala集合概述

文章目录 集合回顾javaScala集合三大类String & StringBuilderScala集合两大类 集合 回顾java scala与Java有所不同 函数式编程语言更侧重集合本身提供的哪些功能; Scala集合三大类 1.Seq 存储有序数据可重复 类比 List 2.Set 存储无序数据不可重复 3.Map…

PCB 阻抗设置

凡亿电路有详细的阻抗设计 https://baijiahao.baidu.com/s?id1773006310888936808&wfrspider&forpc 差分基本上是100ohm, 单端是50ohm 布线阻抗通常是, -设置叠层关系 层的定义设计原则: 1)主芯片相临层为地平面,提供器…

C++学习笔记——对仿函数的理解

文章目录 思维导图仿函数出现的逻辑仿函数使用上的巧妙 仿函数的本质仿函数的优势仿函数语法的巧妙 思维导图 仿函数出现的逻辑 我们在学习stack时会遇到一些新的问题,这些问题需要我们使用非类型模板参数去解决,即我们需要在设计类时需要有一个途径去快…

HTML_CSS学习:背景、鼠标相关属性

一、背景相关属性 相关代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>背景相关属性</title><style>body{background-color: greenyellow;}div{width: 400px;height: …

什么是PXE

文章目录 在局域网内搭建PXE服务器PXE 启动组件PXE的优点实验一、搭建PXE服务器&#xff0c;实现远程部署CentOS系统环境准备server关闭防火墙安装组件准备 Linux 内核、初始化镜像文件及PXE引导文件配置启用TFTP 服务配置启动DHCP服务准备CentOS 7 安装源配置启动菜单文件 Cli…

场景文本检测识别学习 day09(Swin Transformer论文精读)

Patch & Window 在Swin Transformer中&#xff0c;不同层级的窗口内部的补丁数量是固定的&#xff0c;补丁内部的像素数量也是固定的&#xff0c;如上图的红色框就是不同的窗口&#xff08;Window&#xff09;&#xff0c;窗口内部的灰色框就是补丁&#xff08;Patch&#…

怎么把静图变成gif?推荐一招在线制作

想要实现图片转换gif动图的操作使用什么工具能实现呢&#xff1f;在这个高速发展的时代经常需要在网络中分享、保存各种各样的gif动图。当我们想要将一些静态图片变成有趣的gif图片时&#xff0c;就可以使用gif在线制作&#xff08;https://www.gif.cn/&#xff09;工具&#x…