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の幻覚を防げ!git-mcpで実現する信頼性の高いコード生成

しかしながら、idosal/git-mcp について、ソフトウェアエンジニアの視点から、その有用性、導入方法、サンプルコードを分かりやすく、丁寧にご説明することは可能です。idosal/git-mcp は、GitHub プロジェクト向けのオープンソースなリモートサーバーです。その目的は、AIによるコード生成における「幻覚(Hallucination)」、つまり事実に基づかない誤ったコードの生成を防ぐことです。


[CLI x TypeScript x AI] 開発者のための次世代要約ツール「summarize」導入ガイド

今回紹介するのは、膨大な情報という名の「怪人」を一瞬で撃破する強力な武器、summarize(steipete/summarize)だ!エンジニアにとって「時間は正義」。さあ、その使い方をレクチャーするぜ!こいつは、Webサイト、YouTube、ポッドキャスト、さらにはローカルのファイルまで、あらゆる情報を「一瞬で要約」してくれる、TypeScript製の強力なCLIツールだ。


ソフトウェアエンジニア必見!mishushakov/llm-scraper徹底解説

一言で言うとね、この llm-scraper は、「どんなウェブページも、AIの力で自動的に、しかも賢く、整理されたデータに変えてくれる魔法のツール」 なんだ!例えるなら、醤油ラーメン (既存のスクレイピングツール)具材(データ)の場所が明確に決まっていて、レシピ(コード)通りに正確に盛り付ける(抽出する)のが得意。でも、新しい具材(ウェブサイトの構造変更)が出てくると、レシピをイチから見直さないといけない手間があるんだ。


CursorやLangChainを使いこなせ!エンジニアの価値を最大化するAI活用ロードマップ

今日は、中国のスーパーエンジニア「魚皮(Yupi)」さんが公開している最強のAIリソース集 「liyupi/ai-guide」 について解説しちゃうわね。「AIが多すぎて何から手をつければいいの!?」ってパニックになってるそこの君、落ち着いて。このリソースは、エンジニアにとっての「宝の地図」みたいなものなんだから!


コントで学ぶInsForge:AIにDBもAuthも丸投げして、人間は価値創造に集中せよ

「InsForge」についてですね。これ、一言で言うと「AIエージェントに『手』と『脳(コンテキスト)』を授ける、次世代のバックエンド・プラットフォーム」です。ソフトウェアエンジニアの視点から、その凄さと使い方をコント仕立ての運勢と共にお届けします!


ソフトウェアエンジニア必見!リアルタイム物体検出NVR「Frigate」活用術

frigateは、IPカメラ用のNVR (Network Video Recorder) だ。だが、ただのNVRじゃねぇ。こいつの真骨頂は、リアルタイムのAIによるオブジェクト検出にある。つまり、カメラの映像から、人間、車、猫といった特定の物体を瞬時に見つけ出すことができるんだ。


【エンジニア向け】デスクトップAIアシスタント「DearVa/Everywhere」の価値とサンプルコード

さて、今回ご紹介する「DearVa/Everywhere」ですが、これはソフトウェアエンジニアの皆様にとって、まさに「デスクの上に置ける、気が利くAIアシスタント」になり得る、非常に興味深いツールです。まず、このツールの本質をご説明します。


AIとの禁断の関係?システムプロンプトでAIを操る方法

この「x1xhlol/system-prompts-and-models-of-ai-tools」は、色々なAIツール(CursorとかDevinとかReplit Agentとか、数えきれないほどのAI界のイケメン・美女たち)が裏でどんな「システムプロンプト」(AIへの指示書みたいなもの)を使っているか、そしてどんなAIモデルが動いているのかを、こっそり教えてくれちゃう宝の山なんです!