From 61c660e0dacc776ed036a0f9e5ab4833a7c79d71 Mon Sep 17 00:00:00 2001
From: Sting <lallegre26@gmail.com>
Date: Mon, 17 Jul 2023 21:13:43 +0200
Subject: [PATCH] Placeholders for missing syllables

---
 cnn_madmom/segment.py | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/cnn_madmom/segment.py b/cnn_madmom/segment.py
index 9572551..a377c72 100644
--- a/cnn_madmom/segment.py
+++ b/cnn_madmom/segment.py
@@ -55,9 +55,12 @@ def segment(songfile, reference_syls=None, syls_per_line=10, last_syl_dur=500):
             syl_number = len(line) - 1
             line_onsets = [o for o in onsets if (o >= line[0][0] and o <= line[-1][0])]
             line_onsets.sort(reverse=True, key=(lambda x: activation_smoothed[x]))
+            missing_syls = 0
             if syl_number > len(line_onsets):
                 print("WARNING : failed to detect enough onsets in line %d (%d, %d)" % (line_index, line[0][0], line[-1][0]))
+                missing_syls = syl_number - len(line_onsets)
             filtered_onsets += line_onsets[0:syl_number]
+            filtered_onsets += [line[-1][0] for i in range(missing_syls)] # If missing some syllables, pad with 0-length syls
         
         onsets = np.array(sorted(filtered_onsets))
 
-- 
GitLab