Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error while using postprocess_results [IndexError: list index out of range] #54

Open
vizsatiz opened this issue Jan 26, 2025 · 2 comments

Comments

@vizsatiz
Copy link

vizsatiz commented Jan 26, 2025

Getting this error when trying out a telugu audio with romanize=False

ERROR:root:Traceback (most recent call last):
  File "/main.py", line 95, in process_audio_file
    result = transcribe_and_diarize_audio(
  File "/diarize_parallel.py", line 79, in transcribe_and_diarize_audio
    transcribe_result = post_process_transcribe(batch_size, language, whisper_results_transcribe, audio_waveform, temp_path, alignment_model, alignment_tokenizer, punct_model)
  File "/diarize_parallel.py", line 132, in post_process_transcribe
    word_timestamps = postprocess_results(text_starred, spans, stride, scores)
  File "/.venv/lib/python3.10/site-packages/ctc_forced_aligner/text_utils.py", line 261, in postprocess_results
    span = spans[i]
IndexError: list index out of range

Seems to be related to span creation and postprocessing, here is my code:


emissions, stride = generate_emissions(alignment_model, audio_waveform, batch_size=batch_size)

    full_transcript = "".join(segment["text"] for segment in whisper_results)

    tokens_starred, text_starred = preprocess_text(
        full_transcript,
        romanize=False,
        language=langs_to_iso[language],
    )

    segments, scores, blank_token = get_alignments(
        emissions,
        tokens_starred,
        alignment_tokenizer,
    )

    spans = get_spans(tokens_starred, segments, blank_token)

    word_timestamps = postprocess_results(text_starred, spans, stride, scores)

Also if I decide to romanize I get the following error

ERROR:root:Traceback (most recent call last):
  File "/main.py", line 95, in process_audio_file
    result = transcribe_and_diarize_audio(
  File "/diarize_parallel.py", line 79, in transcribe_and_diarize_audio
    transcribe_result = post_process_transcribe(batch_size, language, whisper_results_transcribe, audio_waveform, temp_path, alignment_model, alignment_tokenizer, punct_model)
  File "/diarize_parallel.py", line 127, in post_process_transcribe
    spans = get_spans(tokens_starred, segments, blank_token)
  File "/.venv/lib/python3.10/site-packages/ctc_forced_aligner/alignment_utils.py", line 65, in get_spans
    assert seg.label == ltr, f"{seg.label} != {ltr}"
AssertionError: i != <star>

I am using release 0.3.0

Any help is appreciated !

@MahmoudAshraf97
Copy link
Owner

Can you please share the audio file and the problematic transcription?

@vizsatiz
Copy link
Author

vizsatiz commented Jan 26, 2025

@MahmoudAshraf97 Thanks for engaging

I cannot share the audio file, but here is what I get when I print:

segments, scores, blank_token = get_alignments(
        emissions,
        tokens_starred,
        alignment_tokenizer,
    )

    print("==========")
    print(text_starred)
    print(segments)
    print(blank_token)
    print("==========")

    spans = get_spans(tokens_starred, segments, blank_token)

['<star>', 'मेरा', '<star>', 'और', '<star>', 'अमर', '<star>', 'बोल', '<star>', 'लेना', '<star>', 'देखते', '<star>', 'हैं।', '<star>', 'हलो।', '<star>', 'हलो', '<star>', 'हाँजी।', '<star>', 'गुड़', '<star>', 'आफ़िंग', '<star>', 'मैंज़र।', '<star>', 'गुड़', '<star>', 'आफ़िंग', '<star>', 'मैंज़र', '<star>', 'हाँजी', '<star>', 'बोल', '<star>', 'लेए।', '<star>', 'बात', '<star>', 'करेंगे।', '<star>', 'हलो', '<star>', 'हाँजी।', '<star>', 'क्या', '<star>', 'कह', '<star>', 'रहे', '<star>', 'हो।', '<star>', 'मेरा', '<star>', 'बोल', '<star>', 'अभी', '<star>', 'मिसुर', '<star>', 'में', '<star>', 'है।', '<star>', 'हाँजी', '<star>', 'बोल', '<star>', 'लेए।', '<star>', 'मैं', '<star>', 'इने', '<star>', 'पेमेंट', '<star>', 'दे', '<star>', 'रहा', '<star>', 'हूँ', '<star>', 'ये', '<star>', 'पेमेंट', '<star>', 'ना', '<star>', 'तो', '<star>', 'प्रेहर', '<star>', 'में', '<star>', 'ले', '<star>', 'रहे,', '<star>', 'ना', '<star>', 'ओन्लाइन', '<star>', 'ले', '<star>', 'रहे,', '<star>', 'ना', '<star>', 'कुछ', '<star>', 'ले', '<star>', 'रहे,', '<star>', 'ना', '<star>', 'अकाउंट', '<star>', 'में', '<star>', 'लाग।', '<star>', 'काँप', '<star>', 'हैं?', '<star>', 'ये', '<star>', 'अब्गरवाल', '<star>', 'पॉलिज', '<star>', 'परीदा', '<star>', 'बाड़', '<star>', 'पलंबड़.', '<star>', 'पेमेंट', '<star>', 'नहीं', '<star>', 'ले', '<star>', 'रहे', '<star>', 'हैं?', '<star>', 'हाँ', '<star>', 'जी', '<star>', 'हैं.', '<star>', 'मिसस', '<star>', 'फाइमे', '<star>', 'कौंसे', '<star>', 'बनाचता', '<star>', 'कह', '<star>', 'रहे', '<star>', 'हो?', '<star>', 'ये', '<star>', 'सरकी', '<star>', 'अब', '<star>', 'बरवाल', '<star>', 'कोली', '<star>', 'के', '<star>', 'से', '<star>', 'पास', '<star>', 'मैं', '<star>', 'बल्लंब', '<star>', 'कर', '<star>', 'रहा', '<star>', 'हूँ.', '<star>', 'अच्छा,', '<star>', 'अच्छा,', '<star>', 'च्या', '<star>', 'कह', '<star>', 'रहे', '<star>', 'हैं?', '<star>', 'ये', '<star>', 'सरकी', '<star>', 'मैंने', '<star>', 'ओन्लाइन', '<star>', 'टैमेंट', '<star>', 'दे', '<star>', 'रहा', '<star>', 'हूँ,', '<star>', 'तो', '<star>', 'ओन्लाइन', '<star>', 'नहीं', '<star>', 'ले', '<star>', 'रहे', '<star>', 'हूँ.', '<star>', 'और', '<star>', 'आटिज्जियक', '<star>', 'पर', '<star>', 'आ', '<star>', 'रहा', '<star>', 'हूँ,', '<star>', 'तो', '<star>', 'वो', '<star>', 'भ', '<star>', 'दो', '<star>', 'दो', '<star>', 'लाग', '<star>', 'करके', '<star>', 'में', '<star>', 'लेंगे', '<star>', 'हैं।', '<star>', 'आर्विया।', '<star>', 'हाँ', '<star>', 'तो', '<star>', 'सारे', '<star>', 'प्रोसेटी', '<star>', 'होते', '<star>', 'हैं।', '<star>', 'यह', '<star>', 'तो', '<star>', 'आर्विया', '<star>', 'की', '<star>', 'जाएँ', '<star>', 'हैं।', '<star>', 'दो', '<star>', 'लाग', '<star>', 'की', '<star>', 'दे', '<star>', 'सकते', '<star>', 'हैं।', '<star>', 'आप', '<star>', 'कित्र', '<star>', 'जादत', '<star>', 'को', '<star>', 'ही', '<star>', 'दे', '<star>', 'सकते', '<star>', 'हैं।', '<star>', 'सभर्जी', '<star>', 'मैं', '<star>', 'और', '<star>', 'जो', '<star>', 'बच्चे', '<star>', 'हो', '<star>', 'रहा', '<star>', 'हूँ।', '<star>', 'आप', '<star>', 'इजी', '<star>', 'एक', '<star>', 'परवा', '<star>', 'नहीं', '<star>', 'रहें।', '<star>', 'यह', '<star>', 'देखो', '<star>', 'जी', '<star>', 'प्रोसेस', '<star>', 'तो', '<star>', 'वही', '<star>', 'है', '<star>', 'उस', '<star>', 'मेंको', '<star>', 'तो', '<star>', 'वो', '<star>', 'भी', '<star>', 'गलत', '<star>', 'नहीं', '<star>', 'कह', '<star>', 'रहे', '<star>', 'प्रोसेस', '<star>', 'ही', '<star>', 'ही', '<star>', 'है', '<star>', 'हाँ', '<star>', 'जी', '<star>', 'क्योंकि', '<star>', 'क्या', '<star>', 'है', '<star>', 'वैसे', '<star>', 'तो', '<star>', 'डारेक्ट', '<star>', 'फॉन', '<star>', 'भी', '<star>', 'बेटें', '<star>', 'लिए', '<star>', 'इतना', '<star>', 'अमांट', '<star>', 'हो', '<star>', 'नहीं', '<star>', 'सकता', '<star>', 'तो', '<star>', 'क्या', '<star>', 'है', '<star>', 'वो', '<star>', 'जो', '<star>', 'वर्चवल', '<star>', 'के', '<star>', 'लिए', '<star>', 'बेचते', '<star>', 'हैं', '<star>', 'उपर', '<star>', 'थे', '<star>', 'वो', '<star>', 'अंब्लोक', '<star>', 'होके', '<star>', 'आता', '<star>', 'है', '<star>', '�', '<star>', 'आर्टी', '<star>', 'जी', '<star>', 'अस्टो', '<star>', 'पर', '<star>', 'लाओं', '<star>', 'न', '<star>', 'उन्हें', '<star>', 'पास', '<star>', 'मैं', '<star>', 'आर्टी', '<star>', 'जी', '<star>', 'अस्टे', '<star>', 'तो', '<star>', 'आर्टी', '<star>', 'जी', '<star>', 'अस्टे', '<star>', 'न', '<star>', 'उन्हें', '<star>', 'पास', '<star>', 'मैं', '<star>', 'आर्टी', '<star>', 'जी', '<star>', 'अस्टे', '<star>', 'तो', '<star>', 'आर्टी', '<star>', 'जी', '<star>', 'अस्टे', '<star>', 'न', '<star>', 'उन्हें', '<star>', 'पास', '<star>', 'मैं', '<star>', 'आर्टी', '<star>', 'जी', '<star>', 'अस्टे', '<star>', 'तो', '<star>', 'आर्टी', '<star>', 'जी', '<star>', 'अस्टे', '<star>', 'न', '<star>', 'उन्हें', '<star>', 'पास', '<star>', 'मैं', '<star>', 'आर्टी', '<star>', 'जी', '<star>', 'अस्टे', '<star>', 'तो', '<star>', 'आर', '<star>', 'प्रति', '<star>', 'ये', '<star>', 'दे', '<star>', 'रहे', '<star>', 'हैं', '<star>', 'जैसे', '<star>', 'तो', '<star>', 'मैं', '<star>', 'ज्रांच', '<star>', 'रहे', '<star>', 'बैटा', '<star>', 'हूँ', '<star>', 'उनके', '<star>', 'सामने', '<star>', 'जैसे', '<star>', 'तो', '<star>', 'बोल', '<star>', 'रहा', '<star>', 'हूँ', '<star>', 'न', '<star>', 'उनके', '<star>', 'अच्छा', '<star>', 'नहीं', '<star>', 'नहीं', '<star>', 'आज', '<star>', 'नहीं', '<star>', 'बोलना', '<star>', 'चाहिए', '<star>', 'उनको', '<star>', 'कोई', '<star>', 'नहीं', '<star>', 'बात', '<star>', 'बात', '<star>', 'पल', '<star>', 'बज़ें', '<star>', 'बात', '<star>', 'आप', '<star>', 'करो', '<star>', 'कोई', '<star>', 'नहीं', '<star>', 'बात', '<star>', 'देखो', '<star>', 'पहले', '<star>', 'बोल', '<star>', 'जाओ', '<star>', 'पर', '<star>', 'इन्हें', '<star>', 'मुझे', '<star>', 'कुछ', '<star>', 'जुड़ी', '<star>', 'होने', '<star>', 'के', '<star>', 'लिए', '<star>', 'मुझे', '<star>', 'कुछ', '<star>', 'जुड़ी', '<star>', 'होने', '<star>', 'के', '<star>', 'लिए', '<star>', 'मुझे', '<star>', 'कुछ', '<star>', 'जुड़ी', '<star>', 'होने', '<star>', 'के', '<star>', 'लिए', '<star>', 'मुझे', '<star>', 'कुछ', '<star>', 'जुड़ी', '<star>', 'होने', '<star>', 'के', '<star>', 'लिए', '<star>', 'क्योंकि', '<star>', 'अपर', '<star>', 'अपर', '<star>', 'आपको', '<star>', 'प्रस्तुत', '<star>', 'करते', '<star>', 'हैं']
[m: [    0, 13290)]
<blank>

The error here is:

ERROR:root:Traceback (most recent call last):
  File "/main.py", line 95, in process_audio_file
    result = transcribe_and_diarize_audio(
  File "/diarize_parallel.py", line 79, in transcribe_and_diarize_audio
    transcribe_result = post_process_transcribe(batch_size, language, whisper_results_transcribe, audio_waveform, temp_path, alignment_model, alignment_tokenizer, punct_model)
  File "/diarize_parallel.py", line 133, in post_process_transcribe
    spans = get_spans(tokens_starred, segments, blank_token)
  File "/.venv/lib/python3.10/site-packages/ctc_forced_aligner/alignment_utils.py", line 65, in get_spans
    assert seg.label == ltr, f"{seg.label} != {ltr}"
AssertionError: m != <star>

Will this help ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants