Общая картина: Пытаюсь выявить случаи мошенничества с помощью доверенных лиц в видеоинтервью.
У меня есть видеоклипы интервью. Каждый человек проходит 2 или более собеседований. В качестве первого шага я пытаюсь извлечь аудио из интервью, сопоставить их и определить, принадлежит ли звук одному и тому же человеку.
Я использовал библиотеку Python librosa для анализа аудиофайлов и создания функций MFCC и chroma_cqt для этих файлов. Я также создал матрицу сходства для этих файлов. Я хочу преобразовать эту матрицу сходства в оценку от 0 до 100, где 100 — идеальное совпадение, а 0 — совершенно другое. После этого я могу определить пороговое значение и присвоить метки аудиофайлам.
Код:
import librosa
hop_length = 1024
y_ref, sr1 = librosa.load(r"audio1.wav")
y_comp, sr2 = librosa.load(r"audio2.wav")
chroma_ref = librosa.feature.chroma_cqt(y=y_ref, sr=sr1, hop_length=hop_length)
chroma_comp = librosa.feature.chroma_cqt(y=y_comp, sr=sr2, hop_length=hop_length)
mfcc1 = librosa.feature.mfcc(y_ref, sr1, n_mfcc=13)
mfcc2 = librosa.feature.mfcc(y_comp, sr2, n_mfcc=13)
# Use time-delay embedding to get a cleaner recurrence matrix
x_ref = librosa.feature.stack_memory(chroma_ref, n_steps=10, delay=3)
x_comp = librosa.feature.stack_memory(chroma_comp, n_steps=10, delay=3)
sim = librosa.segment.cross_similarity(x_comp, x_ref, metric='cosine')
Подробнее здесь: https://stackoverflow.com/questions/738 ... rity-score