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

STT0073: LLM-Based Correction of Inference Transcriptions Using Claude AI #3

Open
5 of 11 tasks
jim-gyas opened this issue Nov 14, 2024 · 9 comments
Open
5 of 11 tasks
Assignees

Comments

@jim-gyas
Copy link
Collaborator

jim-gyas commented Nov 14, 2024

Description:

Develop a pipeline to process audio transcription data by parsing the catalog, segmenting audio, and generating inference transcriptions. Validate and correct the transcriptions using an LLM to align them with reference texts while preserving context. Save corrected transcriptions and metadata to a structured CSV, with logs capturing errors and issues.

Resources:

  1. Inference Transcription and Transfer text: news-catalog

Completion Criteria:

  • Successfully parse the catalog, extract metadata, download audio files, and split them into segments based on duration limits.
  • Generate inference transcriptions for each audio segment and validate them against the reference transcriptions.
  • Correct inference transcriptions using an LLM, aligning them with reference texts while retaining context and accuracy.
  • Save corrected transcriptions and metadata to a CSV file, with detailed logs of errors and issues during the process.

Implementation:

Image

Updated Subtasks:

  • Catalog Parsing: Implement the parse_catalog function to fetch and parse the audio transcription catalog from the provided URL. Ensure it extracts relevant metadata such as audio URLs, IDs, and transcriptions.
  • Audio Processing:
    • Use the get_audio function to download audio data from the parsed audio URL.
    • Split the audio into segments using the get_split_audio function, adhering to segment duration limits (AUDIO_SEG_UPPER_LIMIT and AUDIO_SEG_LOWER_LIMIT) from the configuration.
  • Implement get_audio_inference_text to generate transcriptions for each audio segment.
  • Develop the is_valid_transcript function to validate the generated inference transcript against the reference transcript.
  • Use the transfer_segmentation function to align the reference transcript with the inference segmentation pattern using the fast_antx library.
  • Implement the get_LLM_corrected_text function to correct inference transcripts by comparing them with reference transcripts using a Large Language Model (LLM).
  • Store corrected transcriptions and associated metadata (e.g., audio segment data, original inference transcript, reference transcript) in a structured format.
  • Save the post-processed audio-transcript pairs to a CSV file with relevant columns (e.g., audio_seg_data, inference_transcript, reference_transcript, LLM_corrected_text).

This updated approach reflects the intermediate creation of a Transfer Text CSV file using the transfer_text function and its role in correcting the split audio inference transcriptions.

Card Reviewer: @kaldan007

  • Reviewed.
@jim-gyas jim-gyas self-assigned this Nov 14, 2024
@jim-gyas
Copy link
Collaborator Author

API account has insufficient credit to access the Claude API.

Image

@jim-gyas jim-gyas transferred this issue from OpenPecha/transcription-aligner Nov 20, 2024
@jim-gyas
Copy link
Collaborator Author

@kaldan007 and @gangagyatso4364, could you please review my card?

@gangagyatso4364
Copy link

gangagyatso4364 commented Nov 20, 2024

add the step to make cer comparison between all three kinds of transcript generated at last.

@gangagyatso4364
Copy link

looks good go ahead.

@jim-gyas
Copy link
Collaborator Author

@gangagyatso4364, could you please review my updated card?

@jim-gyas
Copy link
Collaborator Author

Image

@jim-gyas
Copy link
Collaborator Author

file_name,url,inference_transcript,audio_duration,corrected_transcript,is_changed
STT_NW0802_0001_216_to_2528,https://d38pmlk0v88drf.cloudfront.net/wav16k/STT_NW0802_0001_216_to_2528.wav,ཕྱི་ལོ་ཉིས་སྟོང་ཉི་ཤུ་རྩ་བཞི་ལོའི་ཟླ་བ་བརྒྱད་པའི་ནང་།,2.312,དགའ་ལྡན་ཁྲི་ཐོག་ཁང་དང་མཁས་མང་བློ་གསལ་བྱེ་བའི་གླིང་གྲྭ་ཚང་བཅས་ནས་བརྟག་ཞུ་ཕུལ་དོན་བཞིན། བོད་མིའི་བླ་ན་མེད་པའི་དབུ་ཁྲིད་སྤྱི་ནོར་གྱི་གོང་ས་སྐྱབས་མགོན་ཆེན་པོ་མཆོག་ནས་རྒྱ་ག,True
STT_NW0802_0002_2798_to_7662,https://d38pmlk0v88drf.cloudfront.net/wav16k/STT_NW0802_0002_2798_to_7662.wav,རྒྱ་ནག་གཞུང་གིས་མཚོ་སྔོན་ཞིང་ཆེན་གོ་ལོག་ཁུལ་བཙུགས་ནས་ལོ་འཁོར་བདུན་ཅུ་འཁོ་བའི་མཛད་སྒོ་འཚོགས་ཡོད་པ་བཞིན།,4.864,"Here is the corrected transcription:

    རྒྱ་ནག་གཞུང་གིས་མཚོ་སྔོན་ཞིང་ཆེན་གོ་ལོག་ཁུལ་བཙུགས་ནས་ལོ་འཁོར་བདུན་ཅུ་འཁོ་བའི་མཛད་སྒོ་འཚོགས་ཡོད་པ་བཞིན།",True
STT_NW0802_0003_7886_to_12686,https://d38pmlk0v88drf.cloudfront.net/wav16k/STT_NW0802_0003_7886_to_12686.wav,ཕྱི་ཟླ་བརྒྱད་པའི་ནང་རྒྱ་ནག་གཞུང་གི་མགོ་ལོག་མངའ་ཁུལ་གྱི་ས་གནས་གང་སར་དམ་བསྒྲགས་ཤུགས་ཆེར་ཆེ་ཡོད་པ་དང་།,4.8,"Here is the corrected transcription:

    དགའ་ལྡན་ཁྲི་ཐོག་ཁང་དང་མཁས་མང་བློ་གསལ་བྱེ་བའི་གླིང་གྲྭ་ཚང་བཅས་ནས་བརྟག་ཞུ་ཕུལ་དོན་བཞིན། བོད་མིའི་བླ་ན་མེད་པའི་དབུ་ཁྲིད་སྤྱི་ནོར་གླིང་གྲྭ་ཚང་གི་མཁན་པོ་གསར་པའི་ཁྲི་འདོན་",True
STT_NW0802_0004_12814_to_15726,https://d38pmlk0v88drf.cloudfront.net/wav16k/STT_NW0802_0004_12814_to_15726.wav,ལྷག་པར་དགན་སྡེ་ཁག་ཏུ་ཆོས་ཕྱོགས་ཀྱི་བྱེད་སྒོ་ལ་དམ་སྒྲགས་དང་།,2.912,"Here is the transcription with spelling corrections:

    ལྷག་པར་དགན་སྡེ་ཁག་ཏུ་ཆོས་ཕྱོགས་ཀྱི་བྱེད་སྒོ་ལ་དམ་སྒྲགས་དང་། 
    དགའ་ལྡན་ཁྲི་ཐོག་ཁང་དང་མཁས་མང་བློ་གསལ་བྱེ་བའི་གླིང་གྲྭ་ཚང་བཅས་ནས་བརྟག་ཞུ་ཕུལ་དོན་བཞིན། བོད་མིའི་བླ་ན་མེད་པ",True

@jim-gyas
Copy link
Collaborator Author

jim-gyas commented Dec 2, 2024

Transfer_text Based Correction

No Spelling Mistake in Inference Transcript:

filename: STT_NW0802_0001_216_to_2528,
inference_transcript: ཕྱི་ལོ་ཉིས་སྟོང་ཉི་ཤུ་རྩ་བཞི་ལོའི་ཟླ་བ་བརྒྱད་པའི་ནང་།,
corrected_transcript: ཕྱི་ལོ་ཉིས་སྟོང་ཉི་ཤུ་རྩ་བཞི་ལོའི་ཟླ་བ་བརྒྱད་པའི་ནང་།,
is_changed: False

Correction of Spelling Mistake:

filename: STT_NW0802_0002_2798_to_7662,
inference_transcript: རྒྱ་ནག་གཞུང་གིས་མཚོ་སྔོན་ཞིང་ཆེན་གོ་ལོག་ཁུལ་བཙུགས་ནས་ལོ་འཁོར་བདུན་ཅུ་འཁོ་བའི་མཛད་སྒོ་འཚོགས་ཡོད་པ་བཞིན།,
corrected_transcript: རྒྱ་ནག་གཞུང་གིས་མཚོ་སྔོན་ཞིང་ཆེན་མགོ་ལོག་ཁུལ་བཙུགས་ནས་ལོ་འཁོར་བདུན་ཅུ་འཁོ་བའི་མཛད་སྒོ་འཚོགས་ཡོད་པ་བཞིན།
is_changed: True
  • Reason:
  1. Inference_transcript:
    རྒྱ་ནག་གཞུང་གིས་མཚོ་སྔོན་ཞིང་ཆེན་གོ་ལོག་ཁུལ་བཙུགས་ནས་ལོ་འཁོར་བདུན་ཅུ་འཁོ་བའི་མཛད་སྒོ་འཚོགས་ཡོད་པ་བཞིན།
    (This text uses གོ་ལོག་ཁུལ.)

  2. corrected_transcript:
    རྒྱ་ནག་གཞུང་གིས་མཚོ་སྔོན་ཞིང་ཆེན་མགོ་ལོག་ཁུལ་བཙུགས་ནས་ལོ་འཁོར་བདུན་ཅུ་འཁོ་བའི་མཛད་སྒོ་འཚོགས་ཡོད་པ་བཞིན།
    (This text uses མགོ་ལོག་ཁུལ.)

  • Difference:
    In inference_transcript, the phrase གོ་ལོག་ཁུལ is used, whereas in corrected_transcript, it is replaced with མགོ་ལོག་ཁུལ.

@jim-gyas
Copy link
Collaborator Author

jim-gyas commented Dec 4, 2024

རྒྱ་ནག་གཞུང་གིས་མཚོ་སྔོན་ཞིང་ཆེན་མགོ་ལོག་ཁུལ་བཙུགས་ནས་ལོ་འཁོར་ ༧༠ འཁོར་བའི་མཛད་སྒོ་འཚོགས་ཡོད་པ་བཞིན།

@kaldan007 kaldan007 transferred this issue from OpenPecha/stt-split-audio Dec 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: IN PROGRESS
Development

No branches or pull requests

2 participants