AI音声対話アプリを爆速開発!TEN-framework入門


AI音声対話アプリを爆速開発!TEN-framework入門

TEN-framework/ten-framework

2025-09-19

TEN-frameworkは、リアルタイムの音声AIエージェントを構築するためのオープンソースフレームワークです。これを使うと、ビデオや音声を使った対話型AIアプリケーションを簡単に作ることができます。音声認識、自然言語処理、音声合成といった、複数のAI技術を統合して、まるで人間と話しているかのようなスムーズな会話を実現します。

たとえば、次のようなアプリケーションを構築できます。

カスタマーサポートボット
ユーザーからの質問にリアルタイムで回答し、問題解決を支援します。

教育向けAIアシスタント
学習者が発音練習をしたり、質問したりするのを助けます。

バーチャルキャラクター
ゲームやメタバースの世界で、ユーザーと自然に会話するキャラクターを作れます。

通常、音声AIエージェントをゼロから作ろうとすると、音声認識ライブラリ、自然言語理解(NLU)モデル、音声合成ライブラリなどを個別に選定し、連携させる必要があります。これは非常に手間がかかります。

TEN-frameworkは、これらの機能を一つのパッケージに統合してくれているので、開発者は煩雑な統合作業から解放され、アプリケーションのロジックやユーザー体験の向上に集中できます。

このフレームワークは、リアルタイムでの処理に特化して設計されています。音声認識結果がすぐにNLUモデルに渡され、その応答が迅速に音声合成されるため、会話の遅延がほとんどありません。

これは、ユーザーが待たされることなく、ストレスなく会話を続けられるという点で、ユーザー体験を劇的に向上させます。

TEN-frameworkはモジュール式の設計になっています。特定のモジュール(例
音声認識エンジンやNLUモデル)を、プロジェクトの要件に合わせて、別のものに簡単に差し替えることができます。

たとえば、初期はオープンソースのモデルを使っていたけれど、商用サービスに切り替える必要が出た場合でも、コアロジックを大きく変更することなく対応できます。

TEN-frameworkはPythonで書かれており、pipを使って簡単にインストールできます。

まず、Pythonがインストールされていることを確認してください。

ターミナルを開き、以下のコマンドを実行します。

pip install ten-framework

フレームワークは、様々なモジュールと連携します。例えば、音声認識には whisper-onnx、音声合成には xtts-onnx が推奨されています。これらも pip でインストールできます。

pip install "ten-framework[whisper-onnx, xtts-onnx]"

このコマンドは、TEN-framework本体に加えて、推奨される音声認識・合成モデルも一緒にインストールしてくれます。

簡単な「Hello World」的な対話エージェントを作成してみましょう。このコードは、マイクからの入力を受け取り、認識した内容に応じて応答を生成し、それを音声として再生します。

import asyncio
from ten_framework import Agent

# エージェントの作成
agent = Agent()

# 対話フローの定義
# ユーザーの発言を認識して、応答を決定します
async def conversation_flow(agent_context):
    while True:
        # ユーザーの発言を待つ
        print("マイク入力待ち...")
        user_utterance = await agent_context.recognize_speech()
        print(f"ユーザー: {user_utterance}")

        # 応答の決定
        response = ""
        if "こんにちは" in user_utterance:
            response = "こんにちは!何かお手伝いできることはありますか?"
        elif "ありがとう" in user_utterance:
            response = "どういたしまして!"
        else:
            response = "すみません、よく聞き取れませんでした。"

        # 応答を音声で再生
        print(f"エージェント: {response}")
        await agent_context.synthesize_speech(response)

# メイン関数の実行
async def main():
    await agent.run_conversation(conversation_flow)

if __name__ == "__main__":
    asyncio.run(main())

Agent()
TEN-frameworkの核心となる Agent クラスをインスタンス化します。

conversation_flow(agent_context)
実際の対話ロジックを記述する非同期関数です。

agent_context.recognize_speech()
マイクからの音声を認識し、テキストに変換します。

agent_context.synthesize_speech(response)
テキストを音声に変換して再生します。

asyncio.run(main())
非同期処理を開始します。

このシンプルなコードだけで、リアルタイム音声対話の骨組みができてしまいます。あとは、conversation_flow のロジックをより複雑にしたり、外部APIと連携させたりすることで、高度なAIエージェントに進化させることができます。


TEN-framework/ten-framework




【爆速開発】LiveKit Agentsで作る、アサヒ級にキレのあるリアルタイムAIエージェント

「AIとリアルタイムで会話する」という体験を、日本の4大ビールメーカーのブランドイメージになぞらえて、その魅力と実装方法を紐解いていきましょう!LiveKit Agentsを一言で言うと、「超低遅延で動くAIエージェントを爆速で開発できるフレームワーク」です。


AI開発の炎上を鎮火!Genkitで叶える、コード中心のAIアプリケーション構築

炎上プロジェクトにアサインされた君、お疲れ様!「AI機能を組み込め」という無茶振りをされ、途方に暮れているかもしれない。でも安心してほしい。AI開発の複雑な問題を一気に解決してくれる、心強い味方が現れた。それが、今回解説する Genkit だ。


論理的な情報検索を実現:PageIndexによる次世代RAGシステムの構築

PageIndexは、従来のVector-Based RAG (Retrieval-Augmented Generation)とは一線を画す、新しい推論ベースのRAGフレームワークです。従来のRAGでは、ドキュメントを一定のサイズでチャンク(断片)に区切り、それをベクトル化(埋め込み)してデータベースに保存し、質問のベクトルと類似度の高いチャンクを検索していました。


AI-For-Beginnersで学ぶ、エンジニアのキャリアアップ

「microsoft/AI-For-Beginners」は、Microsoftが提供しているAI学習のための無料カリキュラムです。全24レッスン、12週間の構成で、初学者でも無理なくAIの基礎を学べるように設計されています。ソフトウェアエンジニアとしてAIを学ぶことは、以下のような多くのメリットがあります。


エンジニア必見! Open-SWe で始める自動化コーディング

こんにちは!ソフトウェアエンジニアの皆さん、日々の開発業務、お疲れさまです。突然ですが、バグ修正や機能追加、ドキュメントの更新など、開発作業って時間がかかる上に、時に地味で面倒なこともありますよね。もし、その一部を自動で、しかもかなり賢くこなしてくれる「相棒」がいたら、どうでしょう?


Jitsi Meet徹底解説:自社サービスに組み込むビデオ会議の力

「あ、どうもー。大阪府ですわー。お好み焼きとたこ焼きと、あと商売の腕前なら負けへんでー!」「へいへい、大阪さん、今日はJitsi Meetってやつの説明をするんだってさ。気合い入れていこうぜ!」「Jitsi Meetね!ほな、ワイも張り切って説明するでー!このJitsi Meetって、言わば『オンライン会議の万能選手』やねん。手軽にサクッと使えるし、自分でサーバー立ててカスタマイズもできるから、エンジニアさんにはたまらん魅力があるんやで!」


コンテキストスイッチをゼロへ。Open-source AI Coworker「Rowboat」導入ガイド

「投資詐欺に注意」という標語のように、IT業界も「 AI ツールなら何でも魔法のように解決してくれる」という甘い言葉には注意が必要ですが、この Rowboat は、エンジニアにとってかなり「堅実で実利のある」ツールになり得るポテンシャルを秘めています。


ソフトウェアエンジニア必見!CrewAIでAIを協調させる方法

今回は、ソフトウェアエンジニアのみんなに超ホットなライブラリを紹介するぜ。その名も. .. CrewAI!CrewAIは、AIエージェントたちをDJのように華麗にミックスして、ひとつのクルーとして協調させるためのフレームワークなんだ。ただのAIじゃなくて、それぞれの得意分野を持ったプロフェッショナルたちを束ねて、まるでチーム開発みたいに複雑なタスクをこなさせることができるんだぜ。


ディフュージョンモデルGUI「ComfyUI」:魔法の呪文で画像を創る!

ComfyUIは、まるで魔法少女が魔法のアイテムを使って呪文を唱えるように、画像を生成するAIモデル「Diffusion Model」を直感的に操作できるグラフィカルユーザーインターフェース(GUI)です。通常の画像生成AIは、呪文(プロンプト)を入力するだけでもすごいのですが、ComfyUIを使うと、まるで魔法の回路図を描くように、様々な処理を組み合わせてもっと複雑で美しい画像を、まるで自分の手で描いたかのように作れてしまうんです!


1コイン(無料)で始める AI エージェント統合プラットフォーム:AionUi 導入戦記

AionUi について興味を持ってくれて嬉しいよ。これは一言で言うと、CLI(コマンドライン)ベースのAIエージェントたちに、「最高に使いやすいコックピット(GUI)」を後付けしてくれるオープンソースプロジェクトなんだ。最近、Claude Code や Goose CLI みたいに、ターミナルで爆速で動くAIツールが増えているよね。でも、「ずっと黒い画面だと疲れるな」とか「チャット履歴をもっと直感的に管理したい」って思うこともあるはず。そこを解決するのがこのツールさ。