Skip to main content

AssemblyAI AssemblyAI

The AssemblyAISTTService provides real-time speech-to-text transcription using AssemblyAI's streaming WebSocket API. It's optimized for high accuracy and supports features like transcript formatting and end-of-turn detection.

Installation

To use AssemblyAI, install the required dependencies:

pip install "piopiy-ai[assemblyai]"

Prerequisites

  • An AssemblyAI account and API key (Get yours here).
  • Set your API key in your environment:
    export ASSEMBLYAI_API_KEY="your_api_key_here"

Configuration

AssemblyAISTTService Parameters

ParameterTypeDefaultDescription
api_keystrRequiredYour AssemblyAI API key.
languageLanguageLanguage.ENTranscription language.
api_endpoint_base_urlstrwss://streaming.assemblyai.com/v3/wsWebSocket endpoint URL.
connection_paramsAssemblyAIConnectionParamsAssemblyAIConnectionParams()Advanced connection settings.
vad_force_turn_endpointboolTrueForce end-of-turn on VAD stop.

AssemblyAIConnectionParams

ParameterTypeDefaultDescription
sample_rateint16000Audio sample rate in Hz.
encodingstr"pcm_s16le"Audio encoding format (pcm_s16le, pcm_mulaw).
formatted_finalsboolTrueEnable transcript formatting (punctuation, casing).
speech_modelstr"universal-streaming-english"Transcription model to use.

Usage

Basic Setup

import os
from piopiy.services.assemblyai.stt import AssemblyAISTTService

stt = AssemblyAISTTService(
api_key=os.getenv("ASSEMBLYAI_API_KEY"),
)

With Custom Parameters

from piopiy.services.assemblyai.stt import AssemblyAISTTService
from piopiy.services.assemblyai.models import AssemblyAIConnectionParams

params = AssemblyAIConnectionParams(
sample_rate=16000,
formatted_finals=True,
speech_model="universal-streaming-english"
)

stt = AssemblyAISTTService(
api_key=os.getenv("ASSEMBLYAI_API_KEY"),
connection_params=params
)

Notes

  • Language Support: Currently, AssemblyAI's streaming API is optimized for English.
  • Barge-in: Works seamlessly with Piopiy's built-in VAD for interruptible conversations.