stdio2016 / pfann

Neural Network Audio FingerPrint
55 stars 13 forks source link

请问论文当中地标法有开源吗? #1

Open Novicei opened 2 years ago

stdio2016 commented 2 years ago

地標法的程式放在 https://github.com/stdio2016/pfa 只是目前還沒有文件

Novicei commented 2 years ago

地標法的程式放在 https://github.com/stdio2016/pfa 只是目前還沒有文件

那么后续还会补充吗?

stdio2016 commented 2 years ago

之後會加上README說明編譯和執行方法

Novicei commented 2 years ago

之後會加上README說明編譯和執行方法 您好,大概按照您的步骤跑了一下,发现10s查询的exact的结果大概在83%,near的结果大概在88%,这是否与您实验时一致呢?是我某些步骤出现问题了吗?这与原论文当中的结果差距好像有些大。 我猜测,是否是因为训练时的SNR的范围为[0,10],测试时SNR的范围为[-10,10],我记得论文当中训练和测试的SNR的范围好像都是[0,10]。 我将测试时的SNR的范围调整到[0,10]后发现效果比论文当中的还要好一些,可能是由于随机种子,还是因为您的Topk设置的是100?我看tensorflow版本的Topk好像是20还是30.

stdio2016 commented 2 years ago

由於我在原論文發布原始碼之前就嘗試重現,因此有部分的參數和原論文不同 主要的差異在於查詢資料產生,可以參考 mimbres/neural-audio-fp#14

stdio2016 commented 2 years ago

如果要盡量接近原論文,可以用 genquery_naf.py 來產生查詢資料

Novicei commented 2 years ago

如果要盡量接近原論文,可以用 genquery_naf.py 來產生查詢資料

您好,使用genquery_naf.py生成1s的数据,在fma_full上查询的基线是多少呢?

Novicei commented 2 years ago

如果要盡量接近原論文,可以用 genquery_naf.py 來產生查詢資料

hi,您是否有时间来回答一下我的疑问呢?请问您在您的毕业论文当中使用的是哪一个 genquery呢?我看您好像使用的是genquery.py,而我用genquery.py得出的基线效果大概在85%?您使用genquery_naf和genquery产生查询的效果差别大吗?

Novicei commented 2 years ago

如果要盡量接近原論文,可以用 genquery_naf.py 來產生查詢資料

hi,您是否有时间来回答一下我的疑问呢?请问您在您的毕业论文当中使用的是哪一个 genquery呢?我看您好像使用的是genquery.py,而我用genquery.py得出的基线效果大概在85%?您使用genquery_naf和genquery产生查询的效果差别大吗?

我大概理解您的做法了,您是建库只是1万+500首歌曲,且准确率是用的歌曲准确率,而不是片段准确率。

stdio2016 commented 2 years ago

抱歉我現在已經沒有可用的電腦來重現我過去的結果了,還在努力賺錢中

Novicei commented 2 years ago

抱歉,我已经没有可用的电脑了,我过去的结果了,现在正在努力赚钱

嗯嗯,没有关系。我只是想知道,这个repo的实现和原论文的接近程度。因为确实通过genquery_naf.py产生的音频效果和原论文非常接近,而genquery.py产生的效果要差很多,exact片段准确率大概只有88%左右,这让我很困惑。

stdio2016 commented 2 years ago

genquery_naf.py是我參考原始論文後,重新實作的查詢產生器,精准度的結果較接近原論文 genquery.py是我的論文的設定,也是在原論文正式發表前,我對該論文查詢產生方法的猜測 原論文產生查詢時,是從音樂隨機取出多個1秒片段,並拼接成N秒,見genquery_naf.py第53\~66行及第87\~94行 我產生查詢是直接從音樂取出連續的N秒,見genquery.py第49~59行

Novicei commented 2 years ago

我了解您的意思,但我想知道您是否曾用官方提供的数据集来测试过您的实现呢?我目前正在尝试用官方提供的mini数据集(10G)来测试一下您的实现,并对比两种实现的效果。

stdio2016 commented 2 years ago

原論文的程式碼並不會產生查詢音訊檔,而是沿用訓練時的資料擴增程式碼,從測試音樂中每0.5秒取出1秒音訊,並將這些有重疊的音訊片段輸入神經網路後預先計算輸出向量。 我的程式碼原本意圖用來輸入使用者提供的10秒查詢,因此我的程式碼需要輸入連續的N秒音訊作為查詢音檔,原論文產生的有重疊的查詢片段和我的查詢系統不相容,我無法使用原論文的測試資料來測試

Novicei commented 2 years ago

原論文的程式碼並不會產生查詢音訊檔,而是沿用訓練時的資料擴增程式碼,從測試音樂中每0.5秒取出1秒音訊,並將這些有重疊的音訊片段輸入神經網路後預先計算輸出向量。 我的程式碼原本意圖用來輸入使用者提供的10秒查詢,因此我的程式碼需要輸入連續的N秒音訊作為查詢音檔,原論文產生的有重疊的查詢片段和我的查詢系統不相容,我無法使用原論文的測試資料來測試

是的,我了解您的意思。我目前是使用的原论文提供的数据集v1.1当中的1万条30秒音频进行训练(号称可以提高8%的准确率),用原论文提供的1万条30秒的音频进行建库,用原论文提供的500条30秒音频使用generay_naf.py生成2000条1秒的和2000条2秒的音频进行查询,本实现的准确率为79.30%,95.25%. 而对于原论文,我使用的是他提供的训练好的模型进行测试,训练的数据集、建库的数据集应该都是相同的,而查询的话都是从同一批500首歌曲中产生的,但正如您说的,不完全相同,原论文准确率在78.15%,94.65%。