Skip to main content

livestt

Installation

pip install livestt # this could take a while

Usage

Livestt gives access to 3 main classes/functions.

Wait for the wake word

from livestt import wait

def callback_func():
    print("Wakeword said!")

wait(callback=callback_func)

The wait function takes in these args:

callback (Callable): The function to be called when the wake word is detected.

args (tuple[any] | None): The arguments to be passed to the callback function. The default is None.

wake_word (str): The wake word that the function is waiting for. The default is "Sheila".

prob_threshold (float): The probability threshold for the wake word detection. The default is 0.5.

chunk_length_s (float): The length of the audio chunk to be processed at a time, in seconds. The default is 2.0.

stream_chunk_s (float): The length of the audio stream chunk to be processed at a time, in seconds. The default is 0.25.

debug (bool): If True, debug information will be printed. The default is True.

Raises: ValueError: If the wake word is not in the set of valid class labels.

Returns: None

Record audio

from livestt import Recorder
import time

recorder = Recorder("test.wav")

recorder.start()    # Starts recorder thread
time.sleep(5)   # Waits before ending thread
recorder.end()  # Writes recording to "test.wav"

The Recorder class when started starts a new recorder thread where it will listen to the audio until the thread is ended. Upon the thread ending, the recording will be saved to a file. The Recorder class takes these args:

chunk (int): The number of audio frames per buffer.

format (int): The sample format for the recording.

channels (int): The number of channels for the recording.

fs (int): The sample rate of the recording.

filename (str): The name of the output file where the recording will be saved. The file_ MUST currently be .wav

listening (bool): A flag indicating whether the recorder is currently recording.

Transcribe a given audio file

from livestt import transcribe

transcription = transcribe("test.wav")

for t in transcription:
    print(t.text)

The transcribe function transcribes the given audio file and outputs the transcribed text along with other information. The transcribe function takes these args:

input_file (str): The path to the audio file to be transcribed.

language (str): The language of the audio file. The default is "en" (English).

model_name (str): The name of the model to be used for transcription. The default is "tiny.en".

This function yields a tuple with the following fields:

text (str): The transcribed text.

language_probability (float): The probability of the detected language.

language (str): The detected language.

segment_end (float): The end time of the transcribed segment.

segment_start (float): The start time of the transcribed segment.

Examples

For a full example, check out the example in the file example/main.py.

Tech stack

Acknowledgments

Thanks to Kolja for the inspiration. I couldn't figure out how to use his library so I made my own. Check this out here.

Contribution

Contributions are always welcome! Open an issue or make a PR. Or just contact me on discord: @a3l6

Author(s)

Metadata

Release files for livestt 1.0.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for livestt 1.0.7
File Size Uploaded Provenance Actions
livestt-1.0.7.tar.gz 7.7 kB Without provenance Details for livestt-1.0.7.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for livestt 1.0.7
File Interpreter ABI Platform Actions
livestt-1.0.7-py3-none-any.whl Python 3 none any Details for livestt-1.0.7-py3-none-any.whl

Total release size: 14.6 kB

Release files / livestt-1.0.7.tar.gz

Download URL livestt-1.0.7.tar.gz
Size 7.7 kB
Tags Source
SHA-256 checksum
How to use checksums
a34884cb885404f422bf2f6cc572eea00afac303941849670680349548626419
BLAKE2b-256 checksum
How to use checksums
7b01e514728fcf1fa444d3e72f70f1d397423b6002a24dfbb1e50cbbbcab3b0c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.9.18

Release files / livestt-1.0.7-py3-none-any.whl

Download URL livestt-1.0.7-py3-none-any.whl
Size 6.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8e2d86b4046ff81f5d8c6b97bd1bde19b284f236a35364a12f3d1aec6c042f8e
BLAKE2b-256 checksum
How to use checksums
37e839538bb6ab135b014fbd7045db18d10989709c9ce32d61f044c3dc9f1db7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.9.18

Security for livestt 1.0.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page