AIパーソナル・ラーニング
と実践的なガイダンス
豆包Marscode1

LiveKit: リアルタイムのオーディオおよびビデオアプリケーションを構築するためのオープンソースツール

はじめに

LiveKitは、開発者がリアルタイムのオーディオおよびビデオアプリケーションを構築するのを支援することに焦点を当てたオープンソースプロジェクトです。LiveKitは、Go言語で書かれたスケーラブルなSFU(Selective Forwarding Unit)サーバーとPion WebRTC実装を組み合わせたものです。シンプルでわかりやすく設計されており、小規模なアプリケーションから大規模な会議まで、幅広いシナリオをサポートします。開発者はこれを使用して、ビデオ会議、インタラクティブなライブストリーミング、音声アシスタントなどを素早くセットアップすることができる。また、公式ドキュメントとコミュニティサポートにより、簡単に始めることができます。

LiveKit:构建实时音视频应用的开源工具-1


 

機能一覧

  • リアルタイムのオーディオおよびビデオ通信低遅延のオーディオおよびビデオ通話をサポートします。
  • SFUメディアサーバー選択転送技術により帯域幅を最適化し、大規模アプリケーションのパフォーマンスを向上。
  • マルチプラットフォームSDKクロスプラットフォーム開発を促進するため、JavaScript、iOS、Android、その他のクライアントSDKを提供します。
  • サーバー側のサポートアクセストークンの生成、APIの呼び出し、ウェブフックの受信のためのツールが含まれています。
  • データチャネルテキストやカスタマイズされたデータのリアルタイム伝送をサポートし、インタラクティブなアプリケーションに適しています。
  • クラウドサービスとセルフホストオプションのLiveKitクラウドまたは独自のサーバーをデプロイします。
  • AIインテグレーション音声と映像のAIモデルとの組み合わせをサポートし、知的アシスタントの開発に適しています。

 

ヘルプの使用

LiveKitを使うには、LiveKit Cloudを直接使う方法と、自分でサーバーをデプロイする方法があります。詳しい手順は以下の通りです。

インストールと展開

セルフ・ホストを選択した場合、まずLiveKitサーバーをインストールする必要があります。基本的な手順は以下の通りです:

  1. 環境を整えるお使いのシステムがDockerをサポートし、LinuxまたはmacOSを実行できることを確認してください。
  2. LiveKit CLIのインストールこれはサーバーを管理し、機能をテストするためのコマンドラインツールです。以下のコマンドを実行してください:
curl -sSL https://get.livekit.io | bash

インストールが完了したら livekit-cli --version 成功を確認する。
3. サーバーの起動ターミナルで以下のコマンドを実行し、LiveKitサーバーを開発モードで起動します:

livekit-server --dev

これはローカルサーバーを起動し、デフォルトでは 7880 港。
4. アクセストークンの生成サーバーはトークン認証を必要とします。CLIで生成:

livekit-cli create-token --api-key devkey --api-secret secret --identity user1 --room my-room

出力には、ルームに接続するためのJWTトークンが含まれます。

LiveKit Cloudを使用する場合は、cloud.livekit.ioで直接アカウントを登録し、プロジェクトを作成してから、自分でデプロイせずにAPIキーとキーペアを取得します。

コネクティング・ルーム

部屋の接続は、LiveKit の中核となる操作です。以下はJavaScript SDKの例です:

  1. SDKのインストールプロジェクトで走る:
npm install @livekit/client
  1. 部屋に入る次のコードで接続してください:
import { Room, connect } from '@livekit/client';
const room = new Room();
const token = '你的令牌'; // 从 CLI 或云服务获取
await connect(room, token, { url: 'ws://localhost:7880' });
console.log('已连接到房间');
  1. オーディオとビデオの出版接続後、ローカルカメラとマイクを公開します:
    const localParticipant = room.localParticipant;
    await localParticipant.enableCameraAndMicrophone();
    console.log('开始发布音视频');
    

注目の機能操作

  • リアルタイムデータ伝送オーディオとビデオに加えて、LiveKitはデータ・チャンネルもサポートしています。メッセージを送信するコードは以下の通りです:
    localParticipant.publishData('Hello, everyone!', 'text');
    

    レシーバーは耳を傾ける:

    room.on('dataReceived', (payload, participant) => {
    console.log(`收到消息:${payload},来自 ${participant.identity}`);
    });
    
  • AIインテグレーションLiveKitはAIモデルとのインタフェースをサポートしています。例えば、Python SDKを使ってテキストに音声を変換することができます:
    from livekit import Room
    room = Room()
    await room.connect('ws://localhost:7880', token)
    # 监听音频并处理
    

    Google STTのような音声認識APIと組み合わせることで、リアルタイムの書き起こしが可能になる。

  • 大規模ライブストリーミングOBSからLiveKit Ingressでプッシュ配信:
    1. クラウドコンソールでIngressを作成し、RTMP URLとストリームキーを取得する。
    2. URLを入力し、OBSの設定を入力して、ストリームのプッシュを開始する。
    3. 視聴者はWebRTCを介して低遅延で視聴する。

ワークフロー

  1. 小規模な通話なのか、大規模なライブ放送なのか。
  2. クラウドサービスはコスト削減、セルフホスティングはより柔軟。
  3. 環境の設定:ツールのインストール、キーの取得。
  4. アプリの開発:SDKで部屋を接続し、機能を追加します。
  5. テスト実行:CLIでトラフィックをシミュレートし、その効果を確認する。

LiveKitのドキュメントはdocs.livekit.ioで入手できますし、質問があればSlackのコミュニティに参加して助けを求めることもできます。

 

アプリケーションシナリオ

  1. ビデオ会議
    同社のチームはLiveKitを使って、複数人によるリアルタイムのディスカッションをサポートする社内会議システムを構築している。
  2. 双方向ライブ放送
    ホストはOBSを通じてストリームをプッシュし、視聴者はWebRTCを使ってリアルタイムでインタラクトすることができる。
  3. AI音声アシスタント
    開発者はAIモデルを組み合わせて、話を聞き、話すことができるインテリジェントなカスタマーサービスを実現する。
  4. 遠隔教育
    教師と生徒は、画面共有とリアルタイムの質疑応答をサポートするLiveKitを通じてオンライン授業を行う。

 

品質保証

  1. LiveKitは何人の同時ユーザーをサポートしていますか?
    サーバーの構成や帯域幅にもよるが、数人から数千人までの同時接続をサポートできる。
  2. セルフホスティングに必要なハードウェアは何ですか?
    8GBのRAMを搭載した4コアのサーバーで小規模なアプリケーションを実行できますが、大規模なアプリケーションにはより高い構成が必要です。
  3. LiveKit Cloudは無料ですか?
    無料クレジットが提供され、それを超えるとトラフィックごとに課金されます。livekit.io/pricingを参照してください。
無断転載を禁じます:チーフAIシェアリングサークル " LiveKit: リアルタイムのオーディオおよびビデオアプリケーションを構築するためのオープンソースツール
ja日本語