under bark, properly use transcribed audio if the audio wasn't actually sliced (oops)

This commit is contained in:
mrq 2023-07-11 14:53:32 +00:00
parent a325496661
commit e2a6dc1c0a

View File

@ -192,13 +192,36 @@ if BARK_ENABLED:
candidates = [] candidates = []
for file in transcriptions: for file in transcriptions:
result = transcriptions[file] result = transcriptions[file]
added = 0
for segment in result['segments']: for segment in result['segments']:
path = file.replace(".wav", f"_{pad(segment['id'], 4)}.wav")
# check if the slice actually exists
if not os.path.exists(f'./training/{voice}/audio/{path}'):
continue
entry = ( entry = (
file.replace(".wav", f"_{pad(segment['id'], 4)}.wav"), path,
segment['end'] - segment['start'], segment['end'] - segment['start'],
segment['text'] segment['text']
) )
candidates.append(entry) candidates.append(entry)
added = added + 1
# if nothing got added (assuming because nothign was sliced), use the master file
if added == 0: # added < len(result['segments']):
start = 0
end = 0
for segment in result['segments']:
start = max( start, segment['start'] )
end = max( end, segment['end'] )
entry = (
file,
end - start,
result['text']
)
candidates.append(entry)
candidates.sort(key=lambda x: x[1]) candidates.sort(key=lambda x: x[1])
candidate = random.choice(candidates) candidate = random.choice(candidates)