我在 jupyter 笔记本中使用 pyannote.audio,我收到 ValueError: No loader for files with '.rttm' suffix

问题描述 投票:0回答:1

我正在使用 pyannote-audio 开发扬声器二值化管道。
我已经训练了模型并加载了检查点,在 jupyter 笔记本中运行 python 脚本。
但是,我在 jupyter 单元中运行代码时遇到问题,

from pyannote.database import registry
from pyannote.database import loader
from pyannote.audio import Inference
from pyannote.audio.pipelines import SpeakerDiarization as SpeakerDiarizationPipeline
metric = DiarizationErrorRate()
registry.load_database("pyannote/full_database.yml")
ami = registry.get_protocol('PROJECT.SpeakerDiarization.complete')
pipeline = SpeakerDiarizationPipeline(segmentation= segmentation_model, embedding=embedding_model)
for file in ami.test():
    # apply finetuned pipeline
    print("Expected output")
    print(file["annotation"])
    expected_output = file["annotation"].get_timeline()
    file["finetuned pipeline"] = pipeline(file)
    print("Calculating final output........ ")
    print(file["finetuned pipeline"] )
    diar , centroid = pipeline.apply(file, return_embeddings=True)

当我尝试在单元格中运行时发生错误,


for file in ami.test():

我明白了

    99     if path.suffix not in LOADERS:
    100         msg = f"No loader for files with '{path.suffix}' suffix"
--> 101         raise ValueError(msg)
    102 
    103     Loader = LOADERS[path.suffix].load()

ValueError: No loader for files with '.rttm' suffix .

数据库、协议的定义都是正确的。
代码中没有错误,因为当我从 python 脚本运行它时,运行时没有错误。

我尝试卸载 pyannote.database 并克隆 pyannote.database 开发树,但仍然遇到相同的错误。

!pip install git+https://github.com/pyannote/pyannote-database.git@develop 

我检查了文件,pyannote.database的loader.py中有一个RTTMLoader类。
似乎问题在于 RTTMLoader 没有在 pyannote.database 的 custom.py 中的 LOADER 入口点中被识别

LOADERS = {
    ep.name: ep
    for ep in pkg_resources.iter_entry_points(group="pyannote.database.loader")
}

我需要在笔记本中运行代码才能继续处理我的项目。

python pytorch speech-recognition python-3.10 pytorch-lightning
1个回答
0
投票

看看这个问题,可能会有帮助:

https://github.com/pyannote/pyannote-database/issues/66

© www.soinside.com 2019 - 2024. All rights reserved.