.. image:: https://readthedocs.org/projects/audinota/badge/?version=latest
:target: https://audinota.readthedocs.io/en/latest/
:alt: Documentation Status
.. image:: https://github.com/MacHu-GWU/audinota-project/actions/workflows/main.yml/badge.svg
:target: https://github.com/MacHu-GWU/audinota-project/actions?query=workflow:CI
.. image:: https://codecov.io/gh/MacHu-GWU/audinota-project/branch/main/graph/badge.svg
:target: https://codecov.io/gh/MacHu-GWU/audinota-project
.. image:: https://img.shields.io/pypi/v/audinota.svg
:target: https://pypi.python.org/pypi/audinota
.. image:: https://img.shields.io/pypi/l/audinota.svg
:target: https://pypi.python.org/pypi/audinota
.. image:: https://img.shields.io/pypi/pyversions/audinota.svg
:target: https://pypi.python.org/pypi/audinota
.. image:: https://img.shields.io/badge/✍️_Release_History!--None.svg?style=social&logo=github
:target: https://github.com/MacHu-GWU/audinota-project/blob/main/release-history.rst
.. image:: https://img.shields.io/badge/⭐_Star_me_on_GitHub!--None.svg?style=social&logo=github
:target: https://github.com/MacHu-GWU/audinota-project
------
.. image:: https://img.shields.io/badge/Link-API-blue.svg
:target: https://audinota.readthedocs.io/en/latest/py-modindex.html
.. image:: https://img.shields.io/badge/Link-Install-blue.svg
:target: `install`_
.. image:: https://img.shields.io/badge/Link-GitHub-blue.svg
:target: https://github.com/MacHu-GWU/audinota-project
.. image:: https://img.shields.io/badge/Link-Submit_Issue-blue.svg
:target: https://github.com/MacHu-GWU/audinota-project/issues
.. image:: https://img.shields.io/badge/Link-Request_Feature-blue.svg
:target: https://github.com/MacHu-GWU/audinota-project/issues
.. image:: https://img.shields.io/badge/Link-Download-blue.svg
:target: https://pypi.org/pypi/audinota#files
Welcome to ``audinota`` Documentation
==============================================================================
.. image:: https://audinota.readthedocs.io/en/latest/_static/audinota-logo.png
:target: https://audinota.readthedocs.io/en/latest/
**Audinota** (Latin for "taking notes from audio") is a lightweight, high-performance Python library designed for fast audio-to-text transcription. Built specifically for extracting textual information from audio content, Audinota enables you to leverage AI-powered text analysis, summarization, and processing on your audio data.
The library is built on top of the proven faster-whisper open-source framework and features intelligent automatic audio segmentation with parallel processing capabilities. By automatically chunking large audio files and utilizing multiple CPU cores, Audinota delivers exceptional transcription speed while maintaining accuracy.
Audinota follows a "deadly simple" philosophy - it focuses exclusively on pure audio-to-text conversion without the complexity of subtitle generation or timestamp management. This streamlined approach makes it ideal for information-dense audio content such as research videos, podcasts, lectures, and educational materials.
The project was inspired by real-world research workflows where rapid consumption and analysis of valuable audio content from YouTube videos, podcasts, and other sources is essential. Whether you're a researcher, content creator, or data analyst, Audinota helps you quickly transform audio insights into actionable text for further AI-powered processing and analysis.
**💰 Massive Cost Savings**: While AWS Transcribe costs $0.024/minute ($1.44/hour), Audinota can be deployed on AWS Lambda for approximately $0.0002/minute - making it **120x cheaper** than commercial transcription services. This dramatic cost reduction enables researchers, content creators, and businesses to extract valuable insights from extensive audio archives and YouTube content libraries without breaking the budget. Transform hours of audio content into actionable text for AI analysis, knowledge extraction, and content research at a fraction of traditional cloud service costs.
Quick Start
------------------------------------------------------------------------------
Audinota makes audio transcription incredibly simple with just a few lines of code:
.. code-block:: python
import io
from pathlib import Path
from audinota.api import transcribe_audio_in_parallel
# Transcribe any audio file to text
text = transcribe_audio_in_parallel(
audio=io.BytesIO(Path("podcast_episode.mp3").read_bytes()),
)
print(text)
**What happens under the hood:**
1. **Automatic Format Detection**: Audinota automatically handles popular audio formats including MP3, MP4, WAV, M4A, FLAC, OGG, and more
2. **Language Detection**: The system automatically detects the spoken language without requiring manual specification
3. **Smart Segmentation**: Large audio files are intelligently chunked into optimal segments for processing
4. **Parallel Processing**: Multiple CPU cores work simultaneously on different audio segments for maximum speed
5. **Text Assembly**: All transcribed segments are seamlessly combined into a single, coherent text output
The entire process is optimized for speed and accuracy, typically processing hours of audio content in just minutes while maintaining high transcription quality across different languages and audio conditions.
Command Line Interface
------------------------------------------------------------------------------
Audinota provides a powerful command-line interface for easy audio transcription without writing code:
Basic Usage
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. code-block:: console
# Simple transcription - output saved next to input file
$ audinota transcribe --input="podcast.mp3"
# Specify output directory
$ audinota transcribe --input="lecture.mp4" --output="/path/to/transcripts/"
# Specify exact output file
$ audinota transcribe --input="interview.wav" --output="result.txt"
# Overwrite existing files
$ audinota transcribe --input="audio.m4a" --output="existing.txt" --overwrite
Parameters
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
**--input** (required)
Path to the input audio file. Supports popular formats including:
- MP3, MP4, M4A (most common)
- WAV, FLAC, OGG (uncompressed/lossless)
- And many more formats supported by faster-whisper
**--output** (optional)
Controls where the transcription is saved:
- **Not specified**: Creates a .txt file next to the input file
.. code-block:: console
$ audinota transcribe --input="podcast.mp3"
# Creates: podcast.txt
- **Directory path**: Creates a .txt file in the specified directory
.. code-block:: console
$ audinota transcribe --input="podcast.mp3" --output="/transcripts/"
# Creates: /transcripts/podcast.txt
- **File path**: Uses the exact specified file path
.. code-block:: console
$ audinota transcribe --input="podcast.mp3" --output="my_transcript.txt"
# Creates: my_transcript.txt
**--overwrite** (optional, default: False)
Boolean flag that controls file overwriting behavior:
- **False** (default): If output file exists, shows error and stops
- **True**: Overwrites existing output files without asking
.. note::
This only applies when --output specifies a file path. Directory outputs use automatic numbering instead.
File Conflict Resolution
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Audinota intelligently handles file name conflicts:
**Automatic Numbering**
When output goes to a directory and files already exist:
.. code-block:: console
$ audinota transcribe --input="audio.mp3" --output="/transcripts/"
# If /transcripts/audio.txt exists, creates /transcripts/audio_01.txt
# If both exist, creates /transcripts/audio_02.txt, etc.
**File Path Conflicts**
When --output specifies an existing file:
.. code-block:: console
$ audinota transcribe --input="audio.mp3" --output="existing.txt"
# Error: Output file 'existing.txt' already exists. Use --overwrite
$ audinota transcribe --input="audio.mp3" --output="existing.txt" --overwrite
# Overwrites existing.txt
Real-World Examples
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. code-block:: console
# Transcribe a podcast episode
$ audinota transcribe --input="episode_042.mp3"
# Output: episode_042.txt
# Batch processing to organized directory
$ mkdir transcripts
$ audinota transcribe --input="meeting_2024_01.m4a" --output="transcripts/"
$ audinota transcribe --input="meeting_2024_02.m4a" --output="transcripts/"
# Output: transcripts/meeting_2024_01.txt, transcripts/meeting_2024_02.txt
# Process lecture with custom naming
$ audinota transcribe --input="cs101_lecture.mp4" --output="notes/week1_lecture.txt"
# Replace previous transcription
$ audinota transcribe --input="revised_audio.wav" --output="final_transcript.txt" --overwrite
Performance Features
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The CLI automatically provides:
- **🚀Parallel Processing**: Utilizes all CPU cores for maximum speed
- **🧠Smart Segmentation**: Automatically splits large files for optimal processing
- **🌍Language Detection**: Automatically detects spoken language
- **📊Progress Feedback**: Real-time status updates with emoji indicators
- **🔍Format Detection**: Handles various audio formats without configuration
.. code-block:: console
$ audinota transcribe --input="long_podcast.mp3"
🎵 Transcribing audio file: long_podcast.mp3
📝 Output will be saved to: long_podcast.txt
🔄 Loading audio data...
🚀 Starting parallel transcription...
💾 Saving transcription...
✅ Transcription completed successfully!
📄 Output saved to: file:///path/to/long_podcast.txt
📊 Text length: 15,847 characters
.. _install:
Install
------------------------------------------------------------------------------
``audinota`` is released on PyPI, so all you need is to:
.. code-block:: console
$ pip install audinota
To upgrade to latest version:
.. code-block:: console
$ pip install --upgrade audinota
Raw data
{
"_id": null,
"home_page": null,
"name": "audinota",
"maintainer": "Sanhe Hu",
"docs_url": null,
"requires_python": "<4.0,>=3.10",
"maintainer_email": "husanhe@email.com",
"keywords": null,
"author": "Sanhe Hu",
"author_email": "husanhe@email.com",
"download_url": "https://files.pythonhosted.org/packages/22/38/572b8e4ed8b4c79b810e993907049b388fc84f8e830a1e25d34ff3b100c8/audinota-0.1.1.tar.gz",
"platform": null,
"description": "\n.. image:: https://readthedocs.org/projects/audinota/badge/?version=latest\n :target: https://audinota.readthedocs.io/en/latest/\n :alt: Documentation Status\n\n.. image:: https://github.com/MacHu-GWU/audinota-project/actions/workflows/main.yml/badge.svg\n :target: https://github.com/MacHu-GWU/audinota-project/actions?query=workflow:CI\n\n.. image:: https://codecov.io/gh/MacHu-GWU/audinota-project/branch/main/graph/badge.svg\n :target: https://codecov.io/gh/MacHu-GWU/audinota-project\n\n.. image:: https://img.shields.io/pypi/v/audinota.svg\n :target: https://pypi.python.org/pypi/audinota\n\n.. image:: https://img.shields.io/pypi/l/audinota.svg\n :target: https://pypi.python.org/pypi/audinota\n\n.. image:: https://img.shields.io/pypi/pyversions/audinota.svg\n :target: https://pypi.python.org/pypi/audinota\n\n.. image:: https://img.shields.io/badge/\u270d\ufe0f_Release_History!--None.svg?style=social&logo=github\n :target: https://github.com/MacHu-GWU/audinota-project/blob/main/release-history.rst\n\n.. image:: https://img.shields.io/badge/\u2b50_Star_me_on_GitHub!--None.svg?style=social&logo=github\n :target: https://github.com/MacHu-GWU/audinota-project\n\n------\n\n.. image:: https://img.shields.io/badge/Link-API-blue.svg\n :target: https://audinota.readthedocs.io/en/latest/py-modindex.html\n\n.. image:: https://img.shields.io/badge/Link-Install-blue.svg\n :target: `install`_\n\n.. image:: https://img.shields.io/badge/Link-GitHub-blue.svg\n :target: https://github.com/MacHu-GWU/audinota-project\n\n.. image:: https://img.shields.io/badge/Link-Submit_Issue-blue.svg\n :target: https://github.com/MacHu-GWU/audinota-project/issues\n\n.. image:: https://img.shields.io/badge/Link-Request_Feature-blue.svg\n :target: https://github.com/MacHu-GWU/audinota-project/issues\n\n.. image:: https://img.shields.io/badge/Link-Download-blue.svg\n :target: https://pypi.org/pypi/audinota#files\n\n\nWelcome to ``audinota`` Documentation\n==============================================================================\n.. image:: https://audinota.readthedocs.io/en/latest/_static/audinota-logo.png\n :target: https://audinota.readthedocs.io/en/latest/\n\n**Audinota** (Latin for \"taking notes from audio\") is a lightweight, high-performance Python library designed for fast audio-to-text transcription. Built specifically for extracting textual information from audio content, Audinota enables you to leverage AI-powered text analysis, summarization, and processing on your audio data.\n\nThe library is built on top of the proven faster-whisper open-source framework and features intelligent automatic audio segmentation with parallel processing capabilities. By automatically chunking large audio files and utilizing multiple CPU cores, Audinota delivers exceptional transcription speed while maintaining accuracy.\n\nAudinota follows a \"deadly simple\" philosophy - it focuses exclusively on pure audio-to-text conversion without the complexity of subtitle generation or timestamp management. This streamlined approach makes it ideal for information-dense audio content such as research videos, podcasts, lectures, and educational materials.\n\nThe project was inspired by real-world research workflows where rapid consumption and analysis of valuable audio content from YouTube videos, podcasts, and other sources is essential. Whether you're a researcher, content creator, or data analyst, Audinota helps you quickly transform audio insights into actionable text for further AI-powered processing and analysis.\n\n**\ud83d\udcb0 Massive Cost Savings**: While AWS Transcribe costs $0.024/minute ($1.44/hour), Audinota can be deployed on AWS Lambda for approximately $0.0002/minute - making it **120x cheaper** than commercial transcription services. This dramatic cost reduction enables researchers, content creators, and businesses to extract valuable insights from extensive audio archives and YouTube content libraries without breaking the budget. Transform hours of audio content into actionable text for AI analysis, knowledge extraction, and content research at a fraction of traditional cloud service costs.\n\n\nQuick Start\n------------------------------------------------------------------------------\nAudinota makes audio transcription incredibly simple with just a few lines of code:\n\n.. code-block:: python\n\n import io\n from pathlib import Path\n from audinota.api import transcribe_audio_in_parallel\n\n # Transcribe any audio file to text\n text = transcribe_audio_in_parallel(\n audio=io.BytesIO(Path(\"podcast_episode.mp3\").read_bytes()),\n )\n print(text)\n\n**What happens under the hood:**\n\n1. **Automatic Format Detection**: Audinota automatically handles popular audio formats including MP3, MP4, WAV, M4A, FLAC, OGG, and more\n2. **Language Detection**: The system automatically detects the spoken language without requiring manual specification\n3. **Smart Segmentation**: Large audio files are intelligently chunked into optimal segments for processing\n4. **Parallel Processing**: Multiple CPU cores work simultaneously on different audio segments for maximum speed\n5. **Text Assembly**: All transcribed segments are seamlessly combined into a single, coherent text output\n\nThe entire process is optimized for speed and accuracy, typically processing hours of audio content in just minutes while maintaining high transcription quality across different languages and audio conditions.\n\n\nCommand Line Interface\n------------------------------------------------------------------------------\nAudinota provides a powerful command-line interface for easy audio transcription without writing code:\n\nBasic Usage\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n.. code-block:: console\n\n # Simple transcription - output saved next to input file\n $ audinota transcribe --input=\"podcast.mp3\"\n\n # Specify output directory\n $ audinota transcribe --input=\"lecture.mp4\" --output=\"/path/to/transcripts/\"\n\n # Specify exact output file\n $ audinota transcribe --input=\"interview.wav\" --output=\"result.txt\"\n\n # Overwrite existing files\n $ audinota transcribe --input=\"audio.m4a\" --output=\"existing.txt\" --overwrite\n\nParameters\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n**--input** (required)\n Path to the input audio file. Supports popular formats including:\n \n - MP3, MP4, M4A (most common)\n - WAV, FLAC, OGG (uncompressed/lossless)\n - And many more formats supported by faster-whisper\n\n**--output** (optional)\n Controls where the transcription is saved:\n\n - **Not specified**: Creates a .txt file next to the input file\n \n .. code-block:: console\n \n $ audinota transcribe --input=\"podcast.mp3\"\n # Creates: podcast.txt\n\n - **Directory path**: Creates a .txt file in the specified directory\n \n .. code-block:: console\n \n $ audinota transcribe --input=\"podcast.mp3\" --output=\"/transcripts/\"\n # Creates: /transcripts/podcast.txt\n\n - **File path**: Uses the exact specified file path\n \n .. code-block:: console\n \n $ audinota transcribe --input=\"podcast.mp3\" --output=\"my_transcript.txt\"\n # Creates: my_transcript.txt\n\n**--overwrite** (optional, default: False)\n Boolean flag that controls file overwriting behavior:\n\n - **False** (default): If output file exists, shows error and stops\n - **True**: Overwrites existing output files without asking\n\n .. note::\n This only applies when --output specifies a file path. Directory outputs use automatic numbering instead.\n\nFile Conflict Resolution\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nAudinota intelligently handles file name conflicts:\n\n**Automatic Numbering**\n When output goes to a directory and files already exist:\n\n .. code-block:: console\n\n $ audinota transcribe --input=\"audio.mp3\" --output=\"/transcripts/\"\n # If /transcripts/audio.txt exists, creates /transcripts/audio_01.txt\n # If both exist, creates /transcripts/audio_02.txt, etc.\n\n**File Path Conflicts**\n When --output specifies an existing file:\n\n .. code-block:: console\n\n $ audinota transcribe --input=\"audio.mp3\" --output=\"existing.txt\"\n # Error: Output file 'existing.txt' already exists. Use --overwrite\n\n $ audinota transcribe --input=\"audio.mp3\" --output=\"existing.txt\" --overwrite\n # Overwrites existing.txt\n\nReal-World Examples\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n.. code-block:: console\n\n # Transcribe a podcast episode\n $ audinota transcribe --input=\"episode_042.mp3\"\n # Output: episode_042.txt\n\n # Batch processing to organized directory\n $ mkdir transcripts\n $ audinota transcribe --input=\"meeting_2024_01.m4a\" --output=\"transcripts/\"\n $ audinota transcribe --input=\"meeting_2024_02.m4a\" --output=\"transcripts/\"\n # Output: transcripts/meeting_2024_01.txt, transcripts/meeting_2024_02.txt\n\n # Process lecture with custom naming\n $ audinota transcribe --input=\"cs101_lecture.mp4\" --output=\"notes/week1_lecture.txt\"\n\n # Replace previous transcription\n $ audinota transcribe --input=\"revised_audio.wav\" --output=\"final_transcript.txt\" --overwrite\n\nPerformance Features\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nThe CLI automatically provides:\n\n- **\ud83d\ude80Parallel Processing**: Utilizes all CPU cores for maximum speed\n- **\ud83e\udde0Smart Segmentation**: Automatically splits large files for optimal processing\n- **\ud83c\udf0dLanguage Detection**: Automatically detects spoken language\n- **\ud83d\udccaProgress Feedback**: Real-time status updates with emoji indicators\n- **\ud83d\udd0dFormat Detection**: Handles various audio formats without configuration\n\n.. code-block:: console\n\n $ audinota transcribe --input=\"long_podcast.mp3\"\n \ud83c\udfb5 Transcribing audio file: long_podcast.mp3\n \ud83d\udcdd Output will be saved to: long_podcast.txt\n \ud83d\udd04 Loading audio data...\n \ud83d\ude80 Starting parallel transcription...\n \ud83d\udcbe Saving transcription...\n \u2705 Transcription completed successfully!\n \ud83d\udcc4 Output saved to: file:///path/to/long_podcast.txt\n \ud83d\udcca Text length: 15,847 characters\n\n\n.. _install:\n\nInstall\n------------------------------------------------------------------------------\n\n``audinota`` is released on PyPI, so all you need is to:\n\n.. code-block:: console\n\n $ pip install audinota\n\nTo upgrade to latest version:\n\n.. code-block:: console\n\n $ pip install --upgrade audinota\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Blazingly fast, open-source audio-to-text transcription library with parallel processing - turn podcasts, videos, and lectures into AI-ready text at 120x lower cost than cloud services.",
"version": "0.1.1",
"project_urls": {
"Changelog": "https://github.com/MacHu-GWU/audinota-project/blob/main/release-history.rst",
"Documentation": "https://audinota.readthedocs.io/en/latest/",
"Download": "https://pypi.org/pypi/audinota#files",
"Homepage": "https://github.com/MacHu-GWU/audinota-project",
"Issues": "https://github.com/MacHu-GWU/audinota-project/issues",
"Repository": "https://github.com/MacHu-GWU/audinota-project"
},
"split_keywords": [],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "fd0dc07873be3744d9e26e80a7b2cdf27202ab4c6ffbe56f71af5802bc1af9ae",
"md5": "d185d03eee037a199c44f6eb4e7ec01a",
"sha256": "ec43e99700be8192b6f1142902e43ef3a50a9ef8e550a46b877d6ff25278ffbc"
},
"downloads": -1,
"filename": "audinota-0.1.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "d185d03eee037a199c44f6eb4e7ec01a",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.10",
"size": 14918,
"upload_time": "2025-08-11T23:38:45",
"upload_time_iso_8601": "2025-08-11T23:38:45.061377Z",
"url": "https://files.pythonhosted.org/packages/fd/0d/c07873be3744d9e26e80a7b2cdf27202ab4c6ffbe56f71af5802bc1af9ae/audinota-0.1.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "2238572b8e4ed8b4c79b810e993907049b388fc84f8e830a1e25d34ff3b100c8",
"md5": "698256e94ff8088ced2730d36efaa9dc",
"sha256": "36a9d71a6edff1af543ee893b00e1a0598651aaecf317b75879c6c085499a9cf"
},
"downloads": -1,
"filename": "audinota-0.1.1.tar.gz",
"has_sig": false,
"md5_digest": "698256e94ff8088ced2730d36efaa9dc",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.10",
"size": 15911,
"upload_time": "2025-08-11T23:38:46",
"upload_time_iso_8601": "2025-08-11T23:38:46.506997Z",
"url": "https://files.pythonhosted.org/packages/22/38/572b8e4ed8b4c79b810e993907049b388fc84f8e830a1e25d34ff3b100c8/audinota-0.1.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-11 23:38:46",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "MacHu-GWU",
"github_project": "audinota-project",
"travis_ci": false,
"coveralls": true,
"github_actions": true,
"requirements": [
{
"name": "audioop-lts",
"specs": [
[
"==",
"0.2.2"
]
]
},
{
"name": "audioread",
"specs": [
[
"==",
"3.0.1"
]
]
},
{
"name": "av",
"specs": [
[
"==",
"15.0.0"
]
]
},
{
"name": "certifi",
"specs": [
[
"==",
"2025.1.31"
]
]
},
{
"name": "cffi",
"specs": [
[
"==",
"1.17.1"
]
]
},
{
"name": "charset-normalizer",
"specs": [
[
"==",
"3.4.1"
]
]
},
{
"name": "colorama",
"specs": [
[
"==",
"0.4.6"
]
]
},
{
"name": "coloredlogs",
"specs": [
[
"==",
"15.0.1"
]
]
},
{
"name": "ctranslate2",
"specs": [
[
"==",
"4.6.0"
]
]
},
{
"name": "decorator",
"specs": [
[
"==",
"5.2.1"
]
]
},
{
"name": "faster-whisper",
"specs": [
[
"==",
"1.2.0"
]
]
},
{
"name": "filelock",
"specs": [
[
"==",
"3.18.0"
]
]
},
{
"name": "fire",
"specs": [
[
"==",
"0.7.0"
]
]
},
{
"name": "flatbuffers",
"specs": [
[
"==",
"25.2.10"
]
]
},
{
"name": "fsspec",
"specs": [
[
"==",
"2025.7.0"
]
]
},
{
"name": "hf-xet",
"specs": [
[
"==",
"1.1.7"
]
]
},
{
"name": "huggingface-hub",
"specs": [
[
"==",
"0.34.4"
]
]
},
{
"name": "humanfriendly",
"specs": [
[
"==",
"10.0"
]
]
},
{
"name": "idna",
"specs": [
[
"==",
"3.10"
]
]
},
{
"name": "joblib",
"specs": [
[
"==",
"1.5.1"
]
]
},
{
"name": "lazy-loader",
"specs": [
[
"==",
"0.4"
]
]
},
{
"name": "librosa",
"specs": [
[
"==",
"0.11.0"
]
]
},
{
"name": "llvmlite",
"specs": [
[
"==",
"0.43.0"
]
]
},
{
"name": "mpire",
"specs": [
[
"==",
"2.10.2"
]
]
},
{
"name": "mpmath",
"specs": [
[
"==",
"1.3.0"
]
]
},
{
"name": "msgpack",
"specs": [
[
"==",
"1.1.1"
]
]
},
{
"name": "numba",
"specs": [
[
"==",
"0.60.0"
]
]
},
{
"name": "numpy",
"specs": [
[
"==",
"2.0.2"
]
]
},
{
"name": "onnxruntime",
"specs": [
[
"==",
"1.20.1"
]
]
},
{
"name": "packaging",
"specs": [
[
"==",
"24.2"
]
]
},
{
"name": "platformdirs",
"specs": [
[
"==",
"4.3.7"
]
]
},
{
"name": "pooch",
"specs": [
[
"==",
"1.8.2"
]
]
},
{
"name": "protobuf",
"specs": [
[
"==",
"6.31.1"
]
]
},
{
"name": "pycparser",
"specs": [
[
"==",
"2.22"
]
]
},
{
"name": "pygments",
"specs": [
[
"==",
"2.19.1"
]
]
},
{
"name": "pyreadline3",
"specs": [
[
"==",
"3.5.4"
]
]
},
{
"name": "pywin32",
"specs": [
[
"==",
"310"
]
]
},
{
"name": "pyyaml",
"specs": [
[
"==",
"6.0.2"
]
]
},
{
"name": "requests",
"specs": [
[
"==",
"2.32.3"
]
]
},
{
"name": "scikit-learn",
"specs": [
[
"==",
"1.6.1"
]
]
},
{
"name": "scipy",
"specs": [
[
"==",
"1.13.1"
]
]
},
{
"name": "setuptools",
"specs": [
[
"==",
"80.9.0"
]
]
},
{
"name": "soundfile",
"specs": [
[
"==",
"0.13.1"
]
]
},
{
"name": "soxr",
"specs": [
[
"==",
"0.5.0.post1"
]
]
},
{
"name": "standard-aifc",
"specs": [
[
"==",
"3.13.0"
]
]
},
{
"name": "standard-chunk",
"specs": [
[
"==",
"3.13.0"
]
]
},
{
"name": "standard-sunau",
"specs": [
[
"==",
"3.13.0"
]
]
},
{
"name": "sympy",
"specs": [
[
"==",
"1.14.0"
]
]
},
{
"name": "termcolor",
"specs": [
[
"==",
"3.1.0"
]
]
},
{
"name": "threadpoolctl",
"specs": [
[
"==",
"3.6.0"
]
]
},
{
"name": "tokenizers",
"specs": [
[
"==",
"0.21.4"
]
]
},
{
"name": "tqdm",
"specs": [
[
"==",
"4.67.1"
]
]
},
{
"name": "typing-extensions",
"specs": [
[
"==",
"4.13.0"
]
]
},
{
"name": "urllib3",
"specs": [
[
"==",
"2.3.0"
]
]
}
],
"lcname": "audinota"
}