Skip to content

AudioTranscript: From WAV chunks to transcription

AudioTranscript breaks a WAV recording into chunks around silence, sends each chunk to a recognition service and concatenates the results. The current implementation uses Amazon recognition, even though its docstrings still mention Google.

Application and tools
  • Updated
  • 1
  • Python · 100%
  • MIT
Repository languagesPython 100%1

Shares calculated from GitHub Linguist bytes.

Language%Bytes
Python100%6,443

GitHub · README · Language statistics

Overview

Why it exists

Audio ingestion and transcription worker pipeline with timestamp alignment.

Best fit

Batch automated audio recording transcription and indexing.

Getting started

These commands come from the repository documentation. They were not run during this review.

README.md · Usage
python main.py --path <audio_file_path> --min-silence-len <min_silence_length> --silence-thresh <silence_threshold> --keep-silence <keep_silence_duration> --language <language_code>

Repository references

Excerpts from the repository’s guides, in their original language. Links open the inspected source revision.

Prerequisites and first run

Requirements

README.md

  • Python 3.x
  • pydub
  • speech_recognition
  • rich
  • typer
  • dotenv
Read the full instructions ↗

Installation

README.md

  1. Clone the repository
  2. Navigate to the project directory
  3. Install the required packages
  4. Create a .env file and add your AWS credentials
Read the full instructions ↗
Configuration and usage

Usage

README.md

To run the CLI application, navigate to the project directory and run the following command:
Read the full instructions ↗

Parameters:

README.md

  • –path: Path of the audio file to transcribe.
  • –min-silence-len: Minimum length of silence required to detect the end of a speech segment in milliseconds.
  • –silence-thresh: Threshold value in dBFS below which the audio is considered silent.
  • –keep-silence: Duration of silence to be kept at the beginning and end of each chunk in milliseconds.
  • –language: Language code of the audio file to be transcribed.
Read the full instructions ↗
Development and contributions

Contributing

README.md

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Read the full instructions ↗
Source documentation

1 documents read from 1 candidates.

Features and components 2

Audio segmentation
main.py loads a WAV through pydub and calls split_on_silence. The threshold is calculated relative to the recording’s dBFS level. Each chunk is exported to audio-chunks before recognition.
Recognition and output
A SpeechRecognition Recognizer reads each exported file and calls recognize_amazon. The loop appends the returned text to whole_text, which is printed and returned. Typer exposes the file and segmentation parameters.

Architecture

The components and their connections remain available as text. The diagram adds an interactive view.

System context Context
  1. WAV recording
  2. pydub silence split
  3. Temporary WAV chunks
  4. Amazon recognition
  5. Combined text

Links verified in the repository.

Mermaid Interactive diagram (loads on open)

System overview of the components and connections verified in the repository.

Static architecture view for AudioTranscript
Static preview. The interactive diagram replaces it after Mermaid loads.
flowchart LR
  n0["WAV recording"]
  n1["pydub silence split"]
  n2["Temporary WAV chunks"]
  n3["Amazon recognition"]
  n4["Combined text"]
  n0 --> n1
  n1 --> n2
  n2 --> n3
  n3 --> n4
Text version of the diagram
  • WAV recording → pydub silence split
  • pydub silence split → Temporary WAV chunks
  • Temporary WAV chunks → Amazon recognition
  • Amazon recognition → Combined text
Follow one path through the code

Follow transcribe_audio_file rather than its docstring: the function checks AWS environment variables immediately before recognize_amazon. Its language argument is exposed by the CLI but is not passed into that call.

File structure

The map shows the inspected files and their organization.

Reference

4 / 4 eligible files read (6 in the tree); 0 oversized, 0 failed reads and 0 syntax diagnostics.

What the scan covers

Known dependency/build folders, credential files and binaries are excluded. The scan covers READMEs, recognized manifests and parser-supported source files.

Linguist statistics cover the whole repository and may include other languages.

File map
flowchart TD
  root["AudioTranscript"]
  f0["main.py"]
  root --> f0
  f1["requirements.txt"]
  root --> f1
  f2["README.md"]
  root --> f2
  f3["ai.py"]
  root --> f3

Files to read 2

References