livekit/python-sdks

LiveKit real-time and server SDKs for Python

LiveKit Python SDK

概要 – これは、PythonプログラムをLiveKitサーバー(クラウドホストまたはセルフホスト)に接続し、ビデオ/オーディオルーム内でリアルタイムの参加者として動作できるようにする、Pythonパッケージのペアです。一方のパッケージ(livekit)はリアルタイムクライアントAPIを提供し、もう一方(livekit-api)はトークン生成やRESTスタイルのルーム管理などのサーバーサイドヘルパーを提供します。

重要性 – LiveKitは、低遅延の多者間ビデオ、オーディオ、データストリームのためのプラットフォームです。これらの機能をPythonで公開することで、SDKは以下を簡単に構築できるようにします。

  • AI駆動の音声エージェント(音声からテキスト、LLM駆動の対話、テキストから音声、ターン検出)がライブ通話内で動作します。
  • Pythonコードからメディアを公開または消費する必要があるリアルタイムストリーミングまたはブロードキャストアプリケーション。
  • サーバーAPIを介してルーム、egress/ingress、SIPダイヤル、エージェントディスパッチを調整するカスタムバックエンド。

主要コンポーネント

コンポーネント 目的
livekit LiveKitルームに接続し、オーディオ/ビデオトラックを公開/受信し、イベントを処理し、参加者間のRPCをサポートします。
livekit-api JWTアクセストークンを生成し、非同期のaiohttpを使用してサーバーエンドポイント(ルームの作成/一覧表示、egress、SIP、エージェントディスパッチなど)を呼び出します。
MediaDevices(livekit.rtc内) マイクキャプチャとスピーカー再生のためのsounddeviceライブラリの高レベルラッパーで、内蔵の音響エコーキャンセリング、ノイズ抑制などを備えています。
RPCシステム Pythonコルーチンをリモートメソッドとして登録し、別の参加者から呼び出すことができます。LLM関数呼び出しの転送に便利です。
Agents統合 SDKは、プロバイダーキーを管理せずに内部でSTT、LLM、TTS、ターン検出、ツール使用を行う音声AIボットを実行するための別のLiveKit Agentsフレームワークと組み合わせることができます。

典型的なワークフロー

  1. インストール – pip install livekit livekit-api。
  2. トークンの作成(バックエンド)api.AccessToken()と適切な権限を使用。
  3. 接続 – room = rtc.Room(); await room.connect(url, token)。
  4. メディアの公開 – MediaDevicesを使用してマイクまたはスピーカーを開き、LocalAudioTrack/LocalVideoTrackでソースをラップし、公開します。
  5. イベントの処理 – room.on("track_subscribed", ...)などのコールバックを登録して、リモートストリームを受信します。
  6. オプションのRPC – @room.local_participant.register_rpc_methodでメソッドを登録し、別の参加者からperform_rpcを介して呼び出します。
  7. サーバーサイド管理 – LiveKitAPIを使用してルームの作成、参加者の一覧表示、egress録音の開始、SIP参加者へのダイヤルなどを行います。

例スニペット

# トークンの生成(バックエンド)
from livekit import api
token = api.AccessToken().with_identity("bot").with_grants(
    api.VideoGrants(room_join=True, room="demo")
).to_jwt()

# 接続してマイクを公開
from livekit import rtc
room = rtc.Room()
await room.connect(LIVEKIT_URL, token)

devices = rtc.MediaDevices()
mic = devices.open_input(enable_aec=True, noise_suppression=True)
track = rtc.LocalAudioTrack.create_audio_track("mic", mic.source)
await room.local_participant.publish_track(track)

次にどこへ

  • examples/フォルダを参照してください(基本的なルーム、フェイスランドマーク、hueビデオ、全二重オーディオ)。
  • 音声AIボット(STT/LLM/TTSを組み込んだ)を希望する場合は、LiveKit Agentsのドキュメントを読んでください。
  • サポートや貢献については、LiveKit Slackコミュニティに参加してください。

ライセンス – SDKはMITライセンスの下でリリースされています(リポジトリに記載されています)。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト