百聆 (Bailing) レビュー: FunASR + DeepSeek + edge-tts で組む低遅延音声対話
百聆 是一个类似GPT-4o的语音对话机器人,通过ASR+LLM+TTS实现,集成DeepSeek R1等优秀大模型,接入openClaw,真正的个人语音助手,时延低至800ms,Mac等低配置也可运行,支持打断
ひと目でわかる
- これは何?
- ASR、VAD、LLM、TTS を疎結合に並べ、割り込み制御を Robot 層に集約した Python 製の音声アシスタント。GPU なしを狙う設計と、その代わりに受け入れる制約を README から読み解く。
- 誰に向いている?
- 向いているのは、GPU なしの端末や 4.2 程度のサーバーで音声対話の実験環境を組みたい個人開発者、および ASR/LLM/TTS を差し替えながら割り込み挙動を検証したい人。逆に、README の免責事項が「個人用途」「商用・本番非対応」「技術サポートなし」と明記している以上、そのまま業務システムへ組み込む用途には向かない。
- 商用利用できる?
- できます。MIT は寛容なライセンスで、著作権表示とライセンス表示を残せば、使用・改変・販売が可能です。
- 今もメンテナンスされている?
- されています。最後のコミットは 163 日前です。
- 何の言語で書かれている?
- 主に Python です(GitHub の言語統計による)。
回答はプロジェクトの GitHub データ(最終同期:2026年9月15日)と当サイトの分析に基づくもので、法的助言ではありません。
オープンソース詳細解説
百聆が埋めようとしている穴は「会話の途中で黙らせられない」問題
音声アシスタントの実装で厄介なのは、認識精度でも文章生成の質でもなく、再生と入力が同時に起きる瞬間の処理である。ユーザーが話し始めたのに TTS が最後まで読み上げてしまう、あるいは逆に早すぎるタイミングで切ってしまい文の頭が欠ける。百聆はこの部分を独立した Robot 層に切り出し、再生状態と発話状態の組み合わせで振る舞いを定義している。README に載っている表は 4 行だけで、再生中かつ未発話は正常、再生中かつ発話は割り込み、未再生かつ未発話は正常、未再生かつ発話は VAD 判定と ASR 認識、という仕分けになっている。地味だが、この表がプロジェクトの性格を決めている。対象読者は、音声対話のパイプラインを自分で組み立てていて、割り込みの分岐をどこに置くかで悩んでいる開発者である。
4 つの部品を直列につなぐだけの構成と、その素直さ
処理の流れは README の手順に沿っており、FunASR が音声をテキストへ変換し、silero-vad が有効な発話区間だけを通し、DeepSeek が応答テキストを生成し、edge-tts、Kokoro-82M、ChatTTS、macOS の say のいずれかが音声へ戻す。VAD を ASR の前段に置くのは、無音区間を認識器に渡さないための素直な設計だ。読みどころは TTS の選択肢の広さで、edge-tts と Kokoro-82M と ChatTTS と macOS say が並記されている。つまり音質と依存関係の重さをトレードオフとして選べる。LLM 側も DeepSeek を既定としつつ、README は OpenAI、Qwen、Gemini、01yi を設定で差し替え可能と書いている。モジュール間が独立しているという主張は、この差し替え可能性の説明と一致している。
導入は requirements.txt 2 本と config 配下の 3 ファイルに集約される
手順は README に明示されている。git clone https://github.com/wwbin2017/bailing.git の後、pip install -r requirements.txt と pip install -r third_party/OpenManus/requirements.txt の 2 回。設定は config/config.yaml に ASR と LLM を書き、SenseVoiceSmall を models/SenseVoiceSmall へダウンロードし、DeepSeek の api_key を platform.deepseek.com で取得する。AIGC の汎用ツールを使う場合は third_party/OpenManus/config/config.toml の model、base_url、api_key を埋め、OpenClaw 連携には config/.env の認証情報が要る。実行はローカルなら python main.py、サーバー運用なら openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes で自己署名証明書を作り python server.py を起動、ブラウザで http://localhost:8000 を開く。README はサーバー運用を推奨し、移動端末からの対話を想定している。設定ファイルが 3 か所に散っている点は、初回導入で最も迷いやすい箇所だ。
aigc ツールは README 自身が「テスト中」と書いている
ツール一覧には get_weather、ielts_speaking_practice、get_day_of_week、schedule_task、open_application、web_search、aigc の 7 つが並ぶ。このうち aigc は「接入 openclaw」と説明され、あらゆるタスクを実行する汎用型として位置づけられている。しかしインストール手順の同じ節に「如果需要使用通用AIGC配置(测试中),不可用的话,可以使用tag 分支 v0.0.1 v0.0.2」とあり、動作しない場合は古いタグへ戻すよう案内している。つまり最新の v0.0.3 で追加された AIGC 経路は、作者自身が未安定と認めている。OpenClaw を中核の実行層と位置づける README の主張と、この但し書きは温度差がある。まず v0.0.1 か v0.0.2 で音声対話の骨格を確認し、後から AIGC を有効化する進め方が安全だ。
800ms という数字と、GPU なしという主張をどう扱うか
README は端到端時延 800ms と書き、GPU 不要で Mac などの低構成でも動くとしている。ただしこの 800ms がどのハードウェア、どの TTS、どのモデルでの計測なのかは記述からは分からない。TTS の選択肢が 4 つあり、LLM も差し替え可能な構成で、遅延が一意に決まるはずがない。加えてクラウド API である DeepSeek を経由する以上、ネットワーク往復が下限を支配する。GPU なしで動くという主張も、FunASR の SenseVoiceSmall をローカルで回す以上、CPU 性能とメモリ量に強く依存する。README の免責事項が「データ丢失、系统故障」の可能性に言及し、いかなる保証もしないと明記している点も合わせて読むべきだ。数字は目標値として受け取り、自分の環境で測る以外に確かめる方法はない。
OpenClaw を前提に据える設計は、依存先を 1 つに寄せる選択でもある
README には「为什么重点支持 OpenClaw」という節があり、自然言語の要求を実行可能なタスクへ変換し、検索や分析、操作を呼び出し、複数手順の処理を担う層として説明されている。ツール呼び出しの抽象化を自前で持たず、外部の Agent 実行層に委ねる判断だ。利点は実装量の削減で、欠点は OpenClaw 側の仕様変更や認証方式の変更がそのまま百聆の設定に波及すること。config/.env に OpenClaw の認証を書く手順がインストールに含まれている事実が、その結合度を示している。同種の構成としては、ツール呼び出しを自前の関数定義と JSON スキーマで完結させる設計も一般的で、その場合は外部 Agent に依存せずデバッグ経路を自分で握れる代わりに、多段タスクの調整を自分で書くことになる。どちらが優れているという話ではなく、障害時にどこを疑うかが変わる。
ライセンスは MIT、ただし README の免責事項が用途を狭めている
ライセンスは MIT で、README も「自由に使用、変更、配布できるが元のライセンス表示を保持する必要がある」と説明している。法的な判断はここでは扱わないが、実務上見落とせないのは、同じ README の免責事項が「個人の学習と研究のみ」「商用または本番環境には適さない」「いかなる技術サポートや保証も提供しない」と明記している点だ。MIT の許諾範囲と、作者が想定する用途の表明は別物であり、後者が前者より狭い。第三者の構成要素も確認が要る。FunASR、silero-vad、ChatTTS、Kokoro-82M、edge-tts、DeepSeek はそれぞれ別の配布元と条件を持ち、百聆の MIT はそれらを自動的に覆わない。リリースは v0.0.1 が 2024-10-04、v0.0.2 が 2025-03-14、v0.0.3 が 2025-05-31 で、いずれも 0.x 系である。
編集部の結論
向いているのは、GPU なしの端末や 4.2 程度のサーバーで音声対話の実験環境を組みたい個人開発者、および ASR/LLM/TTS を差し替えながら割り込み挙動を検証したい人。逆に、README の免責事項が「個人用途」「商用・本番非対応」「技術サポートなし」と明記している以上、そのまま業務システムへ組み込む用途には向かない。導入前に確認すべきは、config/config.yaml の ASR と LLM の指定、models/SenseVoiceSmall の配置、config/.env の OpenClaw 認証、そして aigc ツールが README 上で「テスト中」とされている点である。まず v0.0.1 か v0.0.2 のタグで動かし、aigc を外した状態で割り込みと応答遅延を自分の環境で測ってから、v0.0.3 の AIGC 経路を足す順序が現実的だ。
コミュニティノート