0

我有一个在 jupyter 实验室打开的 github存储库

主文件 .py 需要其他文件,当我在 jupyter 单元中运行它时它会给我错误。

# %load ML-SpeakerDiarization/speaker/demo/demo_diarization.py
from speaker.model.speaker_diarization import speaker_diarization
from speaker.utils.utils import read_wav


def todiarize(input):
    fs, signal = read_wav(input)
    n, cls, sp, z = speaker_diarization(fs, signal)
    return {
        'filename': z,
        'nspeaker': n,
        'sp': sp
    }

if __name__=="__main__":
    todiarize("C:\\Users\\OUKAJA\\Desktop\\oishi-master\\uploads\\1.wav")

错误是:

ModuleNotFoundError: No module named 'speaker'

但扬声器是一个目录,其中包含 3 个嵌套文件夹和一些 py 文件,而不是 1 个文件。

4

1 回答 1

1

speaker找不到您尝试从中导入的模块,因此,它都不是子模块。我假设您确实克隆/下载了整个存储库。

检查包含的文件夹speaker是否在您的 python 路径中,例如:

import sys
for path in sys.path:
    print(path)

如果不是,一个快速而肮脏的解决方法可能是在脚本中手动添加它:

...

sys.path.append('SOME/PATH/to/ML-SpeakerDiarization')

import speaker  # should work now.

话虽如此,手动添加路径是丑陋的。考虑为您的项目编写一个setup.py,以便您可以正确安装它。有了这个,您还可以顺利处理依赖关系。可能会帮助您入门。

于 2020-01-22T09:44:01.847 回答