Skip to main content

A diarization package

Project description

EternalBlue is a project for audio diarization and transcription. It separates speakers in a .wav audio file and returns the diarized and transcribed audio.

Description

EternalBlue is a powerful tool for audio analysis, capable of identifying and separating different speakers in a .wav audio file. Additionally, it performs complete transcription of the spoken content, facilitating the analysis and interpretation of conversations.

Installation

Requirements

  • Python 3.8 or higher

Installation Steps

You can install EternalBlue via pip:

pip install eternalblue

Usage

from eternalblue import EternalBlue
eternal_blue = EternalBlue('', 'portuguese')
eternalresponse = eternal_blue.diarize(audio, 2)

Here’s an example of how to use the EternalBlue class in a Flask application:

from eternalblue import EternalBlue

@app.route('/diarization', methods=['POST'])
def diarization():
    try:
        eternalresponse = {}
        if 'audio' in request.files:
            audio_file = request.files['audio']
            if audio_file.filename != '':
                save_path = os.path.join(AUDIO_PATH, audio_file.filename)
                audio_file.save(save_path)
                eternal_blue = EternalBlue('', 'portuguese')
                eternalresponse = eternal_blue.diarize(save_path, 2)
        return eternalresponse, 200
    except Exception as e:
        print(f"Error: {e}")
        return str(e), 500

Description

The EternalBlue class requires a Hugging Face API key, the language, and optionally the Whisper model in its constructor. The diarize method expects the path to the .wav audio file and the number of speakers.

Constructor Parameters

  • api_key: The Hugging Face API key as a string.

  • language: The language of the audio as a string.

  • whisper_model (optional): The Whisper model to use.

Method diarize

  • audio_file_path: The path to the .wav audio file as a string.

  • num_speakers: The number of speakers as an integer.

Expected Return

The diarize method returns a list of dictionaries containing metadata and transcriptions, formatted as follows:

[
    {
        "metadata": [
            {
                "audioname": "tester.wav",
                "time_type": "seconds"
            }
        ]
    },
    {
        "end": 5.984999999999999,
        "speaker_id": "SPEAKER_01",
        "start": 1.299,
        "text": " Is your name Bento Ferreira, then? Are you Brazilian? Yes, sir."
    },
    {
        "end": 5.934,
        "speaker_id": "SPEAKER_00",
        "start": 5.323,
        "text": " Yes, sir."
    },
    {
        "end": 8.498,
        "speaker_id": "SPEAKER_01",
        "start": 6.851,
        "text": " military police officer, That's it ?."
    },
    {
        "end": 13.829,
        "speaker_id": "SPEAKER_00",
        "start": 9.856,
        "text": " Thank God, after 35 years in the reserve."
    },
    {
        "end": 16.613,
        "speaker_id": "SPEAKER_00",
        "start": 15.645,
        "text": " Mr. Miguel. Miguel! "
    },
    {
        "end": 19.618000000000002,
        "speaker_id": "SPEAKER_00",
        "start": 16.969,
        "text": " Any relation to  James ?"
    },

]

This JSON structure contains the following information for each segment: - metadata: General information about the audio file. - speaker_id: The identifier for the speaker. - start: The start time of the speech segment in seconds. - end: The end time of the speech segment in seconds. - text: The transcribed text of the speech segment.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

eternalblue-1.1.1.tar.gz (6.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

eternalblue-1.1.1-py3-none-any.whl (6.9 kB view details)

Uploaded Python 3

File details

Details for the file eternalblue-1.1.1.tar.gz.

File metadata

  • Download URL: eternalblue-1.1.1.tar.gz
  • Upload date:
  • Size: 6.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.12

File hashes

Hashes for eternalblue-1.1.1.tar.gz
Algorithm Hash digest
SHA256 68adb4c7253dab8138c82a712f61eac89c1080c4fdca2189be4c13cb27f0b5e8
MD5 f0c8cd0faa43c09fb5ede93d901e4bd3
BLAKE2b-256 c7e5a45ab4d3485b25541fe446cef82a38426146ca751c77d9761424f01212ac

See more details on using hashes here.

File details

Details for the file eternalblue-1.1.1-py3-none-any.whl.

File metadata

  • Download URL: eternalblue-1.1.1-py3-none-any.whl
  • Upload date:
  • Size: 6.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.12

File hashes

Hashes for eternalblue-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a5aefb5b69cd4d8475453b7b10e3ad44c8855856c071c5b7183748d0311e2b94
MD5 5ea3ddcded566e3a4cccdb9308376f0c
BLAKE2b-256 74d54e20876519c50fb3d875ae0fa53d27135975b586571ac88504ecdbbbad24

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page