繁体   English   中英

如何通过挤压改变wav音频文件的长度以适应固定长度

[英]how to change a length of an wav audio file to fit a fixed length by squeezing it

我有一组长度在 2 到 3 秒之间变化的音频文件。

如何更改这些音频文件的长度或持续时间以适合 2 秒。 但我无法裁剪数据。 需要压缩数据并操纵音频的速度而不是裁剪。

在此处输入图像描述

例如,裁剪后该文件的最小长度约为 2.3 秒。 我仍然需要在 2 秒内完成。

我正在尝试在生物矩阵认证中使用这些数据。 所以这个过程不应该损坏数据的任何重要特征。 是否有可能以一种方式改变它,就像这个人说得更快听一样。

任何参考我怎么能做到这一点?

1个选项:

语音信号中的静音去除,这将减少语音文件的大小和持续时间。

您可以使用 mathlab 工具来执行此操作,以下是一些参考:

https://www.mathworks.com/matlabcentral/fileexchange/28826-silence-removal-in-speech-signals?focused=c9fdfa40-65ab-e9fe-13b9-d9d3efb80fa8&tab=function

https://www.mathworks.com/matlabcentral/fileexchange/57485-remove-silence-from-the-speech-signal-for-accurate-recognition

您可以搜索执行此操作的任何其他音频编辑器。

为了减少音频文件的持续时间,您可以采取几种不同的方法。

采样率

需要压缩数据并操纵音频的速度而不是裁剪。

您可以更改文件的采样率。 如果原始采样率为44.1 kHz,存储了44100个样本,则持续时间恰好为一秒。 要将持续时间更改为半秒,您只需将采样率加倍至 88.2kHz。 这将导致文件以双倍速度播放,因此音高将提高一个八度。 wav 文件中的采样率只是一个数字,不同之处在于您打算如何使用该文件以及如何将其导入数字音频环境。 如果您将88.2 kHz 文件导入44.1 kHz 项目,可能会发生以下两种情况之一

  1. 您可能会发现文件只是在播放,因此返回到原来的1秒持续时间
  2. 它可以保留0.5秒的持续时间,但您会丢失一半的样本,因此会丢失一些高频内容。

如果您想用N个样本更改采样率Fs1 ,则持续时间为Tf1 对于新的持续时间Tf2 ,将采样率乘以新旧持续时间的比率以获得新的采样率Fs1 IE

Fs2 = Fs1 * (Tf1/Tf2)

您必须确保您使用的任何环境都能够处理奇怪和异常的采样率。

Wav 文件采样率

要更改 wav 文件的采样率,您只需编辑文件的 header

您需要在byte 24处编辑 SampleRate 和在byte 32处编辑 ByteRate 。 波库应该让你保持正确。

AudacityPraat这样的 DAW 应该可以为您工作。 不过,对于大量文件来说,这可能会很慢。

下采样

您可以对文件进行下采样并保留采样率。 丢弃样本将意味着数据丢失,这将违反您问题中的这一警告。

所以这个过程不应该损坏数据的任何重要特征。

如果您正在处理语音数据,您可能会丢失一些信息而几乎不会产生不良影响。 人类语音在20 Hz 到20 kHz 的范围内,因此至少40 kHz 的采样率是理想的,尽管可能会将该范围降低到 16 kHz,而不会造成太多细节损失。 如果您只查看某些语音内容,例如元音或F0的变化,您可以将范围降低 2kHz。 查看一些语音采样基础知识

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM