【研究日记】虚拟歌姬自动调教之歌曲音频切割的问题

🍀碎碎念🍀
Hello米娜桑,这里是英国留学中的杨丝儿。我的博客的关键词集中在算法、机器人、人工智能、数学等等,点个关注吧,持续高质量输出中。
🌸唠嗑QQ群兔叽的魔术工房 (942848525)
⭐️B站账号杨丝儿今天也在科学修仙(UP主跨站求个关注)

🌟背景

这本研究日记是出错时研究的记录,分享是为了方便你的记忆和访问,以及有类似想法的朋友。

[En]

This research diary is a record of the research when something goes wrong, and it is shared to facilitate your memory and access, as well as friends who have similar ideas.

虚拟歌姬自动训练是我正在研究的一种深度学习落地方式。在此期间,为了提高模型的效果,我们尝试了许多方法,本文将讨论的歌曲音频剪辑就是其中之一。

[En]

Virtual GE Ji automatic training is a deep learning landing way that I am studying. During this period, in order to improve the effect of the model, we have tried many methods, one of which is the song audio cutting that will be discussed in this article.

歌曲音频切割的目的是根据歌曲的波形信息,对每个单词对应的音频进行切割。

[En]

The goal of song audio cutting is to cut the audio corresponding to each word according to the song waveform information.

与一般的对白音频相比,歌曲音频中的词与词之间的距离非常模糊,人们很难清楚地识别歌曲音频中的每一个词。

[En]

Compared with the general dialogue audio, the distance between words in the song audio is very vague, and it is not easy for people to clearly identify every word in the song audio.

🌟过程

经过连续几个休息日的反复和实验,我整理出了以下切割方案。

[En]

After several consecutive rest days of recurrence and experiments, I sorted out the following cutting schemes.

顾名思义,它是根据静音间隔进行剪切的。设置音量阈值,低于此音量的音频被视为静音剪辑。这种方法在处理对话文本时也是最常用的,因为它最大的优势是它的速度和可靠性。

[En]

As the name implies, it is cut according to the mute interval. Set the loudness threshold, and audio below this loudness is regarded as a mute clip. This method is also most commonly used when dealing with conversational texts, because its greatest advantage is its speed and reliability.

from pydub import AudioSegment
from pydub.silence import split_on_silence

chunks = split_on_silence(sound,

    min_silence_len=500,

    silence_thresh=-16)

具体的实现代码这里我推荐一个Github上的项目:py_speech_seg这里面有比较完善的使用Kmeans方法
结合接下来要提到的VAD算法进行音频分割的python函数。

不使用VAD的Kmeans方法无法对音频进行合理的切割,经常会有字中分割的情况,而且无法拟合字数,因而无法确定具体的类别个数 K。

采用VAD算法预处理后再使用Kmeans方法速度更快,效果更好,可以实现在停顿部分进行切割。但是依然需要根据程序的实验结果,人为确定类别个数K,而且存在文本粘连问题,往往一段切割出来的文本中包含好几个字。

语音激活检测(VAD, Voice Activation Detection)算法主要是用来检测当前声音信号中是否存在人的话音信号的。该算法通过对输入信号进行判断,将话音信号片段与各种背景噪声信号片段区分出来,使得我们能够分别对两种信号采用不同的处理方法。

在统计学里,处理模型选择问题时我们往往采用BIC进行判定,即贝叶斯信息准则。BIC是似然函数(likelihood function)加上一个惩罚项组成的,这个加上的惩罚项与模型拟合的参数有关,这样可以防止过拟合。

相较于Kmeans方法,采用BIC的切割相对较慢,但是片段的准确度较高。字的粘连问题得到一定的解决。

在之前提到的 py_speech_seg项目中有一种还未完成的机器学习的方法,BILSTM方法,不确定其可行性。

🌟结论

每种方法都有自己的特点,但都不能满足我的需要,需要进一步研究。因此,最初的虚拟歌姬自动训练项目需要放慢脚步。

[En]

Each method has its own characteristics, but none of them can meet my needs and needs further research. Therefore, the initial virtual GE Ji automatic training project needs to be slowed down.

🌟参考

Original: https://blog.csdn.net/Discover304/article/details/122372154
Author: 杨丝儿
Title: 【研究日记】虚拟歌姬自动调教之歌曲音频切割的问题

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/498354/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球