microsoft / microsoft/markitdown

Integrate full support for SpeechRecognition

Open
#1,456 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
186k
Forks
13.7k
Avg merge
1d 4h
Merged PRs (30d)
49

Description

Problem

  1. audio time greater than 1 minute
    google speech recognition can accept file that is less or equal than 1 minutes and only 50 requests are allowed per day.
    google speech recognition(not google cloud stt) is almost deprecated at all
  2. Exception is handled poorly
    If audio file exceeds 1 minute then it throws error, but user can't know why this error occured.
  3. No Test for audio transcription

Solution

  • Integrate full support for SpeechRecognition
    • Since this project pursues to be lightweight, avoid custom logics and mapping argument to speech_recognition would be great.
    • I will add **kwargs that contains engine, model, api_key, regions, ... which are required from SpeechRecognition library
      and match it to SpeechRecongition Library using
    recognize_method = getattr(recognizer, f"recognize_{engine}")
    
    • skip for options with offline dependency to be lightweight and align with image_converter
  • Exception handling
  • Add test codes
    • skip for github_actions(CI)

Related Issue

  • #326 tried to add whisper directly, but as #1284 noted, mapping SpeechRecognition's support would be simpler and support more models as well.
  • #1275 wants custom support for audio transcription as well.
  • #74 If the time of the audio exceeds quota(60 seconds per request, 50 requests per day),
    recognize_google() from SpeechRecognition throws an error, but the user can't know where it came from.

Suggestion

Asynchronous transcription and chunking would be great feature,
but I am concerned that it might not align with the project's philosophy. "Lightweight"

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the SpeechRecognition README and the related issues #326, #1284, #1275, and #74 to understand the proposed engine mapping, quotas, and exception behavior. Identify the project's audio transcription entry point, then define the supported non-offline engines and add transcription and error-handling tests; done means the supported SpeechRecognition options and failures are covered.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
audio-video-rtc
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.