Rom*_*man 3 python audio audio-fingerprinting
我正在调查dejavu.py(更多信息),我必须说到目前为止我对此印象深刻.虽然我发现文档在用户界面方面有点不完整.
当您从文件中识别出一首歌曲时oDjv.recognize(FileRecognizer, sFile),会返回一个如下所示的字典:
{'song_id': 2, 'song_name': 'Sean-Fournier--Falling-For-You', 'file_sha1': 'A9D18B9B9DAA467350D1B6B249C36759282B962E', 'confidence': 127475, 'offset_seconds': 0.0, 'match_time': 32.23410487174988, 'offset': 0}
Run Code Online (Sandbox Code Playgroud)
从录音(oDjv.recognize(MicrophoneRecognizer, seconds=iSecs)):
{'song_id': 2, 'song_name': 'Sean-Fournier--Falling-For-You', 'file_sha1': 'A9D18B9B9DAA467350D1B6B249C36759282B962E', 'confidence': 124, 'offset_seconds': 24.89179, 'offset': 536}
Run Code Online (Sandbox Code Playgroud)
那么,对于问题:
1)究竟是什么confidence,并且是否存在置信水平的上限?
2)offset_seconds和之间有什么区别offset?
3)为什么算法需要在30到60秒之间(在我运行的所有测试的情况下)从磁盘识别歌曲,但是在录制音频时它可以在10秒左右的时间内完成?
4)当运行从音频录制的功能时,我从该功能获得实际输出之前的以下代码块(即使成功).我们要去哪儿?
ALSA lib pcm_dmix.c:1022:(snd_pcm_dmix_open) unable to open slave
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
bt_audio_service_open: connect() failed: Connection refused (111)
bt_audio_service_open: connect() failed: Connection refused (111)
bt_audio_service_open: connect() failed: Connection refused (111)
bt_audio_service_open: connect() failed: Connection refused (111)
ALSA lib pcm_dmix.c:1022:(snd_pcm_dmix_open) unable to open slave
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
Run Code Online (Sandbox Code Playgroud)
5)是否有可以插入配置的在线音乐数据库?
dConfig = {
"database": {
"host": "some magical music database",
"user": "root",
"passwd": "",
"db": "dejavu"
}
}
oDjv = Dejavu(dConfig)
Run Code Online (Sandbox Code Playgroud)
大多数问题可以在GitHub的幻觉记忆中找到README.md或者通过书面记录和解释在这里.
但要回答每个有问题的问题:
confidence指纹哈希的数量是在当前音频片段中"对齐"到数据库最接近的匹配.没有概率解释.请记住,每个音频文件可能有数千个指纹,因此将其作为参考点.offset_seconds表示为秒,offset表示为算法时间段的长度.python dejavu.py --recognize mic 5监听5秒而不是默认值10 来调整默认命令行麦克风识别所需的时间.FYI,库的最佳选项之一是您还可以更改Dejavu用于的次数 - 使用密钥在JSON配置文件中识别磁盘fingerprint_limit.pyaudio.在你的情况下看到这个解决方案,也许它可能有所帮助DEFAULT_FAN_VALUE.需要更高的碰撞保证,但不介意额外的存储成本?您可以减少FINGERPRINT_REDUCTION并保留每个SHA-1的更多字符.Dejavu旨在适应许多不同的用例,这必然意味着如果您更改此文件中的指纹识别参数,您的数据库将具有不同的分布和结构.| 归档时间: |
|
| 查看次数: |
1334 次 |
| 最近记录: |