【问题标题】:Pitch detection in voice data set语音数据集中的音高检测
【发布时间】:2018-01-10 06:20:23
【问题描述】:

我正在从事说话人识别项目。为了识别不同语音片段的说话者是否相同,我提取了多个特征,例如 MFCC、节奏、色度图、节拍时间、谐波、打击乐、melspectrogram 等。现在我还想找到语音片段的音高,以找到我正在使用此代码的音高:

import librosa
y,sr = librosa.load('E:/Audio_clip/cant.wav')
S = np.abs(librosa.stft(y))
#print(S)
pitch, mag = librosa.piptrack(y=y, sr=sr, S=S)

但是当我在控制台中打印音高和 mag 输出时,它为所有剪辑提供相同的输出,并且输出在音高和 mag 的 0 数组列表中,并且还给出错误:'NoneType' object不可迭代'

谁能建议我哪里错了,或者我如何找到语音片段的音高?

到目前为止,我识别说话人的计划是,首先我想创建这些特征的特征矩阵,然后我将使用 余弦相似度 函数来查找来自同一说话人的声音或不是。这是识别说话人的好方法吗?

【问题讨论】:

  • 你的例子没有显示你从哪里得到piptrack应该是librosa.piptrack吗?
  • 是的,使用 librosa.piptrack() 函数。

标签: python voice-recognition


【解决方案1】:

一开始应该是零,只是没有正确打印/绘制数组。里面的一些值是非零的,但它们非常罕见,详情请参阅topic on librosa group

另见Librosa pitch tracking - STFTHow to print the full NumPy array?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-12
    • 2017-05-01
    • 2012-07-26
    • 1970-01-01
    • 2010-11-24
    • 1970-01-01
    相关资源
    最近更新 更多