Quick Start¶
Get up and running in under 5 minutes.
Option A - Fasiri Cloud¶
Step 1 - Get a free API key¶
curl -X POST https://fasiri-bu9u.onrender.com/api/v1/auth/keys \
-H "Content-Type: application/json" \
-d '{"name": "quickstart"}'
Copy the api_key from the response.
Step 2 - Install and translate¶
from fasiri import Fasiri
client = Fasiri(api_key="fsri_...")
# English -> Luganda
print(client.translate("Good morning", target="lug")) # Wasuze otya
# English -> Yoruba
print(client.translate("How are you?", target="yo")) # Bawo ni
# English -> Swahili
print(client.translate("Thank you", target="sw")) # Asante
Option B - Direct mode (your own provider keys)¶
No Fasiri account needed. Use your existing Sunbird, Khaya, or HuggingFace keys.
from fasiri import Fasiri
from fasiri.providers import SunbirdProvider, KhayaProvider
client = Fasiri(
providers=[
SunbirdProvider(api_key="eyJ..."), # your Sunbird JWT
KhayaProvider(api_key="your-khaya-key"), # your Khaya key
]
)
print(client.translate("Good morning", target="lug")) # Wasuze otya
print(client.translate("How are you?", target="yo")) # Bawo ni
See Direct Mode for how to get provider keys.
Batch translation¶
results = client.translate_batch([
{"id": "1", "text": "Good morning", "target": "lug"},
{"id": "2", "text": "How are you?", "target": "yo"},
{"id": "3", "text": "Thank you", "target": "tw"},
{"id": "4", "text": "See you later", "target": "sw"},
])
print(f"{results.succeeded}/{results.total} succeeded")
for item in results:
if item.success:
print(f"[{item.id}] {item.translated_text} ({item.provider})")
else:
print(f"[{item.id}] Failed: {item.error}")
Speech¶
# Transcribe audio
stt = client.transcribe("speech.wav", language="lug")
print(stt.transcript)
# Synthesise speech
tts = client.synthesise("Oli otya?", language="lug")
print(tts.audio_url)
Async usage¶
import asyncio
from fasiri import Fasiri
async def main():
async with Fasiri(api_key="fsri_...") as client:
result = await client.async_translate("Good morning", target="lug")
print(result)
asyncio.run(main())
Inspect the result¶
result = client.translate("Hello", target="lug")
print(result.translated_text) # Oli otya
print(result.detected_source_lang) # en
print(result.provider) # sunbird
print(result.model_used) # sunbird/translate
print(result.quality_score) # 0.92
print(result.latency_ms) # 1823
print(result.characters_translated) # 5