Skip to main content

Python SDK for Bhashini inference APIs with unified support for ASR, NMT, TTS, OCR, NER, speaker services, normalization, and image-language workflows.

Project description

Bhashini Client SDK (Python)

bhashini-client-sdk is a Python SDK for working with Bhashini inference APIs through a unified BhashiniClient.

It provides a clean interface for speech, text, speaker, normalization, OCR, and image-language workflows while keeping validation, payload construction, model routing, and response parsing inside dedicated service modules.

Overview

Supported service categories:

Category Services
Speech / Audio ASR, TTS, Audio Language Detection, Speaker Diarization, Speaker Enrollment, Speaker Verification, Voice Cloning, Denoiser
Text NMT, Transliteration, Text Language Detection, Text Normalization, Inverse Text Normalization, NER
Vision OCR, Image Language Detection

Each service includes:

  • input validation
  • payload construction
  • API dispatch through a shared request handler
  • response parsing into simple SDK outputs

Installation

Requirements:

  • Python 3.8+

Install from PyPI:

pip install bhashini-client-sdk

Authentication

Set the API key through BHASHINI_API_KEY or pass it directly to the client.

Environment variable:

$env:BHASHINI_API_KEY="your_api_key"

Or in code:

from bhashini_client import BhashiniClient

client = BhashiniClient(api_key="your_api_key")

Quick Start

from bhashini_client import BhashiniClient

client = BhashiniClient()

print(client.text_language_detection("Hello world"))
print(client.nmt("Hello", "en", "hi"))
print(client.tts("Hello from Bhashini", "en", output_file="output.wav"))
print(client.asr(r"C:\path\sample.wav", "hi"))

Public Client Methods

Method Purpose Return Type
client.asr(audio_input, source_lang) Speech to text str transcription
client.nmt(text, source_lang, target_lang) Translation str translated text
client.tts(text, source_lang, gender="female", output_file="output.wav") Text to speech output file path str
client.transliteration(text, source_lang, target_lang) Script conversion transliterated text str
client.text_language_detection(text) Text language detection language code str
client.audio_language_detection(audio_input) Audio language detection language code str
client.ocr(image_path, source_lang) OCR from local image extracted text str
client.ner(text, source_lang) Named entity recognition dict with entities
client.speaker_diarization(audio_input) Speaker segmentation list of speaker blocks
client.speaker_enrollment(audio_input, speaker_name) Speaker profile creation speaker ID str
client.speaker_verification(audio_input, speaker_id) Speaker verification verification result
client.voice_cloning(text, ref_text, ref_audio_input, source_lang="te", output_file="voice_clone_output.wav") Voice cloning output file path str
client.image_language_detection(image_input) Image language detection language code str
client.text_normalization(text, source_lang="en") Text normalization normalized text str
client.inverse_text_normalization(text, source_lang="en") ITN normalized text str
client.denoiser(audio_input, output_file="denoised_output.wav") Audio denoising output file path str or audio URI str

Service Highlights

ASR

  • Supports local WAV input, base64 audio, and audio URI input
  • Supports validated pre-processors: vad, denoiser
  • Supports post-processors: itn, punctuation
  • Automatically normalizes mismatched WAV sampling rates to 16000 Hz before dispatch

NMT

  • Supports translation across validated language pairs
  • Supports optional glossary, domain, gender, enable_number_translation, and profanity_filter
  • Supports pre_processors=["html"]
  • Supports post_processors=["glossary"]

TTS

  • Generates WAV output files through the public client
  • Advanced service usage supports speed, speaker_name, text_normalization, profanity_filter, and return_base64

Transliteration

  • Supports suggestion count, sentence mode, and numeric_transliteration

Text Language Detection

  • Detects the top language code from input text

Audio Language Detection

  • Supports local WAV input, base64 audio, and audio URI input
  • Automatically normalizes mismatched WAV sampling rates to 16000 Hz before dispatch

OCR

  • Extracts text from a local image file

NER

  • Extracts named entities and returns a normalized {"entities": [...]} structure

Speaker Services

  • Enrollment supports local audio, base64 audio, and audio URI input
  • Verification supports local audio, base64 audio, and audio URI input
  • Diarization returns speaker segments with timestamps

Voice Cloning

  • Generates speech from reference text and reference audio

Image Language Detection

  • Supports local image path, public image URL, and base64 image content

Text Normalization and ITN

  • Dedicated normalization endpoints for written-form cleanup and inverse text normalization

Denoiser

  • Supports local audio, base64 audio, and audio URI input

Model Discovery

from bhashini_client import get_models_info, get_available_models

print(get_models_info("asr"))
print(get_available_models("asr", language="hi"))
print(get_available_models("nmt", language=("en", "hi")))
print(get_available_models("tts", language="en"))

Error Handling

Services return structured string errors with these prefixes:

  • Input Error:
  • Validation Error:
  • API Error:

Package Contents

  • bhashini_client.BhashiniClient
  • bhashini_client.get_models_info
  • bhashini_client.get_available_models

License

MIT

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

bhashini_client_sdk-0.2.2.tar.gz (37.3 kB view details)

Uploaded Source

Built Distribution

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

bhashini_client_sdk-0.2.2-py3-none-any.whl (33.9 kB view details)

Uploaded Python 3

File details

Details for the file bhashini_client_sdk-0.2.2.tar.gz.

File metadata

  • Download URL: bhashini_client_sdk-0.2.2.tar.gz
  • Upload date:
  • Size: 37.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for bhashini_client_sdk-0.2.2.tar.gz
Algorithm Hash digest
SHA256 5e1826f668262f53aab3200aef3a0fbc22e29d231aa6eda714e860746d818365
MD5 17b926a67b6c1f1c550f569e48344181
BLAKE2b-256 0b9b6741526a89c26358ce7132e1c8e89fb1047c399ab6d74e45fcad0c66f6b3

See more details on using hashes here.

File details

Details for the file bhashini_client_sdk-0.2.2-py3-none-any.whl.

File metadata

File hashes

Hashes for bhashini_client_sdk-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 170aea33f5a4cb14faf0f60a58c22720004672942495fbe9ac3350a4f2b5099c
MD5 50eeb594d849482dda0c789e31ed3ce4
BLAKE2b-256 53a85a9468f979068f0cde988fa1c1872740425b0bb329ac6fdb1dd33039dd77

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