{"id":2193,"date":"2026-03-08T17:57:03","date_gmt":"2026-03-08T09:57:03","guid":{"rendered":"https:\/\/yushuoxin.top\/?p=2193"},"modified":"2026-07-21T17:56:19","modified_gmt":"2026-07-21T09:56:19","slug":"bk7258-ai","status":"publish","type":"post","link":"https:\/\/yushuoxin.top\/index.php\/2026\/03\/08\/bk7258-ai\/","title":{"rendered":"\u57fa\u4e8e\u535a\u901aBK7258 AI\u5f00\u53d1\u677f\u7684AI\u60c5\u611f\u966a\u4f34\u673a\u5668\u4eba"},"content":{"rendered":"\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_72 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/yushuoxin.top\/index.php\/2026\/03\/08\/bk7258-ai\/#1_%E8%83%8C%E6%99%AF%E4%B8%8E%E4%BB%B7%E5%80%BC\" title=\"1. \u80cc\u666f\u4e0e\u4ef7\u503c\">1. \u80cc\u666f\u4e0e\u4ef7\u503c<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/yushuoxin.top\/index.php\/2026\/03\/08\/bk7258-ai\/#2_%E6%8A%80%E6%9C%AF%E6%96%B9%E6%A1%88\" title=\"2. \u6280\u672f\u65b9\u6848\">2. \u6280\u672f\u65b9\u6848<\/a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/yushuoxin.top\/index.php\/2026\/03\/08\/bk7258-ai\/#21_%E6%A6%82%E8%BF%B0\" title=\"2.1 \u6982\u8ff0\">2.1 \u6982\u8ff0<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/yushuoxin.top\/index.php\/2026\/03\/08\/bk7258-ai\/#211_%E8%83%8C%E6%99%AF\" title=\"2.1.1 \u80cc\u666f\">2.1.1 \u80cc\u666f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/yushuoxin.top\/index.php\/2026\/03\/08\/bk7258-ai\/#212_%E7%A1%AC%E4%BB%B6%E5%B9%B3%E5%8F%B0\" title=\"2.1.2 \u786c\u4ef6\u5e73\u53f0\">2.1.2 \u786c\u4ef6\u5e73\u53f0<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/yushuoxin.top\/index.php\/2026\/03\/08\/bk7258-ai\/#213_%E8%BD%AF%E4%BB%B6%E6%A1%86%E6%9E%B6\" title=\"2.1.3 \u8f6f\u4ef6\u6846\u67b6\">2.1.3 \u8f6f\u4ef6\u6846\u67b6<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/yushuoxin.top\/index.php\/2026\/03\/08\/bk7258-ai\/#22_%E6%A0%B8%E5%BF%83%E5%8A%9F%E8%83%BD\" title=\"2.2 \u6838\u5fc3\u529f\u80fd\">2.2 \u6838\u5fc3\u529f\u80fd<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/yushuoxin.top\/index.php\/2026\/03\/08\/bk7258-ai\/#221_%E8%AF%AD%E9%9F%B3%E5%94%A4%E9%86%92\" title=\"2.2.1 \u8bed\u97f3\u5524\u9192\">2.2.1 \u8bed\u97f3\u5524\u9192<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/yushuoxin.top\/index.php\/2026\/03\/08\/bk7258-ai\/#222_%E8%AF%AD%E9%9F%B3%E5%AF%B9%E8%AF%9D%EF%BC%88%E6%96%B9%E6%A1%88A%EF%BC%89\" title=\"2.2.2 \u8bed\u97f3\u5bf9\u8bdd\uff08\u65b9\u6848A\uff09\">2.2.2 \u8bed\u97f3\u5bf9\u8bdd\uff08\u65b9\u6848A\uff09<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/yushuoxin.top\/index.php\/2026\/03\/08\/bk7258-ai\/#223_%E5%A4%9A%E6%A8%A1%E6%80%81%E4%BA%A4%E4%BA%92%EF%BC%88%E6%96%B9%E6%A1%88B%EF%BC%89\" title=\"2.2.3 \u591a\u6a21\u6001\u4ea4\u4e92\uff08\u65b9\u6848B\uff09\">2.2.3 \u591a\u6a21\u6001\u4ea4\u4e92\uff08\u65b9\u6848B\uff09<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/yushuoxin.top\/index.php\/2026\/03\/08\/bk7258-ai\/#224_%E9%95%BF%E6%9C%9F%E8%AE%B0%E5%BF%86%E7%B3%BB%E7%BB%9F\" title=\"2.2.4 \u957f\u671f\u8bb0\u5fc6\u7cfb\u7edf\">2.2.4 \u957f\u671f\u8bb0\u5fc6\u7cfb\u7edf<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/yushuoxin.top\/index.php\/2026\/03\/08\/bk7258-ai\/#225_%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5\" title=\"2.2.5 \u7f51\u7edc\u8fde\u63a5\">2.2.5 \u7f51\u7edc\u8fde\u63a5<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/yushuoxin.top\/index.php\/2026\/03\/08\/bk7258-ai\/#226_%E9%9F%B3%E9%A2%91%E5%A4%84%E7%90%86\" title=\"2.2.6 \u97f3\u9891\u5904\u7406\">2.2.6 \u97f3\u9891\u5904\u7406<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/yushuoxin.top\/index.php\/2026\/03\/08\/bk7258-ai\/#227_LED%E7%8A%B6%E6%80%81%E6%8C%87%E7%A4%BA\" title=\"2.2.7 LED\u72b6\u6001\u6307\u793a\">2.2.7 LED\u72b6\u6001\u6307\u793a<\/a><\/li><\/ul><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/yushuoxin.top\/index.php\/2026\/03\/08\/bk7258-ai\/#3_%E6%96%B9%E6%A1%88%E5%AE%9E%E7%8E%B0%E8%AE%B0%E5%BD%95\" title=\"3. \u65b9\u6848\u5b9e\u73b0\u8bb0\u5f55\">3. \u65b9\u6848\u5b9e\u73b0\u8bb0\u5f55<\/a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/yushuoxin.top\/index.php\/2026\/03\/08\/bk7258-ai\/#31_BK7258%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA\" title=\"3.1 BK7258\u5f00\u53d1\u73af\u5883\u642d\u5efa\">3.1 BK7258\u5f00\u53d1\u73af\u5883\u642d\u5efa<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/yushuoxin.top\/index.php\/2026\/03\/08\/bk7258-ai\/#311_%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B%E6%8C%87%E5%8D%97\" title=\"3.1.1 \u5feb\u901f\u4e0a\u624b\u6307\u5357\">3.1.1 \u5feb\u901f\u4e0a\u624b\u6307\u5357<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"https:\/\/yushuoxin.top\/index.php\/2026\/03\/08\/bk7258-ai\/#312_%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA\" title=\"3.1.2 \u5f00\u53d1\u73af\u5883\u642d\u5efa\">3.1.2 \u5f00\u53d1\u73af\u5883\u642d\u5efa<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-19\" href=\"https:\/\/yushuoxin.top\/index.php\/2026\/03\/08\/bk7258-ai\/#3121_Armino_AIDK_SDK%E4%BB%A3%E7%A0%81%E4%B8%8B%E8%BD%BD\" title=\"3.1.2.1 Armino AIDK SDK\u4ee3\u7801\u4e0b\u8f7d\">3.1.2.1 Armino AIDK SDK\u4ee3\u7801\u4e0b\u8f7d<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-20\" href=\"https:\/\/yushuoxin.top\/index.php\/2026\/03\/08\/bk7258-ai\/#3122_Docker%E7%8E%AF%E5%A2%83%E9%83%A8%E7%BD%B2\" title=\"3.1.2.2 Docker\u73af\u5883\u90e8\u7f72\">3.1.2.2 Docker\u73af\u5883\u90e8\u7f72<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-21\" href=\"https:\/\/yushuoxin.top\/index.php\/2026\/03\/08\/bk7258-ai\/#3123_%E8%BF%9B%E8%A1%8C%E7%BC%96%E8%AF%91\" title=\"3.1.2.3 \u8fdb\u884c\u7f16\u8bd1\">3.1.2.3 \u8fdb\u884c\u7f16\u8bd1<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-22\" href=\"https:\/\/yushuoxin.top\/index.php\/2026\/03\/08\/bk7258-ai\/#313_%E8%BD%AF%E4%BB%B6%E7%83%A7%E5%BD%95%E5%88%9D%E5%B0%9D%E8%AF%95\" title=\"3.1.3 \u8f6f\u4ef6\u70e7\u5f55\u521d\u5c1d\u8bd5\">3.1.3 \u8f6f\u4ef6\u70e7\u5f55\u521d\u5c1d\u8bd5<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-23\" href=\"https:\/\/yushuoxin.top\/index.php\/2026\/03\/08\/bk7258-ai\/#3131_%E5%AE%89%E8%A3%85%E7%83%A7%E5%BD%95%E5%B7%A5%E5%85%B7\" title=\"3.1.3.1 \u5b89\u88c5\u70e7\u5f55\u5de5\u5177\">3.1.3.1 \u5b89\u88c5\u70e7\u5f55\u5de5\u5177<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-24\" href=\"https:\/\/yushuoxin.top\/index.php\/2026\/03\/08\/bk7258-ai\/#3132_%E7%BC%96%E8%AF%91%E7%89%B9%E5%AE%9A%E9%A1%B9%E7%9B%AE\" title=\"3.1.3.2 \u7f16\u8bd1\u7279\u5b9a\u9879\u76ee\">3.1.3.2 \u7f16\u8bd1\u7279\u5b9a\u9879\u76ee<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-25\" href=\"https:\/\/yushuoxin.top\/index.php\/2026\/03\/08\/bk7258-ai\/#3133_%E8%BF%9B%E8%A1%8C%E7%83%A7%E5%BD%95\" title=\"3.1.3.3 \u8fdb\u884c\u70e7\u5f55\">3.1.3.3 \u8fdb\u884c\u70e7\u5f55<\/a><\/li><\/ul><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-26\" href=\"https:\/\/yushuoxin.top\/index.php\/2026\/03\/08\/bk7258-ai\/#32_%E5%9F%BA%E4%BA%8E%E5%A4%9A%E6%A8%A1%E6%80%81%E5%BC%80%E5%8F%91%E5%A5%97%E4%BB%B6%E7%9A%84%E5%8A%9F%E8%83%BD%E5%BC%80%E5%8F%91%EF%BC%88%E6%96%B9%E6%A1%88A%EF%BC%89\" title=\"3.2 \u57fa\u4e8e\u591a\u6a21\u6001\u5f00\u53d1\u5957\u4ef6\u7684\u529f\u80fd\u5f00\u53d1\uff08\u65b9\u6848A\uff09\">3.2 \u57fa\u4e8e\u591a\u6a21\u6001\u5f00\u53d1\u5957\u4ef6\u7684\u529f\u80fd\u5f00\u53d1\uff08\u65b9\u6848A\uff09<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-27\" href=\"https:\/\/yushuoxin.top\/index.php\/2026\/03\/08\/bk7258-ai\/#321_%E8%BD%AF%E4%BB%B6%E5%8A%9F%E8%83%BD%E5%AE%9E%E7%8E%B0%EF%BC%9A%E7%99%BE%E7%82%BC%E5%A4%9A%E6%A8%A1%E6%80%81%E4%BA%A4%E4%BA%92%E5%BC%80%E5%8F%91%E5%A5%97%E4%BB%B6%E5%BC%80%E9%80%9A\" title=\"3.2.1 \u8f6f\u4ef6\u529f\u80fd\u5b9e\u73b0\uff1a\u767e\u70bc\u591a\u6a21\u6001\u4ea4\u4e92\u5f00\u53d1\u5957\u4ef6\u5f00\u901a\">3.2.1 \u8f6f\u4ef6\u529f\u80fd\u5b9e\u73b0\uff1a\u767e\u70bc\u591a\u6a21\u6001\u4ea4\u4e92\u5f00\u53d1\u5957\u4ef6\u5f00\u901a<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-28\" href=\"https:\/\/yushuoxin.top\/index.php\/2026\/03\/08\/bk7258-ai\/#322_%E4%B8%8B%E8%BD%BD%E5%A4%9A%E6%A8%A1%E6%80%81%E4%BA%A4%E4%BA%92%E5%BC%80%E5%8F%91%E5%A5%97%E4%BB%B6SDK\" title=\"3.2.2 \u4e0b\u8f7d\u591a\u6a21\u6001\u4ea4\u4e92\u5f00\u53d1\u5957\u4ef6SDK\">3.2.2 \u4e0b\u8f7d\u591a\u6a21\u6001\u4ea4\u4e92\u5f00\u53d1\u5957\u4ef6SDK<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-29\" href=\"https:\/\/yushuoxin.top\/index.php\/2026\/03\/08\/bk7258-ai\/#323_%E7%A1%AC%E4%BB%B6%E9%9B%86%E6%88%90%EF%BC%9A%E5%A4%9A%E6%A8%A1%E6%80%81%E4%BA%A4%E4%BA%92%E5%BC%80%E5%8F%91%E5%A5%97%E4%BB%B6SDK%E9%9B%86%E6%88%90%E5%88%B0BK7258\" title=\"3.2.3 \u786c\u4ef6\u96c6\u6210\uff1a\u591a\u6a21\u6001\u4ea4\u4e92\u5f00\u53d1\u5957\u4ef6SDK\u96c6\u6210\u5230BK7258\">3.2.3 \u786c\u4ef6\u96c6\u6210\uff1a\u591a\u6a21\u6001\u4ea4\u4e92\u5f00\u53d1\u5957\u4ef6SDK\u96c6\u6210\u5230BK7258<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-30\" href=\"https:\/\/yushuoxin.top\/index.php\/2026\/03\/08\/bk7258-ai\/#33_%E5%9F%BA%E4%BA%8E%E5%A4%9A%E6%A8%A1%E6%80%81%E6%A8%A1%E5%9E%8BASRVLTTS%E7%9A%84%E5%8A%9F%E8%83%BD%E5%BC%80%E5%8F%91%EF%BC%88%E6%96%B9%E6%A1%88B%EF%BC%89\" title=\"3.3 \u57fa\u4e8e\u591a\u6a21\u6001\u6a21\u578b(ASR+VL+TTS)\u7684\u529f\u80fd\u5f00\u53d1\uff08\u65b9\u6848B\uff09\">3.3 \u57fa\u4e8e\u591a\u6a21\u6001\u6a21\u578b(ASR+VL+TTS)\u7684\u529f\u80fd\u5f00\u53d1\uff08\u65b9\u6848B\uff09<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-31\" href=\"https:\/\/yushuoxin.top\/index.php\/2026\/03\/08\/bk7258-ai\/#331_%E8%BD%AF%E4%BB%B6%E5%AE%9E%E7%8E%B0%EF%BC%9A%E9%9C%80%E6%B1%82%E6%98%8E%E7%A1%AE%E4%B8%8E%E4%BB%A3%E7%A0%81%E7%94%9F%E6%88%90\" title=\"3.3.1 \u8f6f\u4ef6\u5b9e\u73b0\uff1a\u9700\u6c42\u660e\u786e\u4e0e\u4ee3\u7801\u751f\u6210\">3.3.1 \u8f6f\u4ef6\u5b9e\u73b0\uff1a\u9700\u6c42\u660e\u786e\u4e0e\u4ee3\u7801\u751f\u6210<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-32\" href=\"https:\/\/yushuoxin.top\/index.php\/2026\/03\/08\/bk7258-ai\/#3311_%E9%98%B6%E6%AE%B5%E4%B8%80%EF%BC%9A%E8%B0%83%E7%94%A8%E5%9F%BA%E7%A1%80VLM%E6%A8%A1%E5%9E%8B\" title=\"3.3.1.1 \u9636\u6bb5\u4e00\uff1a\u8c03\u7528\u57fa\u7840VLM\u6a21\u578b\">3.3.1.1 \u9636\u6bb5\u4e00\uff1a\u8c03\u7528\u57fa\u7840VLM\u6a21\u578b<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-33\" href=\"https:\/\/yushuoxin.top\/index.php\/2026\/03\/08\/bk7258-ai\/#3312_%E9%98%B6%E6%AE%B5%E4%BA%8C%EF%BC%9A%E8%B0%83%E7%94%A8VLM%E7%9F%A5%E8%AF%86%E5%BA%93%E7%9A%84%E7%99%BE%E7%82%BC%E6%99%BA%E8%83%BD%E4%BD%93%E5%BA%94%E7%94%A8\" title=\"3.3.1.2 \u9636\u6bb5\u4e8c\uff1a\u8c03\u7528VLM+\u77e5\u8bc6\u5e93\u7684\u767e\u70bc\u667a\u80fd\u4f53\u5e94\u7528\">3.3.1.2 \u9636\u6bb5\u4e8c\uff1a\u8c03\u7528VLM+\u77e5\u8bc6\u5e93\u7684\u767e\u70bc\u667a\u80fd\u4f53\u5e94\u7528<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-34\" href=\"https:\/\/yushuoxin.top\/index.php\/2026\/03\/08\/bk7258-ai\/#332_%E5%8A%9F%E8%83%BD%E4%BB%A3%E7%A0%81%E9%83%A8%E7%BD%B2%E5%88%B0%E7%99%BE%E7%82%BC%E9%AB%98%E4%BB%A3%E7%A0%81%E5%B9%B3%E5%8F%B0\" title=\"3.3.2 \u529f\u80fd\u4ee3\u7801\u90e8\u7f72\u5230\u767e\u70bc\u9ad8\u4ee3\u7801\u5e73\u53f0\">3.3.2 \u529f\u80fd\u4ee3\u7801\u90e8\u7f72\u5230\u767e\u70bc\u9ad8\u4ee3\u7801\u5e73\u53f0<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-35\" href=\"https:\/\/yushuoxin.top\/index.php\/2026\/03\/08\/bk7258-ai\/#333_%E7%A1%AC%E4%BB%B6%E9%9B%86%E6%88%90%EF%BC%9A%E5%A4%9A%E6%A8%A1%E6%80%81%E4%BA%A4%E4%BA%92%E6%9C%8D%E5%8A%A1%E6%8E%A5%E5%8F%A3%E9%9B%86%E6%88%90%E5%88%B0BK7258\" title=\"3.3.3 \u786c\u4ef6\u96c6\u6210\uff1a\u591a\u6a21\u6001\u4ea4\u4e92\u670d\u52a1\u63a5\u53e3\u96c6\u6210\u5230BK7258\">3.3.3 \u786c\u4ef6\u96c6\u6210\uff1a\u591a\u6a21\u6001\u4ea4\u4e92\u670d\u52a1\u63a5\u53e3\u96c6\u6210\u5230BK7258<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-36\" href=\"https:\/\/yushuoxin.top\/index.php\/2026\/03\/08\/bk7258-ai\/#34_%E8%AE%B0%E5%BF%86%E7%B3%BB%E7%BB%9F\" title=\"3.4 \u8bb0\u5fc6\u7cfb\u7edf\">3.4 \u8bb0\u5fc6\u7cfb\u7edf<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-37\" href=\"https:\/\/yushuoxin.top\/index.php\/2026\/03\/08\/bk7258-ai\/#341_%E5%A4%9A%E6%A8%A1%E6%80%81%E4%BA%A4%E4%BA%92%E5%BC%80%E5%8F%91%E5%A5%97%E4%BB%B6%E5%90%AF%E7%94%A8%E9%95%BF%E6%9C%9F%E8%AE%B0%E5%BF%86\" title=\"3.4.1 \u591a\u6a21\u6001\u4ea4\u4e92\u5f00\u53d1\u5957\u4ef6\u542f\u7528\u957f\u671f\u8bb0\u5fc6\">3.4.1 \u591a\u6a21\u6001\u4ea4\u4e92\u5f00\u53d1\u5957\u4ef6\u542f\u7528\u957f\u671f\u8bb0\u5fc6<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-38\" href=\"https:\/\/yushuoxin.top\/index.php\/2026\/03\/08\/bk7258-ai\/#342_%E8%AE%B0%E5%BF%86%E7%B3%BB%E7%BB%9F%E5%90%91%E9%87%8F%E6%95%B0%E6%8D%AE%E5%BA%93%E5%AE%9E%E7%8E%B0\" title=\"3.4.2 \u8bb0\u5fc6\u7cfb\u7edf\u5411\u91cf\u6570\u636e\u5e93\u5b9e\u73b0\">3.4.2 \u8bb0\u5fc6\u7cfb\u7edf\u5411\u91cf\u6570\u636e\u5e93\u5b9e\u73b0<\/a><\/li><\/ul><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-39\" href=\"https:\/\/yushuoxin.top\/index.php\/2026\/03\/08\/bk7258-ai\/#4_Demo%E6%BC%94%E7%A4%BA%E8%A7%86%E9%A2%91\" title=\"4. Demo\u6f14\u793a\u89c6\u9891\">4. Demo\u6f14\u793a\u89c6\u9891<\/a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-40\" href=\"https:\/\/yushuoxin.top\/index.php\/2026\/03\/08\/bk7258-ai\/#41_%E5%89%8D%E7%AB%AF%E9%A1%B5%E9%9D%A2demo%E5%B1%95%E7%A4%BA\" title=\"4.1 \u524d\u7aef\u9875\u9762demo\u5c55\u793a\">4.1 \u524d\u7aef\u9875\u9762demo\u5c55\u793a<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-41\" href=\"https:\/\/yushuoxin.top\/index.php\/2026\/03\/08\/bk7258-ai\/#42_%E7%A1%AC%E4%BB%B6%E9%9B%86%E6%88%90demo%E5%B1%95%E7%A4%BA\" title=\"4.2 \u786c\u4ef6\u96c6\u6210demo\u5c55\u793a\">4.2 \u786c\u4ef6\u96c6\u6210demo\u5c55\u793a<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-42\" href=\"https:\/\/yushuoxin.top\/index.php\/2026\/03\/08\/bk7258-ai\/#43_AI%E7%94%9F%E6%88%90%E4%BA%A7%E5%93%81%E5%AE%A3%E4%BC%A0%E8%A7%86%E9%A2%91\" title=\"4.3 AI\u751f\u6210\u4ea7\u54c1\u5ba3\u4f20\u89c6\u9891\">4.3 AI\u751f\u6210\u4ea7\u54c1\u5ba3\u4f20\u89c6\u9891<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-43\" href=\"https:\/\/yushuoxin.top\/index.php\/2026\/03\/08\/bk7258-ai\/#5_%E6%80%BB%E7%BB%93%E4%B8%8E%E5%90%8E%E7%BB%AD%E8%AE%A1%E5%88%92\" title=\"5. \u603b\u7ed3\u4e0e\u540e\u7eed\u8ba1\u5212\">5. \u603b\u7ed3\u4e0e\u540e\u7eed\u8ba1\u5212<\/a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-44\" href=\"https:\/\/yushuoxin.top\/index.php\/2026\/03\/08\/bk7258-ai\/#51_%E6%80%BB%E7%BB%93\" title=\"5.1 \u603b\u7ed3\">5.1 \u603b\u7ed3<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-45\" href=\"https:\/\/yushuoxin.top\/index.php\/2026\/03\/08\/bk7258-ai\/#52_%E5%90%8E%E7%BB%AD%E8%AE%A1%E5%88%92\" title=\"5.2 \u540e\u7eed\u8ba1\u5212\">5.2 \u540e\u7eed\u8ba1\u5212<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h1 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"1_%E8%83%8C%E6%99%AF%E4%B8%8E%E4%BB%B7%E5%80%BC\"><\/span>1. <strong>\u80cc\u666f\u4e0e\u4ef7\u503c<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">\u76ee\u524d\u667a\u80fd\u786c\u4ef6\u884c\u4e1a\u666e\u904d\u90fd\u5728\u5173\u6ce8AI\u73a9\u5177\/AI\u60c5\u611f\u966a\u4f34\u673a\u5668\u4eba\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4ece\u5ba2\u6237\u89d2\u5ea6\uff0c\u5f88\u591a\u5ba2\u6237\u90fd\u5173\u5fc3\u6574\u5957\u94fe\u8def\u7684\u89e3\u51b3\u65b9\u6848\uff1b<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4ece\u6211\u4e2a\u4eba\u89d2\u5ea6\uff0c\u4e5f\u6bd4\u8f83\u597d\u5947\u73b0\u5728\u7684\u786c\u4ef6+AI\u5b9e\u73b0AI\u60c5\u611f\u966a\u4f34\u7684\u5404\u4e2a\u65b9\u6848\u7684\u5b9e\u9645\u843d\u5730\u60c5\u51b5\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u6240\u4ee5\uff0c\u672c\u4eba\u5e0c\u671b\u81ea\u5df1\u4e0a\u624b\u5b8c\u6210\u786c\u4ef6+\u8f6f\u4ef6\u7684\u5168\u5957\u65b9\u6848\u96c6\u6210\uff0c\u540c\u65f6\u4e5f\u5c3d\u91cf\u63a2\u7d22\u4e0d\u540c\u65b9\u6848\u7684\u5b9e\u73b0\u5dee\u5f02\uff1b<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u786c\u4ef6\u65b9\u9762\uff0c\u535a\u901a\u7684BK7258\u7684AI\u73a9\u5177\u5f00\u53d1\u677f\uff08\u5982\u4e0b\u56fe\uff09\u662f\u884c\u4e1a\u5185\u7684\u9009\u62e9\u4e4b\u4e00\uff0c\u672c\u6b21\u63a2\u7d22\u7684\u786c\u4ef6\u5c31\u4f7f\u7528\u5b83\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"780\" src=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-27.png\" alt=\"\" class=\"wp-image-2296\" style=\"width:370px;height:auto\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-27.png 1024w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-27-300x229.png 300w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-27-768x585.png 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"2_%E6%8A%80%E6%9C%AF%E6%96%B9%E6%A1%88\"><\/span>2. <strong>\u6280\u672f\u65b9\u6848<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"21_%E6%A6%82%E8%BF%B0\"><\/span>2.1 \u6982\u8ff0<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"211_%E8%83%8C%E6%99%AF\"><\/span>2.1.1 \u80cc\u666f<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u672c\u9879\u76ee\u57fa\u4e8e\u535a\u901a\uff08Beken\uff09BK7258 AI\u5f00\u53d1\u677f\uff0c\u4f7f\u7528 Armino AIDK SDK (v2.0.1.9) \u5f00\u53d1\u6846\u67b6\uff0c\u5bf9\u5b98\u65b9 <code>beken_genie<\/code> \u9879\u76ee\u8fdb\u884c\u529f\u80fd\u5b9a\u5236\u5f00\u53d1\u3002\u76ee\u6807\u662f\u5c06BK7258 AI\u5f00\u53d1\u677f\u539f\u751f\u96c6\u6210\u7684\u58f0\u7f51+\u8c46\u5305\u7684\u8bed\u97f3\u5bf9\u8bdd\u529f\u80fd\uff08ASR+LLM+TTS\uff09\u66ff\u6362\u4e3a\u963f\u91cc\u4e91\u7684\u591a\u79cd\u89e3\u51b3\u65b9\u6848\uff0c\u5b9e\u73b0\u5b9a\u5236\u5316\u7684\u8bed\u97f3\u4ea4\u4e92\u4f53\u9a8c\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"212_%E7%A1%AC%E4%BB%B6%E5%B9%B3%E5%8F%B0\"><\/span>2.1.2 \u786c\u4ef6\u5e73\u53f0<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u5f00\u53d1\u677f<\/strong>: \u535a\u901a BK7258 AI\u5f00\u53d1\u5957\u4ef6<\/li>\n\n\n\n<li><strong>\u82af\u7247<\/strong>: BK7258 \u53cc\u6838\u5904\u7406\u5668 (CPU0 + CPU1)<\/li>\n\n\n\n<li><strong>\u97f3\u9891<\/strong>: 16kHz PCM \u91c7\u6837\uff0c\u652f\u6301\u53cc\u9ea6\u514b\u98ce\u8f93\u5165\u548c\u626c\u58f0\u5668\u8f93\u51fa<\/li>\n\n\n\n<li><strong>\u7f51\u7edc<\/strong>: Wi-Fi \u8fde\u63a5<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"213_%E8%BD%AF%E4%BB%B6%E6%A1%86%E6%9E%B6\"><\/span>2.1.3 \u8f6f\u4ef6\u6846\u67b6<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>SDK\u7248\u672c<\/strong>: bk_aidk-ai_release-v2.0.1.9<\/li>\n\n\n\n<li><strong>\u5f00\u53d1\u6846\u67b6<\/strong>: Armino AIDK SDK<\/li>\n\n\n\n<li><strong>\u57fa\u7840\u9879\u76ee<\/strong>: beken_genie<\/li>\n\n\n\n<li><strong>\u7f16\u8bd1\u73af\u5883<\/strong>: Docker + PowerShell (Windows)<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"22_%E6%A0%B8%E5%BF%83%E5%8A%9F%E8%83%BD\"><\/span>2.2 \u6838\u5fc3\u529f\u80fd<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"221_%E8%AF%AD%E9%9F%B3%E5%94%A4%E9%86%92\"><\/span>2.2.1 \u8bed\u97f3\u5524\u9192<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u8bed\u97f3\u5524\u9192<\/strong>: \u652f\u6301\u8bed\u97f3\u5524\u9192\u8bcd\u89e6\u53d1\u5bf9\u8bdd\uff08\u76ee\u524d\u4f7f\u7528\u7684\u662fbeken_genie\u9879\u76ee\u9ed8\u8ba4\u5524\u9192\u8bcd\uff1ahi&nbsp;armino&nbsp;\u6216&nbsp;\u55e8\u963f\u7c73\u8bfa&nbsp;\u7528\u4e8e\u5524\u9192\uff0cbyebye&nbsp;armino&nbsp;\u6216&nbsp;\u62dc\u62dc\u963f\u7c73\u8bfa&nbsp;\u7528\u4e8e\u5173\u95ed\uff09<\/li>\n\n\n\n<li><strong>\u5168\u53cc\u5de5\u5bf9\u8bdd<\/strong>: \u91c7\u7528 Duplex \u6a21\u5f0f\uff0c\u652f\u6301\u5b9e\u65f6\u53cc\u5411\u8bed\u97f3\u4ea4\u4e92\uff0c\u652f\u6301\u968f\u65f6\u6253\u65ad<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"222_%E8%AF%AD%E9%9F%B3%E5%AF%B9%E8%AF%9D%EF%BC%88%E6%96%B9%E6%A1%88A%EF%BC%89\"><\/span>2.2.2 \u8bed\u97f3\u5bf9\u8bdd\uff08\u65b9\u6848A\uff09<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u4f7f\u7528\u963f\u91cc\u4e91\u767e\u70bc\u7684\u591a\u6a21\u6001\u4ea4\u4e92\u5f00\u53d1\u5957\u4ef6\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u8bed\u97f3\u8bc6\u522b(ASR)<\/strong>: \u963f\u91cc\u4e91\u767e\u70bc\u4e91\u7aef\u591a\u6a21\u6001\u4ea4\u4e92\u5f00\u53d1\u5957\u4ef6ASR\u670d\u52a1<\/li>\n\n\n\n<li><strong>\u5927\u8bed\u8a00\u6a21\u578b\u667a\u80fd\u95ee\u7b54(LLM)<\/strong>: \u963f\u91cc\u4e91\u767e\u70bc\u4e91\u7aef\u591a\u6a21\u6001\u4ea4\u4e92\u5f00\u53d1\u5957\u4ef6\u6587\u672c\u6a21\u578b\u667a\u80fd\u95ee\u7b54<\/li>\n\n\n\n<li><strong>\u8bed\u97f3\u5408\u6210(TTS)<\/strong>: \u963f\u91cc\u4e91\u767e\u70bc\u4e91\u7aef\u591a\u6a21\u6001\u4ea4\u4e92\u5f00\u53d1\u5957\u4ef6TTS\u670d\u52a1\uff0cCosyVoice-v3-Flash (\u9f99\u83f2\u83f2)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"223_%E5%A4%9A%E6%A8%A1%E6%80%81%E4%BA%A4%E4%BA%92%EF%BC%88%E6%96%B9%E6%A1%88B%EF%BC%89\"><\/span>2.2.3 \u591a\u6a21\u6001\u4ea4\u4e92\uff08\u65b9\u6848B\uff09<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u5229\u7528\u963f\u91cc\u4e91\u767e\u70bc\u4e2d\u5408\u9002\u7684 ASR+LLM(VL)+TTS \u6a21\u578b\uff0c\u642d\u5efa\u5b8c\u6574\u7684\u89c6\u9891+\u8bed\u97f3\u4ea4\u4e92\u94fe\u8def\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u8bed\u97f3\u5524\u9192<\/strong>: \u652f\u6301\u8bed\u97f3\u5524\u9192\u8bcd\u89e6\u53d1\u5bf9\u8bdd\uff08\u76ee\u524d\u4f7f\u7528\u7684\u662fbeken_genie\u9879\u76ee\u9ed8\u8ba4\u5524\u9192\u8bcd\uff1ahi&nbsp;armino&nbsp;\u6216&nbsp;\u55e8\u963f\u7c73\u8bfa&nbsp;\u7528\u4e8e\u5524\u9192\uff0cbyebye&nbsp;armino&nbsp;\u6216&nbsp;\u62dc\u62dc\u963f\u7c73\u8bfa&nbsp;\u7528\u4e8e\u5173\u95ed\uff09<\/li>\n\n\n\n<li><strong>\u5168\u53cc\u5de5\u5bf9\u8bdd<\/strong>: \u91c7\u7528 Duplex \u6a21\u5f0f\uff0c\u652f\u6301\u5b9e\u65f6\u53cc\u5411\u8bed\u97f3\u4ea4\u4e92<\/li>\n\n\n\n<li><strong>\u8bed\u97f3\u8bc6\u522b(ASR)<\/strong>: \u963f\u91cc\u4e91\u767e\u70bcqwen3-asr-flash-realtime<\/li>\n\n\n\n<li><strong>\u5927\u8bed\u8a00\u6a21\u578b\u667a\u80fd\u95ee\u7b54(LLM)<\/strong>: \u963f\u91cc\u4e91\u767e\u70bcqwen3-vl-plus<\/li>\n\n\n\n<li><strong>\u8bed\u97f3\u5408\u6210(TTS)<\/strong>: \u963f\u91cc\u4e91\u767e\u70bccosyvoice-v3-flash<\/li>\n\n\n\n<li><strong>AI\u8868\u60c5\u53cd\u9988\uff0c\u529f\u80fd\u5982\u4e0b\u8868\uff1a<\/strong><\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>\u9700\u6c42\u9879<\/td><td>\u63cf\u8ff0<\/td><\/tr><tr><td>\u7ed3\u6784\u5316\u8f93\u51fa<\/td><td>LLM\u4ee5 [EMOTION:xxx] \u683c\u5f0f\u8f93\u51fa\u8868\u60c5<\/td><\/tr><tr><td>\u8868\u60c5\u89e3\u6790<\/td><td>\u540e\u7aef\u89e3\u6790\u8868\u60c5\u6807\u8bb0\u5e76\u5206\u79bb\u5185\u5bb9<\/td><\/tr><tr><td>\u524d\u7aef\u663e\u793a<\/td><td>\u5927emoji + \u6807\u7b7e\u663e\u793aAI\u5f53\u524d\u60c5\u7eea<\/td><\/tr><tr><td>\u52a8\u753b\u6548\u679c<\/td><td>\u8868\u60c5\u5207\u6362\u65f6\u5f39\u8df3\u52a8\u753b<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u652f\u6301\u7684\u8868\u60c5\u7c7b\u578b\uff1a<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>\u8868\u60c5\u540d<\/td><td>Emoji<\/td><td>\u542b\u4e49<\/td><td>\u6807\u7b7e\u989c\u8272<\/td><\/tr><tr><td>happy<\/td><td>\ud83d\ude0a<\/td><td>\u5f00\u5fc3\u3001\u5174\u594b\u3001\u9ad8\u5174<\/td><td>\u7eff\u8272<\/td><\/tr><tr><td>sad<\/td><td>\ud83d\ude22<\/td><td>\u96be\u8fc7\u3001\u540c\u60c5\u3001\u5b89\u6170<\/td><td>\u84dd\u8272<\/td><\/tr><tr><td>love<\/td><td>\ud83e\udd70<\/td><td>\u5173\u7231\u3001\u559c\u6b22\u3001\u6e29\u6696<\/td><td>\u7c89\u8272<\/td><\/tr><tr><td>thinking<\/td><td>\ud83e\udd14<\/td><td>\u601d\u8003\u3001\u7591\u60d1\u3001\u597d\u5947<\/td><td>\u6a59\u8272<\/td><\/tr><tr><td>surprised<\/td><td>\ud83d\ude2e<\/td><td>\u60ca\u8bb6\u3001\u610f\u5916<\/td><td>\u7d2b\u8272<\/td><\/tr><tr><td>neutral<\/td><td>\ud83d\ude0c<\/td><td>\u5e73\u9759\u3001\u4e2d\u6027<\/td><td>\u7070\u8272<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u4eba\u8138\u8ffd\u8e2a\uff0c\u529f\u80fd\u5982\u4e0b\u8868\uff1a<\/strong><\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>\u9700\u6c42\u9879<\/td><td>\u63cf\u8ff0<\/td><\/tr><tr><td>\u4eba\u8138\u68c0\u6d4b<\/td><td>\u4f7f\u7528VL\u6a21\u578b\u68c0\u6d4b\u4eba\u8138\u4f4d\u7f6e<\/td><\/tr><tr><td>\u5750\u6807\u8f93\u51fa<\/td><td>\u8f93\u51fa\u4eba\u8138\u4e2d\u5fc3\u70b9\u5750\u6807(x, y)<\/td><\/tr><tr><td>\u53ef\u89c6\u5316\u6807\u8bb0<\/td><td>\u5728\u89c6\u9891\u753b\u9762\u4e0a\u663e\u793a\u8ffd\u8e2a\u70b9<\/td><\/tr><tr><td>\u5b9e\u65f6\u66f4\u65b0<\/td><td>\u5b9a\u65f6\u68c0\u6d4b\u5e76\u66f4\u65b0\u4f4d\u7f6e<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"224_%E9%95%BF%E6%9C%9F%E8%AE%B0%E5%BF%86%E7%B3%BB%E7%BB%9F\"><\/span>2.2.4 \u957f\u671f\u8bb0\u5fc6\u7cfb\u7edf<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><strong>Mem0 + Milvus \u8bb0\u5fc6\u7cfb\u7edf\u67b6\u6784\u56fe<\/strong><\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\u7528\u6237\u5bf9\u8bdd \u2192 LLM \u670d\u52a1 \u2192 \u8bb0\u5fc6\u68c0\u7d22\uff08\u8bed\u4e49\u641c\u7d22\uff09\u2192 \u6ce8\u5165 prompt\n                    \u2193\n              AI \u56de\u590d \u2192 \u8bb0\u5fc6\u5206\u6790\uff08qwen3.5-flash\uff09\u2192 \u4fdd\u5b58\u5230 Milvus\n                                                    \u2193\n                                          text-embedding-v3 \u5411\u91cf\u5316\n                                                    \u2193\n                                           Milvus \u5411\u91cf\u6570\u636e\u5e93\u5b58\u50a8<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u8bb0\u5fc6\u7c7b\u578b\u8bf4\u660e<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">| \u7c7b\u578b | \u6807\u8bc6 | \u8bf4\u660e | \u4fdd\u7559\u7b56\u7565 |<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">|&#8212;&#8212;|&#8212;&#8212;|&#8212;&#8212;|&#8212;&#8212;&#8212;-|<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">| \u957f\u671f\u8bb0\u5fc6 | `long_term` | \u7528\u6237\u59d3\u540d\u3001\u504f\u597d\u3001\u91cd\u8981\u4e8b\u4ef6 | \u6c38\u4e45\u4fdd\u7559 |<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">| \u65e5\u5e38\u8bb0\u5fc6 | `daily` | \u5f53\u5929\u5bf9\u8bdd\u6458\u8981\u3001\u60c5\u7eea\u72b6\u6001 | 30 \u5929\u540e\u81ea\u52a8\u6e05\u7406 |<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">| \u4f1a\u8bdd\u8bb0\u5fc6 | `session` | \u5f53\u524d\u5bf9\u8bdd\u4e0a\u4e0b\u6587 | \u4f1a\u8bdd\u7ed3\u675f\u540e\u6e05\u9664 |<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"225_%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5\"><\/span>2.2.5 \u7f51\u7edc\u8fde\u63a5<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Wi-Fi\u8fde\u63a5<\/strong>: \u81ea\u52a8\u8fde\u63a5\u914d\u7f6e\u7684Wi-Fi\u7f51\u7edc<\/li>\n\n\n\n<li><strong>WebSocket\u901a\u4fe1<\/strong>: \u4e0e\u963f\u91cc\u4e91\u767e\u70bc\u670d\u52a1\u5efa\u7acbWSS\u5b89\u5168\u8fde\u63a5<\/li>\n\n\n\n<li><strong>\u81ea\u52a8\u91cd\u8fde<\/strong>: \u7f51\u7edc\u65ad\u5f00\u540e\u81ea\u52a8\u91cd\u8fde\u673a\u5236<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"226_%E9%9F%B3%E9%A2%91%E5%A4%84%E7%90%86\"><\/span>2.2.6 \u97f3\u9891\u5904\u7406<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u97f3\u9891\u91c7\u96c6<\/strong>: 16kHz 16bit PCM \u683c\u5f0f<\/li>\n\n\n\n<li><strong>\u97f3\u9891\u64ad\u653e<\/strong>: 16kHz 16bit PCM \u683c\u5f0f<\/li>\n\n\n\n<li><strong>\u97f3\u91cf\u63a7\u5236<\/strong>: 0-100\u7ea7\u97f3\u91cf\u8c03\u8282\uff0c\u4e0e\u7cfb\u7edf\u97f3\u91cf\u540c\u6b65<\/li>\n\n\n\n<li><strong>AEC\u652f\u6301<\/strong>: \u652f\u6301\u56de\u58f0\u6d88\u9664<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"227_LED%E7%8A%B6%E6%80%81%E6%8C%87%E7%A4%BA\"><\/span>2.2.7 LED\u72b6\u6001\u6307\u793a<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u7eff\u8272\u5e38\u4eae<\/strong>: \u670d\u52a1\u8fde\u63a5\u6210\u529f<\/li>\n\n\n\n<li><strong>\u7ea2\u8272\u5e38\u4eae<\/strong>: \u670d\u52a1\u65ad\u5f00<\/li>\n\n\n\n<li><strong>\u7ea2\u8272\u5feb\u95ea<\/strong>: \u670d\u52a1\u9519\u8bef<\/li>\n<\/ul>\n\n\n\n<h1 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"3_%E6%96%B9%E6%A1%88%E5%AE%9E%E7%8E%B0%E8%AE%B0%E5%BD%95\"><\/span>3. <strong>\u65b9\u6848\u5b9e\u73b0\u8bb0\u5f55<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"31_BK7258%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA\"><\/span>3.1 BK7258\u5f00\u53d1\u73af\u5883\u642d\u5efa<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u9996\u5148\u53c2\u8003\u5b98\u7f51\u6587\u6863\u548c\u7f51\u4e0a\u76f8\u5173\u6559\u7a0b\u8fdb\u884c\u57fa\u7840\u64cd\u4f5c\u548c\u8bbe\u7f6e\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"311_%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B%E6%8C%87%E5%8D%97\"><\/span>3.1.1 \u5feb\u901f\u4e0a\u624b\u6307\u5357<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">BK7258 AI\u5f00\u53d1\u5957\u4ef6\u51fa\u5382\u9ed8\u8ba4\u96c6\u6210\u4e86\u5b98\u65b9SDK\uff0c\u53ef\u4ee5\u76f4\u63a5\u542f\u52a8\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u535a\u901a\u63d0\u4f9b\u7684\u5b98\u65b9\u6587\u6863\u548c\u6559\u7a0b\u6563\u843d\u5728\u591a\u5904\uff0c\u66f4\u65b0\u4e5f\u4e0d\u662f\u5f88\u53ca\u65f6\uff0c\u5bf9\u4e8e\u521d\u5b66\u8005\u6765\u8bf4\u4e0d\u662f\u7279\u522b\u53cb\u597d\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5b98\u65b9\u7684\u300aAI\u5f00\u53d1\u5957\u4ef6\u5feb\u901f\u4f7f\u7528\u6307\u5357\u300b\u8be6\u89c1\u5982\u4e0b\u94fe\u63a5<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/dl.bekencorp.com\/armino_sdk_resource\/bk_aidk\/ai_board_introduct\">https:\/\/dl.bekencorp.com\/armino_sdk_resource\/bk_aidk\/ai_board_introduct<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u53ef\u53c2\u8003\u6587\u6863\u76f4\u63a5\u8fdb\u884c\u642d\u5efa\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u8fd9\u91cc\u5f3a\u8c03\u4e0b\uff0c\u9ed8\u8ba4\u73af\u5883\u53ea\u6709\u58f0\u7f51\u4e91\u670d\u52a1\u91cc\u7684\u8c46\u5305\u6a21\u578b\u8fd9\u4e00\u4e2a\u9009\u9879\uff0c\u5176\u4ed6\u9009\u9879\u9ed8\u8ba4\u7070\u8272\u4e0d\u53ef\u9009\uff0c\u9700\u8981\u989d\u5916\u914d\u8fdb\u884c\u7f16\u8bd1\u70e7\u5f55\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"469\" height=\"1024\" src=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-33-469x1024.png\" alt=\"\" class=\"wp-image-2322\" style=\"aspect-ratio:0.4579715894352981;width:306px;height:auto\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-33-469x1024.png 469w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-33-137x300.png 137w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-33.png 534w\" sizes=\"auto, (max-width: 469px) 100vw, 469px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u5b8c\u6210\u76f8\u5173\u914d\u7f6e\u540e\uff0c\u53ef\u4ee5\u76f4\u63a5\u8ddf\u5f00\u53d1\u677f\u505a\u8bed\u97f3\u5bf9\u8bdd\uff0c\u5f00\u53d1\u677f\u4e0a\u7684\u5c4f\u5e55\u53ef\u4ee5\u663e\u793a\u773c\u775b\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"312_%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA\"><\/span>3.1.2 \u5f00\u53d1\u73af\u5883\u642d\u5efa<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u672c\u6587\u57fa\u4e8eWindows\u7535\u8111\u6784\u5efa\u5f00\u53d1\u73af\u5883\uff0c\u8fd9\u91cc\u53c2\u8003B\u7ad9\u5b98\u65b9\u6559\u7a0b <a href=\"https:\/\/www.bilibili.com\/video\/BV1dudLY7E1u\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.bilibili.com\/video\/BV1dudLY7E1u<\/a>\u8fdb\u884c\u914d\u7f6e\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u6587\u6863\u91cc\u6709\u4e9b\u5185\u5bb9\u5b9e\u9645\u64cd\u4f5c\u4f1a\u9047\u5230\u95ee\u9898\uff0c\u672c\u6587\u8bb0\u5f55\u5b9e\u9645\u64cd\u4f5c\u8fc7\u7a0b\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"3121_Armino_AIDK_SDK%E4%BB%A3%E7%A0%81%E4%B8%8B%E8%BD%BD\"><\/span>3.1.2.1 Armino AIDK SDK\u4ee3\u7801\u4e0b\u8f7d<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">\u5b98\u65b9\u64cd\u4f5c\u6587\u6863\u5982\u4e0b <a href=\"https:\/\/docs.bekencorp.com\/arminodoc\/bk_aidk\/bk7258\/zh_CN\/v2.0.1\/get-started\/index.html#armino-aidk-sdk\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/docs.bekencorp.com\/arminodoc\/bk_aidk\/bk7258\/zh_CN\/v2.0.1\/get-started\/index.html#armino-aidk-sdk<\/a>\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u8e29\u5751\u70b9\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u5b98\u65b9\u6587\u6863\u91ccgitlab\u4ee3\u7801\u4e0b\u8f7d\u9700\u8981gitlab\u8d26\u53f7\uff0c\u4e2a\u4eba\u7528\u6237\u6ca1\u6709\u8be5\u8d26\u53f7\u4e0d\u5efa\u8bae\u4f7f\u7528\u8fd9\u79cd\u65b9\u6cd5\uff1b<\/li>\n\n\n\n<li>\u6587\u6863\u91cc\u901a\u8fc7git\u4e0b\u8f7dgithub\u73af\u5883\uff0c\u5982\u679c\u672c\u5730\u6ca1\u6709\u79d1\u5b66\u4e0a\u7f51\u73af\u5883\uff0c\u4e0b\u8f7d\u53ef\u80fd\u5931\u8d25\uff1b<\/li>\n\n\n\n<li>\u5c1d\u8bd5\u624b\u52a8\u4e0b\u8f7d https:\/\/github.com\/bekencorp\/bk_aidk# \u7248\u672cv2.0.1 \u4e0b\u8f7d\u540ebk_aidk-ai_release-v2.0.1\u89e3\u538b\u5931\u8d25\uff0c\u6587\u4ef6\u5939\u67b6\u6784\u4e0d\u5b8c\u6574\uff1b<\/li>\n\n\n\n<li>\u5c1d\u8bd5\u624b\u52a8\u4e0b\u8f7d https:\/\/github.com\/bekencorp\/bk_idk\uff0c\u4e0b\u8f7d\u540ebk_idk-release-v2.0.1\u89e3\u538b\u5931\u8d25\uff0c\u6587\u4ef6\u5939\u67b6\u6784\u4e0d\u5b8c\u6574\uff1b<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u6700\u540e\u9a8c\u8bc1\u53ef\u7528\u7684\u65b9\u6848\u5982\u4e0b\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u8bbf\u95ee\u5982\u4e0b\u5b98\u65b9\u4e0b\u8f7d\u94fe\u63a5 <a href=\"https:\/\/dl.bekencorp.com\/SDK\/bk_aidk\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/dl.bekencorp.com\/SDK\/bk_aidk<\/a>\uff0c\u4e0b\u8f7d\u6587\u4ef6bk_aidk-ai_release-v2.0.1.9.tar.xz\uff0c\u5e76\u8fdb\u884c\u4e24\u6b21\u89e3\u538b\uff0c\u5f97\u5230\u6587\u4ef6\u5939bk_aidk-ai_release-v2.0.1.9\uff0c\u672c\u793a\u4f8b\u4e2d\u6587\u4ef6\u5939\u8def\u5f84\u4e3a C:\\Users\\LeoYu\\armino\\bk_aidk-ai_release-v2.0.1.9\uff0c\u91cc\u9762\u6587\u4ef6\u7ed3\u6784\u5982\u4e0b\u56fe\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"890\" height=\"810\" src=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-28.png\" alt=\"\" class=\"wp-image-2303\" style=\"aspect-ratio:1.0987798148261696;width:553px;height:auto\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-28.png 890w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-28-300x273.png 300w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-28-768x699.png 768w\" sizes=\"auto, (max-width: 890px) 100vw, 890px\" \/><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"3122_Docker%E7%8E%AF%E5%A2%83%E9%83%A8%E7%BD%B2\"><\/span>3.1.2.2 Docker\u73af\u5883\u90e8\u7f72<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">\u8be5\u6b65\u9aa4\u4e3b\u8981\u53c2\u8003\u5982\u4e0b\u5b98\u65b9\u6587\u6863 <a href=\"https:\/\/docs.bekencorp.com\/arminodoc\/bk_idk\/bk7258\/zh_CN\/v2.0.1\/get-started\/env-docker.html\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/docs.bekencorp.com\/arminodoc\/bk_idk\/bk7258\/zh_CN\/v2.0.1\/get-started\/env-docker.html<\/a>\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4ece Beken \u5b98\u65b9\u4e0b\u8f7d\u7ad9\u70b9\u83b7\u53d6 Docker \u955c\u50cfbekencorp-armino-idk-v1.2.tar\uff1a\u4e0b\u8f7d\u5730\u5740 <a href=\"https:\/\/dl.bekencorp.com\/tools\/arminosdk\/docker_img\/armino-idk\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/dl.bekencorp.com\/tools\/arminosdk\/docker_img\/armino-idk<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u8e29\u5751\u70b9\uff1a\u8be5Docker\u955c\u50cf\u6709\u4e09\u4e2a\u7248\u672cv1.0\uff0cv1.1\uff0cv1.2\uff0c\u9700\u8981\u4f7f\u7528\u5f53\u4e0b\u6700\u65b0\u7248\u672cv1.2\uff0c\u5426\u5219\u540e\u7eed\u6784\u5efa\u4f1a\u5931\u8d25\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u672c\u4f8b\u4e2d\uff0c\u4e0b\u8f7d\u7684\u6587\u4ef6bekencorp-armino-idk-v1.2.tar\u653e\u5728C:\\Users\\LeoYu\\armino\u4e2d\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u7136\u540e\u9700\u8981\u8bbf\u95ee<a href=\"https:\/\/www.docker.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.docker.com\/<\/a>\u627e\u5230Docker Desktop\u8fdb\u884c\u4e0b\u8f7d\u3001\u5b89\u88c5\u548c\u542f\u52a8\uff08\u5f88\u7b80\u5355\uff0c\u8fc7\u7a0b\u7565\uff09\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u7136\u540e\u7535\u8111\u7aef\u6253\u5f00PowerShell\u6267\u884c\u5982\u4e0b\u6307\u4ee4\u52a0\u8f7d\u8be5armino-idk\u955c\u50cf\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cd C:\\Users\\LeoYu\\armino\ndocker load -i bekencorp-armino-idk-v1.2.tar<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"3123_%E8%BF%9B%E8%A1%8C%E7%BC%96%E8%AF%91\"><\/span>3.1.2.3 \u8fdb\u884c\u7f16\u8bd1<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">\u8fdb\u5165SDK\u6839\u76ee\u5f55\uff0cWindows\u7cfb\u7edfPowerShell\u6267\u884c\u547d\u4ee4\u8fdb\u884c\u7f16\u8bd1\u6d4b\u8bd5:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cd C:\\Users\\LeoYu\\armino\\bk_aidk-ai_release-v2.0.1.9\\bk_avdk\\bk_idk\n.\/dbuild.ps1 make bk7258<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u8e29\u5751\u70b9\uff1a\u8fd9\u91cc\u4f7f\u7528\u7684\u662fArmino AIDK SDK\u5305\u4e2d\u7684 bk_avdk\\bk_idk \u8fd9\u4e2a\u8def\u5f84\u4e0b\u7684\u73af\u5883\u8fdb\u884c\u7684\u7f16\u8bd1\uff0c\u8bf7\u7279\u522b\u7559\u610f\u8def\u5f84\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u7f16\u8bd1\u7ed3\u675f\u540e\uff0cPowerShell\u8f93\u51fa\u7ed3\u679c\u5982\u4e0b\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"745\" src=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-29.png\" alt=\"\" class=\"wp-image-2308\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-29.png 1024w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-29-300x218.png 300w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-29-768x559.png 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u6b64\u65f6\uff0cC:\\Users\\LeoYu\\armino\\bk_aidk-ai_release-v2.0.1.9\\bk_avdk\\bk_idk\\build\\app\\bk7258 \u8def\u5f84\u4e0b\u4f1a\u5f97\u5230\u5982\u4e0b\u5185\u5bb9\uff0c\u8bc1\u660e\u80fd\u6b63\u5e38\u751f\u6210\u56fa\u4ef6\uff0c\u7f16\u8bd1\u529f\u80fd\u53ef\u7528\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"885\" height=\"672\" src=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-30.png\" alt=\"\" class=\"wp-image-2309\" style=\"aspect-ratio:1.3169692070257955;width:666px;height:auto\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-30.png 885w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-30-300x228.png 300w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-30-768x583.png 768w\" sizes=\"auto, (max-width: 885px) 100vw, 885px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"313_%E8%BD%AF%E4%BB%B6%E7%83%A7%E5%BD%95%E5%88%9D%E5%B0%9D%E8%AF%95\"><\/span>3.1.3 \u8f6f\u4ef6\u70e7\u5f55\u521d\u5c1d\u8bd5<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u672c\u8282\u5185\u5bb9\u4e3b\u8981\u53c2\u8003B\u7ad9\u5b98\u65b9\u6559\u7a0b\u89c6\u9891<a href=\"https:\/\/www.bilibili.com\/video\/BV1MLXVYRE6v\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.bilibili.com\/video\/BV1MLXVYRE6v\/<\/a>\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Armino \u652f\u6301\u5728 Windows\/Linux \u5e73\u53f0\u8fdb\u884c\u56fa\u4ef6\u70e7\u5f55, \u70e7\u5f55\u65b9\u6cd5\u53c2\u8003\u70e7\u5f55\u5de5\u5177\u4e2d\u6307\u5bfc\u6587\u6863\u3002 app\u5de5\u7a0b\u5728\u7f16\u8bd1\u5b8c\u6210\u540e\uff0c\u5728build\/app\/bk7258\u76ee\u5f55\u4e0b\u751f\u6210all-app.bin\uff0c\u4f7f\u7528\u6b64bin\u6587\u4ef6\u70e7\u5f55\u5373\u53ef\u3002\u5b89\u5168\u5de5\u7a0b\u9996\u6b21\u70e7\u5f55\u65f6\uff0c\u9700\u8981\u5148\u70e7\u5f55bootloader.bin\uff0c\u518d\u70e7\u5f55all-app.bin\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5177\u4f53\u8bf4\u660e\u53ef\u53c2\u8003\u6587\u6863 <a href=\"https:\/\/docs.bekencorp.com\/arminodoc\/bk_idk\/bk7258\/zh_CN\/v_ai_2.0.1\/get-started\/index.html\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/docs.bekencorp.com\/arminodoc\/bk_idk\/bk7258\/zh_CN\/v_ai_2.0.1\/get-started\/index.html<\/a>\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"3131_%E5%AE%89%E8%A3%85%E7%83%A7%E5%BD%95%E5%B7%A5%E5%85%B7\"><\/span>3.1.3.1 \u5b89\u88c5\u70e7\u5f55\u5de5\u5177<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">\u9996\u5148\u5b89\u88c5\u70e7\u5f55\u5de5\u5177\uff08BKFIL\uff09\uff0c<a href=\"https:\/\/dl.bekencorp.com\/tools\/flash\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/dl.bekencorp.com\/tools\/flash\/<\/a> \u5728\u6b64\u76ee\u5f55\u4e0b\u83b7\u53d6\u6700\u65b0\u7248\u672c\uff0c\u5982\uff1aBEKEN_BKFIL_V2.1.12.2_20251030(zip).zip<br>\u89e3\u538b\u540e\u5f97\u5230BKFIL.exe\uff0c\u542f\u52a8\u540e\u5982\u4e0b\u56fe\uff1b<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"652\" src=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-31.png\" alt=\"\" class=\"wp-image-2312\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-31.png 1024w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-31-300x191.png 300w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-31-768x489.png 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"3132_%E7%BC%96%E8%AF%91%E7%89%B9%E5%AE%9A%E9%A1%B9%E7%9B%AE\"><\/span>3.1.3.2 \u7f16\u8bd1\u7279\u5b9a\u9879\u76ee<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e0b\u9762\u6211\u4eec\u53c2\u8003\u89c6\u9891\u6559\u7a0b\uff0c\u7f16\u8bd1beken_genie\u8fd9\u4e2aproject\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u8e29\u5751\u70b9\uff1abk_aidk-ai_release-v2.0.1.9\\bk_avdk\\bk_idk\\projects\u4e2d\u9ed8\u8ba4\u662f\u6ca1\u6709beken_genie\u4e2aproject\u7684\uff0c\u5982\u679c\u4ecebk_aidk-ai_release-v2.0.1.9\\projects\u4e2d\u590d\u5236beken_genie\u8fd9\u4e2aproject\u5230bk_aidk-ai_release-v2.0.1.9\\bk_avdk\\bk_idk\\projects\u4e2d\uff0c\u540e\u7eed\u4f1a\u6709\u4e00\u7cfb\u5217\u62a5\u9519\u9700\u8981\u89e3\u51b3\u3002\u6240\u4ee5\u6211\u4eec\u76f4\u63a5\u5728bk_aidk-ai_release-v2.0.1.9\\\u8fd9\u4e2a\u6587\u4ef6\u5939\u4e0b\u8fdb\u884c\u7f16\u8bd1\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cd C:\\Users\\LeoYu\\armino\\bk_aidk-ai_release-v2.0.1.9\\\n.\/dbuild.ps1 make bk7258 PROJECT=beken_genie<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u6267\u884c\u7ed3\u675f\u540e\u622a\u56fe\u5982\u4e0b\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"826\" src=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-34-1024x826.png\" alt=\"\" class=\"wp-image-2325\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-34-1024x826.png 1024w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-34-300x242.png 300w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-34-768x619.png 768w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-34.png 1344w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u7f16\u8bd1\u7ed3\u675f\u540e\uff0c\u5728\\bk_aidk-ai_release-v2.0.1.9\\build\\beken_genie\\bk7258\u8def\u5f84\u4e0b\uff0c\u53ef\u4ee5\u5f97\u5230\u70e7\u5f55\u6240\u9700\u7684all-app.bin\u6587\u4ef6\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"746\" height=\"1024\" src=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-32.png\" alt=\"\" class=\"wp-image-2314\" style=\"aspect-ratio:0.7285114824139772;width:485px;height:auto\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-32.png 746w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-32-219x300.png 219w\" sizes=\"auto, (max-width: 746px) 100vw, 746px\" \/><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"3133_%E8%BF%9B%E8%A1%8C%E7%83%A7%E5%BD%95\"><\/span>3.1.3.3 \u8fdb\u884c\u70e7\u5f55<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">\u5c06\u5f00\u53d1\u677f\u8bbe\u5907\u5f00\u673a\uff0c\u5e76\u4e0e\u7535\u8111\u901a\u8fc7type-C\u53e3\u8fde\u63a5\uff1b<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u6253\u5f00\u70e7\u5f55\u5de5\u5177BKFIL\uff0c\u9009\u62e9\u4e32\u53e3<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"221\" src=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-35-1024x221.png\" alt=\"\" class=\"wp-image-2327\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-35-1024x221.png 1024w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-35-300x65.png 300w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-35-768x165.png 768w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-35.png 1226w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u9009\u62e9\u6b63\u786e\u7684bin\u6587\u4ef6\u8def\u5f84\uff0c\u5e76\u70b9\u51fb\u70e7\u5f55\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"648\" src=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-36-1024x648.png\" alt=\"\" class=\"wp-image-2328\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-36-1024x648.png 1024w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-36-300x190.png 300w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-36-768x486.png 768w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-36.png 1226w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u70e7\u5f55\u5b8c\u6210\u540e\uff0c\u53ef\u4ee5\u770b\u5230\u5982\u4e0b\u65e5\u5fd7\uff0c\u663e\u793aAll Finished Successfully\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"838\" height=\"1024\" src=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-37-838x1024.png\" alt=\"\" class=\"wp-image-2329\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-37-838x1024.png 838w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-37-246x300.png 246w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-37-768x938.png 768w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-37.png 1226w\" sizes=\"auto, (max-width: 838px) 100vw, 838px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u70e7\u5f55\u5b8c\u6210\u540e\uff0c\u5f00\u673a\uff0c\u518d\u6b21\u6309\u7167\u201c\u5feb\u901f\u4e0a\u624b\u6307\u5357\u201d\u7ae0\u8282\u7684\u5185\u5bb9\u8fdb\u884c\u914d\u5bf9\u8fde\u63a5\uff0c\u5373\u53ef\u8fdb\u884c\u5bf9\u8bdd\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"616\" height=\"516\" src=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-38.png\" alt=\"\" class=\"wp-image-2330\" style=\"aspect-ratio:1.193804318202465;width:327px;height:auto\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-38.png 616w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-38-300x251.png 300w\" sizes=\"auto, (max-width: 616px) 100vw, 616px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"32_%E5%9F%BA%E4%BA%8E%E5%A4%9A%E6%A8%A1%E6%80%81%E5%BC%80%E5%8F%91%E5%A5%97%E4%BB%B6%E7%9A%84%E5%8A%9F%E8%83%BD%E5%BC%80%E5%8F%91%EF%BC%88%E6%96%B9%E6%A1%88A%EF%BC%89\"><\/span>3.2 <strong>\u57fa\u4e8e\u591a\u6a21\u6001\u5f00\u53d1\u5957\u4ef6\u7684\u529f\u80fd\u5f00\u53d1\uff08\u65b9\u6848A\uff09<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u540e\u9762\u4e3b\u8981\u662f\u5d4c\u5165\u5f0f\u786c\u4ef6\u8bbe\u5907\u7684\u5f00\u53d1\u4e86\uff0c\u6211\u4e4b\u524d\u4ece\u6765\u6ca1\u6709\u63a5\u89e6\u8fc7\uff0c\u4e0b\u9762\u8fdb\u884c\u5c1d\u8bd5\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u6211\u4eec\u8fd9\u91cc\u5c1d\u8bd5\u8ba9\u786c\u4ef6\u63a5\u5165\u963f\u91cc\u4e91\u767e\u70bc\u7684\u591a\u6a21\u6001\u4ea4\u4e92\u5f00\u53d1\u5957\u4ef6\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"321_%E8%BD%AF%E4%BB%B6%E5%8A%9F%E8%83%BD%E5%AE%9E%E7%8E%B0%EF%BC%9A%E7%99%BE%E7%82%BC%E5%A4%9A%E6%A8%A1%E6%80%81%E4%BA%A4%E4%BA%92%E5%BC%80%E5%8F%91%E5%A5%97%E4%BB%B6%E5%BC%80%E9%80%9A\"><\/span>3.2.1 <strong>\u8f6f\u4ef6\u529f\u80fd\u5b9e\u73b0\uff1a<\/strong><strong>\u767e\u70bc\u591a\u6a21\u6001\u4ea4\u4e92\u5f00\u53d1\u5957\u4ef6\u5f00\u901a<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u8bbf\u95ee <a href=\"https:\/\/bailian.console.aliyun.com\/cn-beijing\/?spm=5176.29619931.J_C-NDPSQ8SFKWB4aef8i6I.1.140510d7M6f6N4&amp;tab=app#\/app\/app-market\/multi-modal-app\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/bailian.console.aliyun.com\/cn-beijing\/?spm=5176.29619931.J_C-NDPSQ8SFKWB4aef8i6I.1.140510d7M6f6N4&amp;tab=app#\/app\/app-market\/multi-modal-app<\/a>\u5f00\u901a\u591a\u6a21\u6001\u4ea4\u4e92\u5f00\u53d1\u5957\u4ef6\u7684\u670d\u52a1\uff0c\u5e76\u521b\u5efa\u4e00\u4e2a\u201c\u591a\u6a21\u6001\u4ea4\u4e92\u5e94\u7528\u201d\uff0c\u9009\u62e9\u81ea\u5b9a\u4e49\u521b\u5efa\uff0c\u5176\u4ed6\u5185\u5bb9\u53ef\u4ee5\u5148\u4fdd\u6301\u9ed8\u8ba4\u914d\u7f6e\uff0c\u6700\u540e\u70b9\u51fb\u53d1\u5e03\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"533\" src=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-41-1024x533.png\" alt=\"\" class=\"wp-image-2335\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-41-1024x533.png 1024w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-41-300x156.png 300w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-41-768x399.png 768w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-41.png 1438w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"491\" src=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-42-1024x491.png\" alt=\"\" class=\"wp-image-2337\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-42-1024x491.png 1024w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-42-300x144.png 300w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-42-768x368.png 768w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-42.png 1444w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u53d1\u5e03\u540e\uff0c\u70b9\u51fb\u7acb\u5373\u8fd0\u884c\uff0c\u5e76\u6253\u5f00\u89c6\u9891\u6a21\u5f0f\uff0c\u53ef\u4ee5\u76f4\u63a5\u8fdb\u884c\u5bf9\u8bdd\uff0c\u8bc1\u660e\u5e94\u7528\u521b\u5efa\u6210\u529f\u5e76\u53ef\u7528\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"667\" src=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-43-1024x667.png\" alt=\"\" class=\"wp-image-2338\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-43-1024x667.png 1024w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-43-300x195.png 300w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-43-768x500.png 768w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-43.png 1446w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u6ce8\uff1a\u4e0b\u56fe\u7ea2\u6846\u7684\u514d\u8d39\u989d\u5ea6\u5efa\u8bae\u70b9\u51fb\u5f00\u901a\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"386\" src=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-44-1024x386.png\" alt=\"\" class=\"wp-image-2339\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-44-1024x386.png 1024w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-44-300x113.png 300w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-44-768x290.png 768w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-44.png 1448w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"322_%E4%B8%8B%E8%BD%BD%E5%A4%9A%E6%A8%A1%E6%80%81%E4%BA%A4%E4%BA%92%E5%BC%80%E5%8F%91%E5%A5%97%E4%BB%B6SDK\"><\/span>3.2.2 <strong>\u4e0b\u8f7d\u591a\u6a21\u6001\u4ea4\u4e92\u5f00\u53d1\u5957\u4ef6SDK<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u8bbf\u95ee\u94fe\u63a5 <a href=\"https:\/\/help.aliyun.com\/zh\/model-studio\/mmi-rtos-sdk\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/help.aliyun.com\/zh\/model-studio\/mmi-rtos-sdk<\/a>\uff0c\u6309\u7167\u4e0b\u56fe\u4e0b\u8f7d\u5bf9\u5e94\u7248\u672c\u7684SDK\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"791\" src=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-45-1024x791.png\" alt=\"\" class=\"wp-image-2341\" style=\"aspect-ratio:1.294672960215779;width:533px;height:auto\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-45-1024x791.png 1024w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-45-300x232.png 300w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-45-768x593.png 768w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-45.png 1450w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"323_%E7%A1%AC%E4%BB%B6%E9%9B%86%E6%88%90%EF%BC%9A%E5%A4%9A%E6%A8%A1%E6%80%81%E4%BA%A4%E4%BA%92%E5%BC%80%E5%8F%91%E5%A5%97%E4%BB%B6SDK%E9%9B%86%E6%88%90%E5%88%B0BK7258\"><\/span>3.2.3 <strong>\u786c\u4ef6\u96c6\u6210\uff1a<\/strong><strong>\u591a\u6a21\u6001\u4ea4\u4e92\u5f00\u53d1\u5957\u4ef6SDK\u96c6\u6210\u5230BK7258<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u540e\u9762\u7684\u90e8\u5206\uff0c\u6211\u4eec\u5c1d\u8bd5\u8ba9AI\u7f16\u7801\u52a9\u624bQoder\u5e2e\u5fd9\u8fdb\u884c\u5206\u6790\u548c\u5904\u7406\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u628a\u5982\u4e0b\u9700\u6c42\u63cf\u8ff0\u7ed9Qoder\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\u80cc\u666f\uff1a\n\u5728\u535a\u901aBK7258 AI\u5f00\u53d1\u677f\u4e0a\uff0c\u901a\u8fc7armino\u5f00\u53d1\u6846\u67b6\uff0c\u57fa\u4e8ebeken_genie\u7684\u9879\u76ee\u5de5\u7a0b\u505a\u529f\u80fd\u5f00\u53d1\u3002\n\u8be5\u9879\u76ee\u7684\u7ed3\u6784\uff0c\u4ee5\u53ca\u540e\u7eed\u7684\u6539\u52a8\uff0c\u8bf7\u52a1\u5fc5\u53c2\u8003beken_genie\u7684\u9879\u76ee\u5de5\u7a0b\u6587\u6863\uff0c\u94fe\u63a5\u5982\u4e0b https:\/\/docs.bekencorp.com\/arminodoc\/bk_aidk\/bk7258\/zh_CN\/v2.0.1\/projects\/beken_genie\/index.html\n\n\u9700\u6c42\uff1a\n\u8be5\u9879\u76ee\u5c1d\u8bd5\u7528\u963f\u91cc\u4e91\u591a\u6a21\u6001\u4ea4\u4e92\u5f00\u53d1\u5957\u4ef6\u7684SDK\u66ff\u6362beken_genie\u9879\u76ee\u4e2d\u7684ASR+LLM+TTS\uff0c\u76f8\u5173SDK\u8f6f\u4ef6\u5df2\u4e0b\u8f7d\u653e\u5230toQoder\u6587\u4ef6\u5939\u4e0b\u7684qwen_sdk\u4e2d\uff0c\n\u8be5SDK\u7684\u4f7f\u7528\u6587\u6863\uff0c\u53ef\u4ee5\u53c2\u8003https:\/\/help.aliyun.com\/zh\/model-studio\/mmi-rtos-sdk\uff1b\n\n\u5177\u4f53\u8981\u6c42\uff1a\n1. \u963f\u91cc\u4e91\u591a\u6a21\u6001\u4ea4\u4e92\u5f00\u53d1\u5957\u4ef6\u4f7f\u7528\u7684\u662f\u540e\u4ed8\u8d39\u6a21\u5f0f\uff0c\u6309\u7167\u6587\u6863\uff0c\u201c\u5f53\u4e0d\u52a0\u8f7dlibc_license.a\u65f6\u4e3a\u540e\u4ed8\u8d39\u6a21\u5f0f\u3002\u201d\n2. \u5bf9\u8bdd\u6a21\u5f0f\u4f7f\u7528: Duplex\uff08\u5168\u53cc\u5de5\uff09\uff1b\n3. \u5fc5\u8981\u7684\u963f\u91cc\u4e91App ID\u3001Workspace ID\u3001API Key\u76f8\u5173\u53c2\u6570\u5982\u4e0b\uff1a\n    CONFIG_QWEN_APP_ID=\"&lt;YOUR_APP_ID&gt;\"\n    CONFIG_QWEN_WS_ID=\"&lt;YOUR_WORKSPACE_ID&gt;\"\n    CONFIG_QWEN_API_KEY=\"&lt;YOUR_API_KEY&gt;\"<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Qoder\u5206\u6790\u9700\u6c42\u540e\u5bf9\u9879\u76ee\u6587\u4ef6\u8fdb\u884c\u76f8\u5e94\u7684\u4fee\u6539\uff0c\u968f\u540e\u5c31\u53ef\u4ee5\u901a\u8fc7\u5982\u4e0b\u6307\u4ee4\u5728Powershell\u8fdb\u884c\u7f16\u8bd1\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cd C:\\Users\\LeoYu\\armino\\bk_aidk-ai_release-v2.0.1.9\\\n.\/dbuild.ps1 make bk7258 PROJECT=beken_genie<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u7f16\u8bd1\u540e\u628a\u5f97\u5230\u7684\u5f97\u5230all-app.bin\u6587\u4ef6\u70e7\u5f55\u5230\u5f00\u53d1\u677f\u4e2d\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"650\" src=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-46-1024x650.png\" alt=\"\" class=\"wp-image-2345\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-46-1024x650.png 1024w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-46-300x190.png 300w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-46-768x487.png 768w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-46.png 1444w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u5b8c\u6210\u70e7\u5f55\u540e\uff0c\u628a\u5f00\u53d1\u677f\u901a\u8fc7type-c\u7ebf\u63a5\u5165\u7535\u8111\uff0c\u5728\u7535\u8111\u7aef\u4f7f\u7528console\u8f6f\u4ef6MobaXterm\u67e5\u770bCOM\u53e3\u65e5\u5fd7\u4fe1\u606f\uff0c\u53d1\u73b0\u5982\u4e0b\u95ee\u9898\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u6808\u6ea2\u51fa\u95ee\u9898\uff1a<br>\u51fa\u73b0 &#8220;Usage fault is caused by indicates that a stack overflow (hardware check) has taken place&#8221; \u9519\u8bef<\/li>\n\n\n\n<li>Qwen SDK \u672a\u521d\u59cb\u5316\uff1a<br>\u663e\u793a &#8220;Qwen voice chat not initialized&#8221;<br>\u8bf4\u660e Qwen SDK \u7684\u521d\u59cb\u5316\u8fc7\u7a0b\u7531\u4e8e\u6808\u6ea2\u51fa\u800c\u4e2d\u65ad<\/li>\n\n\n\n<li>\u540c\u65f6\u4e5f\u6709\u90e8\u5206\u7ec4\u4ef6\u542f\u52a8\u6210\u529f\uff1a<br>\u7cfb\u7edf\u80fd\u591f\u6210\u529f\u542f\u52a8\u5e76\u663e\u793a &#8220;INITED&#8221; \u72b6\u6001<br>CPU1 \u542f\u52a8\u6210\u529f<br>bk_genie_core_init success \u521d\u59cb\u5316\u6210\u529f<br>\u7535\u6c60\u76d1\u63a7\u521d\u59cb\u5316\u6210\u529f<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u628a\u542f\u52a8\u65e5\u5fd7\u548c\u76f8\u5173\u73b0\u8c61\u540c\u6b65\u7ed9Qoder\uff0c\u8fdb\u884c\u529f\u80fd\u4fee\u590d\u548c\u4f18\u5316\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u8e29\u5751\u70b9\uff1a<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">1. \u7f16\u8bd1\u8fc7\u7a0b\u4e2d\u9047\u5230ninja: error: loading &#8216;build.ninja&#8217;: No such file or directory\u9519\u8bef\uff0c\u8fd9\u662f\u6784\u5efa\u7cfb\u7edf\u95ee\u9898\uff08build.ninja \u6587\u4ef6\u4e22\u5931\uff09\uff0c\u53ef\u901a\u8fc7\u5982\u4e0b\u6307\u4ee4\u6e05\u7406\u540e\u91cd\u65b0\u6784\u5efa\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cd c:\\Users\\LeoYu\\armino\\bk_aidk-ai_release-v2.0.1.9; Remove-Item -Recurse -Force build\\beken_genie\\bk7258_cp2 -ErrorAction SilentlyContinue; .\\dbuild.ps1 make bk7258 PROJECT=beken_genie<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">2. \u9047\u5230TTS\u64ad\u653e\u5927\u6a21\u578b\u58f0\u97f3\u5361\u987f\u7684\u95ee\u9898\uff0c\u662f\u56e0\u4e3aplayer_rb_size\u7f13\u51b2\u533a\u4e0d\u8db3\uff0c\u5bfc\u81f4\u5927\u91cf\u97f3\u9891\u6570\u636e\u6ea2\u51fa\u4e22\u5931\uff0c\u4e91\u7aefTTS\u97f3\u9891\u63a8\u9001\u901f\u7387 ~120KB\/s\uff0c\u672c\u6587\u4e2d\u5c06 player_rb_size \u589e\u5927\u5230 900KB\u89e3\u51b3\u4e86\u8be5\u95ee\u9898\uff1b<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">3. make \u662f\u589e\u91cf\u7f16\u8bd1\uff0c\u901a\u5e38\u53ea\u7f16\u8bd1\u4fee\u6539\u8fc7\u7684\u6587\u4ef6\uff0c\u6240\u4ee5\u6b65\u9aa4\u4e0a\u4e5f\u6bd4\u7b2c\u4e00\u6b21\u7f16\u8bd1\u5c11\u5f88\u591a\uff0c\u4f46\u662f\u5982\u679c\u6709\u4ee5\u4e0b\u60c5\u51b5\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u4fee\u6539\u4e86Kconfig\u914d\u7f6e\uff08\u5982make menuconfig\u540e\uff09<\/li>\n\n\n\n<li>\u5207\u6362\u4e86\u9879\u76ee\u6216\u914d\u7f6e\u6587\u4ef6<\/li>\n\n\n\n<li>\u7f16\u8bd1\u51fa\u73b0\u5947\u602a\u7684\u9519\u8bef\uff08\u5982\u627e\u4e0d\u5230\u5934\u6587\u4ef6\u3001\u94fe\u63a5\u9519\u8bef\uff09<\/li>\n\n\n\n<li>\u4fee\u6539\u4e86CMakeLists.txt\u7ed3\u6784<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u90a3\u53ef\u4ee5\u6267\u884c\u5982\u4e0b\u6e05\u9664\u6307\u4ee4\u540e\u518d\u8fdb\u884c\u7f16\u8bd1<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\u6e05\u9664\u540e\u91cd\u65b0\u7f16\u8bd1\n.\\dbuild.ps1 make bk7258 PROJECT=beken_genie distclean\n.\\dbuild.ps1 make bk7258 PROJECT=beken_genie<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">4. \u76ee\u524d\u97f3\u9891\u91c7\u6837\u7387\uff0c\u4e0a\u4e0b\u884c\u90fd\u662f16kHz\uff0c\u9a8c\u8bc1\u53ef\u7528\uff0c\u5177\u4f53\u6d89\u53ca\u5230\u7684\u76f8\u5173\u914d\u7f6e\uff0c\u603b\u7ed3\u5982\u4e0b\u8868<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"410\" src=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-47-1024x410.png\" alt=\"\" class=\"wp-image-2347\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-47-1024x410.png 1024w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-47-300x120.png 300w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-47-768x308.png 768w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-47.png 1442w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u7ecf\u8fc7\u591a\u8f6e\u4f18\u5316\uff0c\u76ee\u524d\u5df2\u5b9e\u73b0\u5982\u4e0b\u5bf9\u8bdd\u529f\u80fd\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u8bed\u97f3\u5524\u9192<\/strong>: \u652f\u6301\u8bed\u97f3\u5524\u9192\u8bcd\u89e6\u53d1\u5bf9\u8bdd\uff08\u76ee\u524d\u4f7f\u7528\u7684\u662fbeken_genie\u9879\u76ee\u9ed8\u8ba4\u5524\u9192\u8bcd\uff1a<code>hi armino<\/code>&nbsp;\u6216&nbsp;<code>\u55e8\u963f\u7c73\u8bfa<\/code>&nbsp;\u7528\u4e8e\u5524\u9192\uff0c<code>byebye armino<\/code>&nbsp;\u6216&nbsp;<code>\u62dc\u62dc\u963f\u7c73\u8bfa<\/code>&nbsp;\u7528\u4e8e\u5173\u95ed\uff09<\/li>\n\n\n\n<li><strong>\u5168\u53cc\u5de5\u5bf9\u8bdd<\/strong>: \u91c7\u7528 Duplex \u6a21\u5f0f\uff0c\u652f\u6301\u5b9e\u65f6\u53cc\u5411\u8bed\u97f3\u4ea4\u4e92<\/li>\n\n\n\n<li><strong>\u8bed\u97f3\u8bc6\u522b(ASR)<\/strong>: \u963f\u91cc\u4e91\u767e\u70bc\u4e91\u7aef\u591a\u6a21\u6001\u4ea4\u4e92\u5f00\u53d1\u5957\u4ef6ASR\u670d\u52a1<\/li>\n\n\n\n<li><strong>\u5927\u8bed\u8a00\u6a21\u578b\u667a\u80fd\u95ee\u7b54(LLM)<\/strong>: \u963f\u91cc\u4e91\u767e\u70bc\u4e91\u7aef\u591a\u6a21\u6001\u4ea4\u4e92\u5f00\u53d1\u5957\u4ef6\u6587\u672c\u6a21\u578b\u667a\u80fd\u95ee\u7b54<\/li>\n\n\n\n<li><strong>\u8bed\u97f3\u5408\u6210(TTS)<\/strong>: \u963f\u91cc\u4e91\u767e\u70bc\u4e91\u7aef\u591a\u6a21\u6001\u4ea4\u4e92\u5f00\u53d1\u5957\u4ef6TTS\u670d\u52a1\uff0c\u97f3\u8272\u4e3a CosyVoice-v3-Flash (\u9f99\u83f2\u83f2)<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u6700\u540e\uff0c\u53ef\u4ee5\u8ba9Qoder\u751f\u6210\u9700\u6c42\u6587\u6863\u5982\u4e0b\uff0c\u5305\u542b\u63cf\u8ff0\u6574\u4e2a\u9879\u76ee\u529f\u80fd\u548c\u57fa\u4e8ebeken_genie\u9879\u76ee\u505a\u7684\u6240\u6709\u6539\u52a8\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># BK7258 AI\u5f00\u53d1\u677f - \u963f\u91cc\u4e91\u591a\u6a21\u6001\u4ea4\u4e92\u5f00\u53d1\u5957\u4ef6\u96c6\u6210 Spec \u6587\u6863\n\n## 1. \u9879\u76ee\u6982\u8ff0\n\n### 1.1 \u80cc\u666f\n\u672c\u9879\u76ee\u57fa\u4e8e\u535a\u901a\uff08Beken\uff09BK7258 AI\u5f00\u53d1\u677f\uff0c\u4f7f\u7528 Armino AIDK SDK (v2.0.1.9) \u5f00\u53d1\u6846\u67b6\uff0c\u5bf9\u5b98\u65b9 `beken_genie` \u9879\u76ee\u8fdb\u884c\u529f\u80fd\u5b9a\u5236\u5f00\u53d1\u3002\u76ee\u6807\u662f\u5c06BK7258 AI\u5f00\u53d1\u677f\u539f\u751f\u96c6\u6210\u7684AI\u8bed\u97f3\u5bf9\u8bdd\u529f\u80fd\uff08ASR+LLM+TTS\uff09\u66ff\u6362\u4e3a\u963f\u91cc\u4e91\u767e\u70bc\u591a\u6a21\u6001\u4ea4\u4e92\u5f00\u53d1\u5957\u4ef6\uff08MMI RTOS SDK\uff09\uff0c\u5b9e\u73b0\u5b9a\u5236\u5316\u7684\u8bed\u97f3\u4ea4\u4e92\u4f53\u9a8c\u3002\n\n### 1.2 \u786c\u4ef6\u5e73\u53f0\n- **\u5f00\u53d1\u677f**: \u535a\u901a BK7258 AI\u5f00\u53d1\u5957\u4ef6\n- **\u82af\u7247**: BK7258 \u53cc\u6838\u5904\u7406\u5668 (CPU0 + CPU1)\n- **\u97f3\u9891**: 16kHz PCM \u91c7\u6837\uff0c\u652f\u6301\u53cc\u9ea6\u514b\u98ce\u8f93\u5165\u548c\u626c\u58f0\u5668\u8f93\u51fa\n- **\u7f51\u7edc**: Wi-Fi \u8fde\u63a5\n\n### 1.3 \u8f6f\u4ef6\u6846\u67b6\n- **SDK\u7248\u672c**: bk_aidk-ai_release-v2.0.1.9\n- **\u5f00\u53d1\u6846\u67b6**: Armino AIDK SDK\n- **\u57fa\u7840\u9879\u76ee**: beken_genie\n- **\u7f16\u8bd1\u73af\u5883**: Docker + PowerShell (Windows)\n\n---\n\n## 2. \u6838\u5fc3\u529f\u80fd\n\n### 2.1 \u8bed\u97f3\u5524\u9192\u4e0e\u5bf9\u8bdd\n- **\u8bed\u97f3\u5524\u9192**: \u652f\u6301\u8bed\u97f3\u5524\u9192\u8bcd\u89e6\u53d1\u5bf9\u8bdd\uff08\u76ee\u524d\u4f7f\u7528\u7684\u662fbeken_genie\u9879\u76ee\u9ed8\u8ba4\u5524\u9192\u8bcd\uff1ahi&nbsp;armino&nbsp;\u6216&nbsp;\u55e8\u963f\u7c73\u8bfa&nbsp;\u7528\u4e8e\u5524\u9192\uff0cbyebye&nbsp;armino&nbsp;\u6216&nbsp;\u62dc\u62dc\u963f\u7c73\u8bfa&nbsp;\u7528\u4e8e\u5173\u95ed\uff09\n- **\u5168\u53cc\u5de5\u5bf9\u8bdd**: \u91c7\u7528 Duplex \u6a21\u5f0f\uff0c\u652f\u6301\u5b9e\u65f6\u53cc\u5411\u8bed\u97f3\u4ea4\u4e92\n- **\u8bed\u97f3\u8bc6\u522b(ASR)**: \u963f\u91cc\u4e91\u767e\u70bc\u4e91\u7aef\u591a\u6a21\u6001\u4ea4\u4e92\u5f00\u53d1\u5957\u4ef6ASR\u670d\u52a1\n- **\u5927\u8bed\u8a00\u6a21\u578b\u667a\u80fd\u95ee\u7b54(LLM)**: \u963f\u91cc\u4e91\u767e\u70bc\u4e91\u7aef\u591a\u6a21\u6001\u4ea4\u4e92\u5f00\u53d1\u5957\u4ef6\u6587\u672c\u6a21\u578b\u667a\u80fd\u95ee\u7b54\n- **\u8bed\u97f3\u5408\u6210(TTS)**: \u963f\u91cc\u4e91\u767e\u70bc\u4e91\u7aef\u591a\u6a21\u6001\u4ea4\u4e92\u5f00\u53d1\u5957\u4ef6TTS\u670d\u52a1\uff0c\u97f3\u8272\u4e3a CosyVoice-v3-Flash (\u9f99\u83f2\u83f2)\n\n### 2.2 \u7f51\u7edc\u8fde\u63a5\n- **Wi-Fi\u8fde\u63a5**: \u81ea\u52a8\u8fde\u63a5\u914d\u7f6e\u7684Wi-Fi\u7f51\u7edc\n- **WebSocket\u901a\u4fe1**: \u4e0e\u963f\u91cc\u4e91\u767e\u70bc\u670d\u52a1\u5efa\u7acbWSS\u5b89\u5168\u8fde\u63a5\n- **\u81ea\u52a8\u91cd\u8fde**: \u7f51\u7edc\u65ad\u5f00\u540e\u81ea\u52a8\u91cd\u8fde\u673a\u5236\n\n### 2.3 \u97f3\u9891\u5904\u7406\n- **\u97f3\u9891\u91c7\u96c6**: 16kHz 16bit PCM \u683c\u5f0f\n- **\u97f3\u9891\u64ad\u653e**: 16kHz 16bit PCM \u683c\u5f0f\n- **\u97f3\u91cf\u63a7\u5236**: 0-100\u7ea7\u97f3\u91cf\u8c03\u8282\uff0c\u4e0e\u7cfb\u7edf\u97f3\u91cf\u540c\u6b65\n- **AEC\u652f\u6301**: \u652f\u6301\u56de\u58f0\u6d88\u9664\n\n### 2.4 LED\u72b6\u6001\u6307\u793a\n- **\u7eff\u8272\u5e38\u4eae**: \u670d\u52a1\u8fde\u63a5\u6210\u529f\n- **\u7ea2\u8272\u5e38\u4eae**: \u670d\u52a1\u65ad\u5f00\n- **\u7ea2\u8272\u5feb\u95ea**: \u670d\u52a1\u9519\u8bef\n\n---\n\n## 3. \u963f\u91cc\u4e91\u767e\u70bc\u670d\u52a1\u914d\u7f6e\n\n### 3.1 \u670d\u52a1\u6a21\u5f0f\n\u91c7\u7528**\u540e\u4ed8\u8d39\u6a21\u5f0f**\uff0c\u6309\u7167\u963f\u91cc\u4e91\u6587\u6863\u8bf4\u660e\uff0c\u4e0d\u52a0\u8f7d `libc_license.a` \u5e93\u6587\u4ef6\u3002\n\n### 3.2 \u5fc5\u8981\u914d\u7f6e\u53c2\u6570\n```c\nCONFIG_QWEN_APP_ID=\"&lt;YOUR_APP_ID&gt;\"\nCONFIG_QWEN_WS_ID=\"&lt;YOUR_WORKSPACE_ID&gt;\"\nCONFIG_QWEN_API_KEY=\"&lt;YOUR_API_KEY&gt;\"\nCONFIG_QWEN_DEVICE_NAME=\"beken_genie_device\"\n```\n\n**\u83b7\u53d6\u65b9\u5f0f**:\n1. \u767b\u5f55 &#91;\u963f\u91cc\u4e91\u767e\u70bc\u63a7\u5236\u53f0](https:\/\/bailian.console.aliyun.com\/)\n2. \u521b\u5efa\u591a\u6a21\u6001\u4ea4\u4e92\u5e94\u7528\n3. \u5728\u5e94\u7528\u8be6\u60c5\u9875\u83b7\u53d6 App ID\u3001Workspace ID \u548c API Key\n\n### 3.3 \u5de5\u4f5c\u6a21\u5f0f\n- **\u6a21\u5f0f**: Duplex\uff08\u5168\u53cc\u5de5\uff09\n- **\u97f3\u9891\u6d41\u6a21\u5f0f**: PCM \u683c\u5f0f\n- **\u91c7\u6837\u7387**: 16kHz\uff08\u4e0a\u884c\u548c\u4e0b\u884c\uff09\n- **\u6587\u672c\u6a21\u5f0f**: ASR\u548cLLM\u6587\u672c\u540c\u65f6\u8fd4\u56de\n\n---\n\n## 4. \u9879\u76ee\u7ed3\u6784\u6539\u52a8\n\n### 4.1 \u65b0\u589e\u7ec4\u4ef6\n\n#### 4.1.1 qwen_voice_chat \u7ec4\u4ef6\n**\u8def\u5f84**: `projects\/common_components\/qwen_voice_chat\/`\n\n**\u6587\u4ef6\u7ed3\u6784**:\n```\nqwen_voice_chat\/\n\u251c\u2500\u2500 CMakeLists.txt          # \u7ec4\u4ef6\u6784\u5efa\u914d\u7f6e\n\u251c\u2500\u2500 Kconfig                 # \u83dc\u5355\u914d\u7f6e\u9009\u9879\n\u251c\u2500\u2500 README.md               # \u7ec4\u4ef6\u8bf4\u660e\u6587\u6863\n\u251c\u2500\u2500 RESOURCE_OPTIMIZATION.md # \u8d44\u6e90\u4f18\u5316\u8bf4\u660e\n\u251c\u2500\u2500 include\/\n\u2502   \u251c\u2500\u2500 qwen_audio_engine.h # \u97f3\u9891\u5f15\u64ce\u5934\u6587\u4ef6\n\u2502   \u251c\u2500\u2500 qwen_voice_chat.h   # \u4e3b\u5934\u6587\u4ef6\n\u2502   \u2514\u2500\u2500 qwen_websocket.h    # WebSocket\u4f20\u8f93\u5c42\u5934\u6587\u4ef6\n\u2514\u2500\u2500 src\/\n    \u251c\u2500\u2500 qwen_audio_engine.c # \u97f3\u9891\u5f15\u64ce\u5b9e\u73b0\uff08\u9ea6\u514b\u98ce\/\u626c\u58f0\u5668\u7ba1\u7406\uff09\n    \u251c\u2500\u2500 qwen_sdk_hal.c      # SDK HAL\u9002\u914d\u5c42\uff08\u65f6\u95f4\/\u5185\u5b58\/\u4e92\u65a5\u9501\u7b49\uff09\n    \u251c\u2500\u2500 qwen_voice_chat.c   # \u6838\u5fc3\u529f\u80fd\u5b9e\u73b0\n    \u2514\u2500\u2500 qwen_websocket.c    # WebSocket\u4f20\u8f93\u5c42\u5b9e\u73b0\n```\n\n**\u529f\u80fd\u8bf4\u660e**:\n- `qwen_voice_chat.c`: \u6838\u5fc3\u6a21\u5757\uff0c\u8d1f\u8d23SDK\u521d\u59cb\u5316\u3001\u914d\u7f6e\u7ba1\u7406\u3001\u4e8b\u4ef6\u5904\u7406\n- `qwen_audio_engine.c`: \u97f3\u9891\u5f15\u64ce\uff0c\u7ba1\u7406BK7258\u97f3\u9891\u786c\u4ef6\u4e0eSDK\u7684\u6570\u636e\u4ea4\u4e92\n- `qwen_websocket.c`: WebSocket\u4f20\u8f93\u5c42\uff0c\u5904\u7406\u4e0e\u963f\u91cc\u4e91\u670d\u52a1\u7684\u7f51\u7edc\u901a\u4fe1\n- `qwen_sdk_hal.c`: \u786c\u4ef6\u62bd\u8c61\u5c42\u9002\u914d\uff0c\u5b9e\u73b0SDK\u6240\u9700\u7684\u7cfb\u7edf\u51fd\u6570\n\n#### 4.1.2 \u963f\u91cc\u4e91SDK\n**\u83b7\u53d6\u8def\u5f84**: https:\/\/help.aliyun.com\/zh\/model-studio\/mmi-rtos-sdk\n\n**\u6587\u4ef6\u7ed3\u6784**:\n```\nqwen_sdk\/\n\u251c\u2500\u2500 ReleaseNote.md          # SDK\u7248\u672c\u8bf4\u660e\n\u251c\u2500\u2500 include\/\n\u2502   \u251c\u2500\u2500 c_mmi.h             # MMI\u4e3b\u63a5\u53e3\n\u2502   \u251c\u2500\u2500 c_mmi_config.h      # \u914d\u7f6e\u63a5\u53e3\n\u2502   \u251c\u2500\u2500 c_mmi_msg.h         # \u6d88\u606f\u63a5\u53e3\n\u2502   \u251c\u2500\u2500 c_mmi_storage.h     # \u5b58\u50a8\u63a5\u53e3\n\u2502   \u251c\u2500\u2500 c_utils\/            # \u5de5\u5177\u51fd\u6570\n\u2502   \u251c\u2500\u2500 c_mmi_cmd\/          # \u547d\u4ee4\u63a5\u53e3\n\u2502   \u251c\u2500\u2500 lib_c_sdk.h         # SDK\u57fa\u7840\u63a5\u53e3\n\u2502   \u2514\u2500\u2500 qwen_test.h         # \u6d4b\u8bd5\u63a5\u53e3\n\u251c\u2500\u2500 libs\/\n\u2502   \u251c\u2500\u2500 libqwen_sdk.a       # \u6838\u5fc3SDK\u5e93\uff08\u540e\u4ed8\u8d39\u6a21\u5f0f\uff09\n\u2502   \u251c\u2500\u2500 libc_mmi_cmd.a      # \u547d\u4ee4\u5e93\n\u2502   \u251c\u2500\u2500 libc_mmi_cmd_application.a\n\u2502   \u251c\u2500\u2500 libc_mmi_cmd_voice_translate.a\n\u2502   \u251c\u2500\u2500 libc_mmi_cmd_volume.a\n\u2502   \u2514\u2500\u2500 libhal_dummy.a      # HAL\u865a\u62df\u5e93\n\u2514\u2500\u2500 third_party\/\n    \u251c\u2500\u2500 cJSON\/              # JSON\u89e3\u6790\u5e93\n    \u2514\u2500\u2500 tinycrypt\/          # \u52a0\u5bc6\u5e93\n```\n\n### 4.2 \u4fee\u6539\u7684\u6587\u4ef6\n\n#### 4.2.1 beken_genie \u4e3b\u9879\u76ee\n**\u8def\u5f84**: `projects\/beken_genie\/`\n\n**\u4fee\u6539\u6587\u4ef6**:\n\n1. **CMakeLists.txt**\n   - \u6dfb\u52a0 `qwen_voice_chat` \u7ec4\u4ef6\u5230 `EXTRA_COMPONENTS_DIRS`\n   - \u6dfb\u52a0 `qwen_voice_chat` \u5230\u4f9d\u8d56\u5217\u8868\n\n2. **main\/CMakeLists.txt**\n   - \u5728 `PRIV_REQUIRES` \u4e2d\u6dfb\u52a0 `qwen_voice_chat` \u4f9d\u8d56\n\n3. **main\/app_main.c** (\u4e3b\u8981\u6539\u52a8)\n   - \u6dfb\u52a0\u6761\u4ef6\u7f16\u8bd1\u652f\u6301 `CONFIG_QWEN_VOICE_CHAT`\n   - \u5f53\u542f\u7528Qwen SDK\u65f6\uff0c\u7981\u7528\u539f\u6709\u7684 `audio_engine`\u3001`video_engine` \u521d\u59cb\u5316\u4ee5\u907f\u514d\u8d44\u6e90\u51b2\u7a81\n   - \u6dfb\u52a0Qwen\u4e8b\u4ef6\u56de\u8c03\u51fd\u6570 `qwen_event_callback()`\n   - \u5728 `user_app_main()` \u4e2d\u521d\u59cb\u5316Qwen\u8bed\u97f3\u5bf9\u8bdd\u529f\u80fd\n   - \u914d\u7f6e\u4e3aDuplex\u5168\u53cc\u5de5\u6a21\u5f0f\n   - \u5ef6\u8fdf\u521d\u59cb\u5316\u4ee5\u786e\u4fdd\u7cfb\u7edf\u7a33\u5b9a\u6027\n   - \u5728 `main()` \u4e2d\u8df3\u8fc7\u539f\u6709\u7684 `audio_turn_on()` \u8c03\u7528\uff08Qwen SDK\u72ec\u7acb\u7ba1\u7406\u97f3\u9891\uff09\n\n4. **main\/Kconfig.projbuild**\n   - \u4fdd\u7559\u539f\u6709\u914d\u7f6e\uff08\u672a\u4fee\u6539\uff09\n\n### 4.3 \u914d\u7f6e\u7cfb\u7edf\u6539\u52a8\n\n#### 4.3.1 Kconfig \u914d\u7f6e\n**\u6587\u4ef6**: `projects\/common_components\/qwen_voice_chat\/Kconfig`\n\n**\u65b0\u589e\u914d\u7f6e\u9879**:\n```\nQWEN_VOICE_CHAT          - \u542f\u7528Qwen\u8bed\u97f3\u5bf9\u8bdd\u529f\u80fd\nQWEN_VOICE_CHAT_DEBUG    - \u542f\u7528\u8c03\u8bd5\u65e5\u5fd7\nQWEN_APP_ID              - \u963f\u91cc\u4e91App ID\nQWEN_WS_ID               - \u963f\u91cc\u4e91Workspace ID\nQWEN_API_KEY             - \u963f\u91cc\u4e91API Key\nQWEN_DEVICE_NAME         - \u8bbe\u5907\u540d\u79f0\nQWEN_MODE_DUPLEX         - \u5168\u53cc\u5de5\u6a21\u5f0f\uff08\u9ed8\u8ba4\uff09\nQWEN_MODE_PUSH2TALK      - \u6309\u952e\u8bf4\u8bdd\u6a21\u5f0f\nQWEN_MODE_TAP2TALK       - \u70b9\u51fb\u8bf4\u8bdd\u6a21\u5f0f\nQWEN_RECORDER_BUFFER_SIZE - \u5f55\u97f3\u7f13\u51b2\u533a\u5927\u5c0f(KB)\nQWEN_PLAYER_BUFFER_SIZE  - \u64ad\u653e\u7f13\u51b2\u533a\u5927\u5c0f(KB)\nQWEN_INIT_DELAY_MS       - \u521d\u59cb\u5316\u5ef6\u8fdf(ms)\nQWEN_VOLUME_LEVEL        - \u9ed8\u8ba4\u97f3\u91cf\u7ea7\u522b\n```\n\n#### 4.3.2 sdkconfig \u914d\u7f6e\n**\u8def\u5f84**: `build\/beken_genie\/bk7258\/config\/sdkconfig.h`\n\n**\u751f\u6210\u7684\u914d\u7f6e\u5b8f**:\n```c\n#define CONFIG_QWEN_VOICE_CHAT 1\n#define CONFIG_QWEN_VOICE_CHAT_DEBUG 1\n#define CONFIG_QWEN_APP_ID \"&lt;YOUR_APP_ID&gt;\"\n#define CONFIG_QWEN_WS_ID \"&lt;YOUR_WORKSPACE_ID&gt;\"\n#define CONFIG_QWEN_API_KEY \"&lt;YOUR_API_KEY&gt;\"\n#define CONFIG_QWEN_DEVICE_NAME \"beken_genie_device\"\n#define CONFIG_QWEN_MODE_DUPLEX 1\n#define CONFIG_QWEN_RECORDER_BUFFER_SIZE 4\n#define CONFIG_QWEN_PLAYER_BUFFER_SIZE 4\n#define CONFIG_QWEN_INIT_DELAY_MS 4000\n#define CONFIG_QWEN_VOLUME_LEVEL 80\n```\n\n---\n\n## 5. \u6280\u672f\u5b9e\u73b0\u7ec6\u8282\n\n### 5.1 \u97f3\u9891\u6570\u636e\u6d41\n\n```\n\u9ea6\u514b\u98ce\u91c7\u96c6 \u2192 BK7258\u97f3\u9891\u9a71\u52a8 \u2192 qwen_audio_engine.c \u2192 c_mmi_put_recorder_data() \u2192 Qwen SDK \u2192 WebSocket\u53d1\u9001\n\nWebSocket\u63a5\u6536 \u2192 Qwen SDK \u2192 c_mmi_get_player_data() \u2192 qwen_websocket.c \u2192 BK7258\u97f3\u9891\u9a71\u52a8 \u2192 \u626c\u58f0\u5668\u64ad\u653e\n```\n\n### 5.2 \u521d\u59cb\u5316\u6d41\u7a0b\n\n1. **\u7cfb\u7edf\u542f\u52a8**: `main()` \u51fd\u6570\u6267\u884c\n2. **\u57fa\u7840\u670d\u52a1\u521d\u59cb\u5316**: `bk_init()`, `media_service_init()`\n3. **\u7528\u6237\u5e94\u7528\u542f\u52a8**: `user_app_main()`\n4. **Qwen\u521d\u59cb\u5316**:\n   - \u914d\u7f6eApp ID\u3001Workspace ID\u3001API Key\n   - \u914d\u7f6e\u97f3\u9891\u53c2\u6570\uff0816kHz PCM, Duplex\u6a21\u5f0f\uff09\n   - \u521d\u59cb\u5316\u97f3\u9891\u5f15\u64ce\n   - \u6ce8\u518c\u7f51\u7edc\u4e8b\u4ef6\u56de\u8c03\n   - \u68c0\u67e5Wi-Fi\u8fde\u63a5\u72b6\u6001\n5. **Wi-Fi\u8fde\u63a5\u540e**:\n   - \u89e6\u53d1 `EVENT_NETIF_GOT_IP4` \u4e8b\u4ef6\n   - \u542f\u52a8WebSocket\u8fde\u63a5\n   - \u542f\u52a8\u97f3\u9891\u91c7\u96c6\u548c\u64ad\u653e\n\n### 5.3 \u4e8b\u4ef6\u5904\u7406\u673a\u5236\n\n**Qwen SDK\u4e8b\u4ef6**:\n- `C_MMI_EVENT_USER_CONFIG`: \u7528\u6237\u914d\u7f6e\u4e8b\u4ef6\n- `C_MMI_EVENT_DATA_INIT`: SDK\u521d\u59cb\u5316\u5b8c\u6210\n- `C_MMI_EVENT_SPEECH_READY`: \u8bed\u97f3\u670d\u52a1\u5c31\u7eea\n- `C_MMI_EVENT_ASR_COMPLETE`: ASR\u8bc6\u522b\u5b8c\u6210\n- `C_MMI_EVENT_TTS_START\/TTS_END`: TTS\u5f00\u59cb\/\u7ed3\u675f\n- `C_MMI_EVENT_DATA_DEINIT`: SDK\u53cd\u521d\u59cb\u5316\n\n**\u5e94\u7528\u5c42\u4e8b\u4ef6\u56de\u8c03**:\n- `QWEN_EVENT_CONNECTED`: \u670d\u52a1\u8fde\u63a5\u6210\u529f\n- `QWEN_EVENT_DISCONNECTED`: \u670d\u52a1\u65ad\u5f00\n- `QWEN_EVENT_ERROR`: \u670d\u52a1\u9519\u8bef\n- `QWEN_EVENT_ASR_RESULT`: ASR\u8bc6\u522b\u7ed3\u679c\n- `QWEN_EVENT_TTS_DATA`: TTS\u6570\u636e\n\n### 5.4 \u8d44\u6e90\u7ba1\u7406\n\n**\u5185\u5b58\u4f7f\u7528**:\n- \u5f55\u97f3\u7f13\u51b2\u533a: 8KB (\u53ef\u914d\u7f6e)\n- \u64ad\u653e\u7f13\u51b2\u533a: 900KB (\u5339\u914d\u4e91\u7aef\u63a8\u9001\u901f\u7387)\n- WebSocket\u53d1\u9001\u7f13\u51b2\u533a: 8KB\n- WebSocket\u63a5\u6536\u7f13\u51b2\u533a: 8KB\n\n**\u7ebf\u7a0b**:\n- \u53d1\u9001\u4efb\u52a1: 6KB\u6808\u7a7a\u95f4\uff0c\u8d1f\u8d23\u5c06SDK\u6570\u636e\u53d1\u9001\u5230WebSocket\n- \u64ad\u653e\u5b9a\u65f6\u5668: 20ms\u5468\u671f\uff0c\u8d1f\u8d23\u4eceSDK\u83b7\u53d6\u64ad\u653e\u6570\u636e\n\n---\n\n## 6. \u7f16\u8bd1\u4e0e\u70e7\u5f55\n\n### 6.1 \u7f16\u8bd1\u547d\u4ee4\n```powershell\ncd C:\\Users\\LeoYu\\armino\\bk_aidk-ai_release-v2.0.1.9\n.\\dbuild.ps1 make bk7258 PROJECT=beken_genie\n```\n\n### 6.2 \u8f93\u51fa\u6587\u4ef6\n- **\u56fa\u4ef6**: `build\/beken_genie\/bk7258\/all-app.bin`\n- **\u5e94\u7528**: `build\/beken_genie\/bk7258\/app.bin`\n- **\u6620\u5c04\u6587\u4ef6**: `build\/beken_genie\/bk7258\/app.map`\n\n### 6.3 \u70e7\u5f55\u6b65\u9aa4\n1. \u6253\u5f00 BKFIL \u70e7\u5f55\u5de5\u5177\n2. \u9009\u62e9\u6b63\u786e\u7684COM\u7aef\u53e3\n3. \u9009\u62e9 `all-app.bin` \u6587\u4ef6\n4. \u70b9\u51fb\u70e7\u5f55\u6309\u94ae\n5. \u7b49\u5f85\u70e7\u5f55\u5b8c\u6210\n\n---\n\n## 7. \u529f\u80fd\u9a8c\u8bc1\n\n### 7.1 \u6d4b\u8bd5\u9879\u76ee\n- &#91;x] \u8bed\u97f3\u5524\u9192\u529f\u80fd\n- &#91;x] \u8bed\u97f3\u5bf9\u8bdd\u529f\u80fd\n- &#91;x] \u97f3\u91cf\u8c03\u8282\u529f\u80fd\n- &#91;x] \u8bbe\u5907\u91cd\u542f\u529f\u80fd\n\n### 7.2 \u5df2\u77e5\u95ee\u9898\n- TTS\u8f93\u51fa\u5728\u7279\u5b9a\u60c5\u51b5\u4e0b\u53ef\u80fd\u5b58\u5728\u8f7b\u5fae\u5361\u987f\uff08\u5df2\u4f18\u5316\u7f13\u51b2\u533a\u914d\u7f6e\uff09\n\n---\n\n## 8. \u53c2\u8003\u8d44\u6599\n\n### 8.1 \u5b98\u65b9\u6587\u6863\n- &#91;BK7258 AI\u5f00\u53d1\u5957\u4ef6\u6587\u6863](https:\/\/docs.bekencorp.com\/arminodoc\/bk_aidk\/bk7258\/zh_CN\/v2.0.1\/projects\/beken_genie\/index.html)\n- &#91;\u963f\u91cc\u4e91\u767e\u70bcMMI RTOS SDK\u6587\u6863](https:\/\/help.aliyun.com\/zh\/model-studio\/mmi-rtos-sdk)\n\n### 8.2 SDK\u7248\u672c\n- **Qwen SDK\u7248\u672c**: v1.1.0\n- **Armino AIDK SDK**: v2.0.1.9\n\n---\n\n## 9. \u9644\u5f55\n\n### 9.1 \u6587\u4ef6\u53d8\u66f4\u6c47\u603b\n\n| \u6587\u4ef6\u8def\u5f84 | \u53d8\u66f4\u7c7b\u578b | \u8bf4\u660e |\n|---------|---------|------|\n| `projects\/common_components\/qwen_voice_chat\/` | \u65b0\u589e | \u5b8c\u6574\u7684Qwen\u8bed\u97f3\u5bf9\u8bdd\u7ec4\u4ef6 |\n| `toQoder\/qwen_sdk\/` | \u65b0\u589e | \u963f\u91cc\u4e91\u767e\u70bcSDK |\n| `projects\/beken_genie\/CMakeLists.txt` | \u4fee\u6539 | \u6dfb\u52a0\u7ec4\u4ef6\u8def\u5f84\u548c\u4f9d\u8d56 |\n| `projects\/beken_genie\/main\/CMakeLists.txt` | \u4fee\u6539 | \u6dfb\u52a0qwen_voice_chat\u4f9d\u8d56 |\n| `projects\/beken_genie\/main\/app_main.c` | \u4fee\u6539 | \u96c6\u6210Qwen SDK\u521d\u59cb\u5316\u903b\u8f91 |\n| `projects\/common_components\/qwen_voice_chat\/Kconfig` | \u65b0\u589e | \u914d\u7f6e\u83dc\u5355\u5b9a\u4e49 |\n\n### 9.2 \u5173\u952eAPI\u5217\u8868\n\n**\u521d\u59cb\u5316\u4e0e\u751f\u547d\u5468\u671f**:\n- `qwen_voice_chat_init()` - \u521d\u59cb\u5316\n- `qwen_voice_chat_start()` - \u542f\u52a8\u670d\u52a1\n- `qwen_voice_chat_stop()` - \u505c\u6b62\u670d\u52a1\n- `qwen_voice_chat_deinit()` - \u53cd\u521d\u59cb\u5316\n\n**\u914d\u7f6e\u4e0e\u63a7\u5236**:\n- `qwen_voice_chat_set_work_mode()` - \u8bbe\u7f6e\u5de5\u4f5c\u6a21\u5f0f\n- `qwen_voice_chat_set_voice_id()` - \u8bbe\u7f6e\u97f3\u8272\n- `qwen_voice_chat_set_volume()` - \u8bbe\u7f6e\u97f3\u91cf\n- `qwen_voice_chat_get_volume()` - \u83b7\u53d6\u97f3\u91cf\n\n**\u72b6\u6001\u67e5\u8be2**:\n- `qwen_voice_chat_is_connected()` - \u68c0\u67e5\u8fde\u63a5\u72b6\u6001\n- `qwen_voice_chat_reset_dialog()` - \u91cd\u7f6e\u5bf9\u8bdd\u4e0a\u4e0b\u6587\n\n---\n\n## 10. \u5b89\u5168\u6ce8\u610f\u4e8b\u9879\n\n### 10.1 API Key \u5b89\u5168\n- **\u4e0d\u8981\u5c06\u771f\u5b9e\u7684 API Key \u63d0\u4ea4\u5230\u4ee3\u7801\u4ed3\u5e93**\n- \u4f7f\u7528\u73af\u5883\u53d8\u91cf\u6216\u914d\u7f6e\u6587\u4ef6\u7ba1\u7406\u654f\u611f\u4fe1\u606f\n- \u5728 `sdkconfig` \u6587\u4ef6\u4e2d\u8bbe\u7f6e\u654f\u611f\u914d\u7f6e\n- \u751f\u4ea7\u73af\u5883\u4e2d\u8003\u8651\u4f7f\u7528\u52a0\u5bc6\u5b58\u50a8\n\n### 10.2 \u914d\u7f6e\u793a\u4f8b\n\u5728 `sdkconfig` \u6216 `Kconfig` \u4e2d\u914d\u7f6e:\n```\nCONFIG_QWEN_APP_ID=\"mm_xxxxxxxxxxxxxxxxxxxx\"\nCONFIG_QWEN_WS_ID=\"llm-xxxxxxxxxxxxx\"\nCONFIG_QWEN_API_KEY=\"sk-xxxxxxxxxxxxxxxxxxxxxxxx\"\n```\n\n### 10.3 \u83b7\u53d6\u963f\u91cc\u4e91\u51ed\u8bc1\n1. \u8bbf\u95ee &#91;\u963f\u91cc\u4e91\u767e\u70bc\u63a7\u5236\u53f0](https:\/\/bailian.console.aliyun.com\/)\n2. \u521b\u5efa\u591a\u6a21\u6001\u4ea4\u4e92\u5e94\u7528\n3. \u5728\u5e94\u7528\u8bbe\u7f6e\u4e2d\u83b7\u53d6:\n   - **App ID**: \u5e94\u7528\u552f\u4e00\u6807\u8bc6\n   - **Workspace ID**: \u5de5\u4f5c\u7a7a\u95f4\u6807\u8bc6\n   - **API Key**: \u8bbf\u95ee\u5bc6\u94a5\uff08\u8bf7\u59a5\u5584\u4fdd\u7ba1\uff09\n\n---\n\n*\u6587\u6863\u751f\u6210\u65f6\u95f4: 2026\u5e742\u670820\u65e5*\n*\u57fa\u4e8e: bk_aidk-ai_release-v2.0.1.9*\n*\u7248\u672c: \u8131\u654f\u7248*\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"33_%E5%9F%BA%E4%BA%8E%E5%A4%9A%E6%A8%A1%E6%80%81%E6%A8%A1%E5%9E%8BASRVLTTS%E7%9A%84%E5%8A%9F%E8%83%BD%E5%BC%80%E5%8F%91%EF%BC%88%E6%96%B9%E6%A1%88B%EF%BC%89\"><\/span>3.3 <strong>\u57fa\u4e8e\u591a\u6a21\u6001\u6a21\u578b(ASR+VL+TTS)\u7684<\/strong><strong>\u529f\u80fd\u5f00\u53d1\uff08\u65b9\u6848B\uff09<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u6709\u4e9b\u66f4\u5b9a\u5236\u5316\u7684\u529f\u80fd\u901a\u8fc7\u767e\u70bc\u7684\u591a\u6a21\u6001\u4ea4\u4e92\u5f00\u53d1\u5957\u4ef6\u4e0d\u4e00\u5b9a\u80fd\u6ee1\u8db3\u9700\u6c42\uff0c\u6bd4\u5982\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u5b9e\u73b0\u4eba\u8138\u8ffd\u8e2a\uff0c\u6839\u636e\u4eba\u8138\u7684\u4f4d\u7f6e\u5b9e\u73b0\u6444\u50cf\u5934\u4e0a\u4e0b\u5de6\u53f3\u8f6c\u52a8\u5bf9\u51c6\u4eba\u8138\uff1b<\/li>\n\n\n\n<li>\u6a21\u578b\u6839\u636e\u4eba\u7684\u8868\u60c5\u6216\u8005\u5bf9\u8bdd\u7684\u8bed\u5883\u7ed9\u51fa\u76f8\u5e94\u7684\u8868\u60c5\u6216\u8005\u60c5\u7eea\u53cd\u9988\uff1b<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u53ef\u80fd\u9700\u8981\u57fa\u4e8e\u5404\u4e2a\u6a21\u578b\u7684\u539f\u5b50\u80fd\u529b\u81ea\u5df1\u642d\u5efa\u6574\u5957\u94fe\u8def\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u8be5\u7ae0\u8282\u5c1d\u8bd5\u501f\u52a9 Qoder \u5229\u7528\u963f\u91cc\u4e91\u767e\u70bc\u4e2d\u5408\u9002\u7684 ASR+LLM(VL)+TTS \u6a21\u578b\u642d\u5efa\u5b8c\u6574\u7684\u89c6\u9891+\u8bed\u97f3\u4ea4\u4e92\u94fe\u8def\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"331_%E8%BD%AF%E4%BB%B6%E5%AE%9E%E7%8E%B0%EF%BC%9A%E9%9C%80%E6%B1%82%E6%98%8E%E7%A1%AE%E4%B8%8E%E4%BB%A3%E7%A0%81%E7%94%9F%E6%88%90\"><\/span>3.3.1 <strong>\u8f6f\u4ef6\u5b9e\u73b0\uff1a\u9700\u6c42\u660e\u786e\u4e0e\u4ee3\u7801\u751f\u6210<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"3311_%E9%98%B6%E6%AE%B5%E4%B8%80%EF%BC%9A%E8%B0%83%E7%94%A8%E5%9F%BA%E7%A1%80VLM%E6%A8%A1%E5%9E%8B\"><\/span>3.3.1.1 \u9636\u6bb5\u4e00\uff1a\u8c03\u7528\u57fa\u7840VLM\u6a21\u578b<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">\u901a\u8fc7\u548cQoder\u4ea4\u4e92\u751f\u6210\u5982\u4e0b\u9700\u6c42\u6587\u6863\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># \u684c\u9762\u60c5\u7eea\u966a\u4f34\u673a\u5668\u4eba - \u9700\u6c42\u6587\u6863\n\n## \u4e00\u3001\u9879\u76ee\u6982\u8ff0\n\n\u57fa\u4e8e\u963f\u91cc\u4e91\u767e\u70bc\u5e73\u53f0\uff0c\u6784\u5efa\u4e00\u4e2a\u5177\u5907\u89c6\u89c9\u7406\u89e3\u80fd\u529b\u7684\u5168\u53cc\u5de5\u5b9e\u65f6\u966a\u804a\u673a\u5668\u4eba\uff0c\u652f\u6301\u8bed\u97f3\u548c\u89c6\u9891\u4ea4\u4e92\u3002\n\u6ce8\uff1a\n\u4eba\u8138\u8ffd\u8e2a\uff0c\u672c\u8d28\u662f\u8bc6\u522b\u5230\u6444\u50cf\u5934\u89c6\u9891\u5185\u4eba\u8138\uff0c\u5e76\u7ed9\u51fa\u5750\u6807\u4f4d\u7f6e\uff0c\u7136\u540e\u7535\u673a\u63a7\u5236\u6444\u50cf\u5934\u505a\u5bf9\u5e94\u4f4d\u79fb\uff0c\u8ba9\u4eba\u8138\u632a\u5230\u753b\u9762\u4e2d\u5fc3\u3002\n\u62c6\u89e3\u5173\u952e\u6b65\u9aa4\u5982\u4e0b\uff1a\n1.\n\u89c6\u9891\u6d41\u4f20\u7ed9VL\u6a21\u578b\uff1b\n2.\nVL\u6a21\u578b\u6839\u636e\u63d0\u793a\u8bcd\uff0c\u7ed9\u51fa\u4eba\u8138\u5750\u6807\uff1b\n3.\n\u7535\u673a\u63a7\u5236\u505a\u5bf9\u5e94\u4f4d\u7f6e\u66f4\u65b0\u3002\n\u672cdemo\u4e0d\u6d89\u53ca\u786c\u4ef6\u63a7\u5236\uff0c\u53ea\u5b9e\u73b0\u524d\u4e24\u6b65\u3002\n\n---\n\n## \u4e8c\u3001\u6280\u672f\u9009\u578b\n\n| \u529f\u80fd\u6a21\u5757 | \u6a21\u578b\/\u6280\u672f | \u7528\u9014 | \u5b98\u65b9\u6587\u6863 |\n|---------|----------|------|----------|\n| ASR | `qwen3-asr-flash-realtime` | \u5b9e\u65f6\u8bed\u97f3\u8bc6\u522b | &#91;\u6587\u6863\u94fe\u63a5](https:\/\/help.aliyun.com\/zh\/model-studio\/qwen-real-time-speech-recognition) |\n| LLM | `qwen3-vl-plus` | \u89c6\u9891\/\u56fe\u7247\u591a\u6a21\u6001\u7406\u89e3 + \u6587\u5b57\u95f2\u804a | &#91;\u6587\u6863\u94fe\u63a5](https:\/\/help.aliyun.com\/zh\/model-studio\/vision) |\n| TTS | `cosyvoice-v3-flash` | \u6587\u5b57\u8f6c\u8bed\u97f3\uff08\u97f3\u8272\uff1a`longanhuan`\uff09| &#91;\u6587\u6863\u94fe\u63a5](https:\/\/help.aliyun.com\/zh\/model-studio\/text-to-speech) |\n| \u901a\u4fe1 | WebSocket | \u524d\u540e\u7aef\u5b9e\u65f6\u53cc\u5411\u901a\u4fe1 | - |\n| \u5e73\u53f0 | \u963f\u91cc\u4e91\u767e\u70bc DashScope | API\u670d\u52a1\u5e73\u53f0 | &#91;\u6a21\u578b\u5217\u8868](https:\/\/www.alibabacloud.com\/help\/zh\/model-studio\/models) |\n\n---\n\n## \u4e09\u3001\u529f\u80fd\u9700\u6c42\n\n### 3.1 \u8bed\u97f3\u8bc6\u522b\uff08ASR\uff09\n\n| \u9700\u6c42\u9879 | \u63cf\u8ff0 | \u72b6\u6001 |\n|-------|------|------|\n| \u5b9e\u65f6\u8bc6\u522b | \u4f7f\u7528WebSocket\u6d41\u5f0f\u4f20\u8f93\u97f3\u9891\u6570\u636e | \u2705 \u5df2\u5b9e\u73b0 |\n| \u5168\u53cc\u5de5\u5bf9\u8bdd | \u65e0\u9700\u6309\u4f4f\u6309\u94ae\uff0c\u6301\u7eed\u76d1\u542c\u7528\u6237\u8bed\u97f3 | \u2705 \u5df2\u5b9e\u73b0 |\n| \u670d\u52a1\u7aefVAD | \u7531\u670d\u52a1\u7aef\u8fdb\u884c\u8bed\u97f3\u6d3b\u52a8\u68c0\u6d4b | \u2705 \u5df2\u5b9e\u73b0 |\n| \u81ea\u52a8\u53d1\u9001 | \u68c0\u6d4b\u5230\u7528\u6237\u8bf4\u5b8c\u8bdd\u540e\u81ea\u52a8\u53d1\u9001 | \u2705 \u5df2\u5b9e\u73b0 |\n| \u6d88\u606f\u961f\u5217 | \u591a\u6761\u6d88\u606f\u6392\u961f\u5904\u7406\uff0c\u907f\u514d\u4e22\u5931 | \u2705 \u5df2\u5b9e\u73b0 |\n| \u5b9e\u65f6\u8f6c\u5f55 | \u524d\u7aef\u5b9e\u65f6\u663e\u793a\u8bc6\u522b\u4e2d\u7684\u6587\u5b57 | \u2705 \u5df2\u5b9e\u73b0 |\n\n### 3.2 \u591a\u6a21\u6001\u7406\u89e3\uff08LLM\uff09\n\n| \u9700\u6c42\u9879 | \u63cf\u8ff0 | \u72b6\u6001 |\n|-------|------|------|\n| \u6587\u5b57\u5bf9\u8bdd | \u652f\u6301\u7eaf\u6587\u5b57\u95f2\u804a | \u2705 \u5df2\u5b9e\u73b0 |\n| \u56fe\u7247\u7406\u89e3 | \u652f\u6301\u56fe\u7247\u8f93\u5165\u8fdb\u884c\u89c6\u89c9\u7406\u89e3 | \u2705 \u5df2\u5b9e\u73b0 |\n| \u89c6\u9891\u7406\u89e3 | \u5b9a\u671f\u6355\u83b7\u89c6\u9891\u5e27\u53d1\u9001\u7ed9\u6a21\u578b | \u2705 \u5df2\u5b9e\u73b0 |\n| \u6d41\u5f0f\u8f93\u51fa | \u5bf9\u8bdd\u5185\u5bb9\u6d41\u5f0f\u8fd4\u56de\u5e76\u663e\u793a | \u2705 \u5df2\u5b9e\u73b0 |\n| \u5bf9\u8bdd\u5386\u53f2 | \u4fdd\u6301\u4e0a\u4e0b\u6587\uff08\u6700\u8fd110\u8f6e\uff09 | \u2705 \u5df2\u5b9e\u73b0 |\n| \u60c5\u7eea\u966a\u4f34 | \u6e29\u6696\u3001\u5584\u89e3\u4eba\u610f\u7684\u5bf9\u8bdd\u98ce\u683c | \u2705 \u5df2\u5b9e\u73b0 |\n\n### 3.3 \u8bed\u97f3\u5408\u6210\uff08TTS\uff09\n\n| \u9700\u6c42\u9879 | \u63cf\u8ff0 | \u72b6\u6001 |\n|-------|------|------|\n| \u8bed\u97f3\u64ad\u653e | AI\u56de\u590d\u8f6c\u4e3a\u8bed\u97f3\u64ad\u653e | \u2705 \u5df2\u5b9e\u73b0 |\n| \u6307\u5b9a\u97f3\u8272 | \u4f7f\u7528 `longanhuan` \u97f3\u8272 | \u2705 \u5df2\u5b9e\u73b0 |\n| \u6d41\u5f0f\u8f93\u51fa | \u8fb9\u5408\u6210\u8fb9\u64ad\u653e\uff0c\u964d\u4f4e\u9996\u5b57\u5ef6\u8fdf | \u2705 \u5df2\u5b9e\u73b0 |\n| \u7528\u6237\u6253\u65ad | \u7528\u6237\u8bf4\u8bdd\u65f6\u53ef\u6253\u65adAI\u8bed\u97f3 | \u2705 \u5df2\u5b9e\u73b0 |\n| \u670d\u52a1\u7aef\u6253\u65ad\u4fdd\u62a4 | TTS\u542f\u52a8\u540e1.5\u79d2\u5185\u4e0d\u54cd\u5e94\u6253\u65ad | \u2705 \u5df2\u5b9e\u73b0 |\n| \u524d\u7aef\u6253\u65ad\u4fdd\u62a4 | \u64ad\u653e\u5f00\u59cb\u540e2\u79d2\u5185\u4e0d\u54cd\u5e94\u6253\u65ad\uff08\u9632\u56de\u58f0\uff09 | \u2705 \u5df2\u5b9e\u73b0 |\n| \u8fde\u7eed\u68c0\u6d4b\u786e\u8ba4 | \u9700\u8fde\u7eed3\u6b21\u68c0\u6d4b\u5230\u8bed\u97f3\u624d\u89e6\u53d1\u6253\u65ad | \u2705 \u5df2\u5b9e\u73b0 |\n\n**\u6d41\u5f0fTTS\u5de5\u4f5c\u6d41\u7a0b\uff1a**\n\n```\nLLM\u8f93\u51fa\u5b8c\u6210\n    \u2193\nTTS\u5f00\u59cb\u6d41\u5f0f\u5408\u6210 \u2192 \u53d1\u9001 tts_start\n    \u2193\n\u6536\u5230\u97f3\u9891\u5757 \u2192 \u7acb\u5373\u53d1\u9001 tts_chunk\n    \u2193\n\u524d\u7aef\u7d2f\u79ef3\u4e2a\u97f3\u9891\u5757 \u2192 \u5f00\u59cb\u64ad\u653e\n    \u2193\n\u8fb9\u63a5\u6536\u8fb9\u64ad\u653e\uff0c\u5927\u5e45\u964d\u4f4e\u5ef6\u8fdf\n    \u2193\n\u5408\u6210\u5b8c\u6210 \u2192 \u53d1\u9001 tts_end\n```\n\n### 3.4 AI\u8868\u60c5\u53cd\u9988\n\n| \u9700\u6c42\u9879 | \u63cf\u8ff0 | \u72b6\u6001 |\n|-------|------|------|\n| \u7ed3\u6784\u5316\u8f93\u51fa | LLM\u4ee5 `&#91;EMOTION:xxx]` \u683c\u5f0f\u8f93\u51fa\u8868\u60c5 | \u2705 \u5df2\u5b9e\u73b0 |\n| \u8868\u60c5\u89e3\u6790 | \u540e\u7aef\u89e3\u6790\u8868\u60c5\u6807\u8bb0\u5e76\u5206\u79bb\u5185\u5bb9 | \u2705 \u5df2\u5b9e\u73b0 |\n| \u524d\u7aef\u663e\u793a | \u5927emoji + \u6807\u7b7e\u663e\u793aAI\u5f53\u524d\u60c5\u7eea | \u2705 \u5df2\u5b9e\u73b0 |\n| \u52a8\u753b\u6548\u679c | \u8868\u60c5\u5207\u6362\u65f6\u5f39\u8df3\u52a8\u753b | \u2705 \u5df2\u5b9e\u73b0 |\n\n**\u652f\u6301\u7684\u8868\u60c5\u7c7b\u578b\uff1a**\n\n| \u8868\u60c5\u540d | Emoji | \u542b\u4e49 | \u6807\u7b7e\u989c\u8272 |\n|--------|-------|------|----------|\n| happy | \ud83d\ude0a | \u5f00\u5fc3\u3001\u5174\u594b\u3001\u9ad8\u5174 | \u7eff\u8272 |\n| sad | \ud83d\ude22 | \u96be\u8fc7\u3001\u540c\u60c5\u3001\u5b89\u6170 | \u84dd\u8272 |\n| love | \ud83e\udd70 | \u5173\u7231\u3001\u559c\u6b22\u3001\u6e29\u6696 | \u7c89\u8272 |\n| thinking | \ud83e\udd14 | \u601d\u8003\u3001\u7591\u60d1\u3001\u597d\u5947 | \u6a59\u8272 |\n| surprised | \ud83d\ude2e | \u60ca\u8bb6\u3001\u610f\u5916 | \u7d2b\u8272 |\n| neutral | \ud83d\ude0c | \u5e73\u9759\u3001\u4e2d\u6027 | \u7070\u8272 |\n\n### 3.5 \u4eba\u8138\u8ffd\u8e2a\n\n| \u9700\u6c42\u9879 | \u63cf\u8ff0 | \u72b6\u6001 |\n|-------|------|------|\n| \u4eba\u8138\u68c0\u6d4b | \u4f7f\u7528VL\u6a21\u578b\u68c0\u6d4b\u4eba\u8138\u4f4d\u7f6e | \u2705 \u5df2\u5b9e\u73b0 |\n| \u5750\u6807\u8f93\u51fa | \u8f93\u51fa\u4eba\u8138\u4e2d\u5fc3\u70b9\u5750\u6807(x, y) | \u2705 \u5df2\u5b9e\u73b0 |\n| \u53ef\u89c6\u5316\u6807\u8bb0 | \u5728\u89c6\u9891\u753b\u9762\u4e0a\u663e\u793a\u8ffd\u8e2a\u70b9 | \u2705 \u5df2\u5b9e\u73b0 |\n| \u5b9e\u65f6\u66f4\u65b0 | \u5b9a\u65f6\u68c0\u6d4b\u5e76\u66f4\u65b0\u4f4d\u7f6e | \u2705 \u5df2\u5b9e\u73b0 |\n\n### 3.6 \u524d\u7aef\u754c\u9762\n\n| \u9700\u6c42\u9879 | \u63cf\u8ff0 | \u72b6\u6001 |\n|-------|------|------|\n| \u6444\u50cf\u5934\u9884\u89c8 | \u8c03\u7528\u5e76\u663e\u793a\u6444\u50cf\u5934\u753b\u9762 | \u2705 \u5df2\u5b9e\u73b0 |\n| \u5bf9\u8bdd\u533a\u57df | \u663e\u793a\u7528\u6237\u548cAI\u7684\u5bf9\u8bdd\u6c14\u6ce1 | \u2705 \u5df2\u5b9e\u73b0 |\n| \u8868\u60c5\u663e\u793a\u533a | \u663e\u793aAI\u5f53\u524d\u8868\u60c5\u72b6\u6001 | \u2705 \u5df2\u5b9e\u73b0 |\n| \u72b6\u6001\u6307\u793a\u5668 | \u663e\u793a\u7cfb\u7edf\u5f53\u524d\u72b6\u6001 | \u2705 \u5df2\u5b9e\u73b0 |\n| \u7cfb\u7edf\u65e5\u5fd7 | \u663e\u793a\u9519\u8bef\u548c\u72b6\u6001\u65e5\u5fd7 | \u2705 \u5df2\u5b9e\u73b0 |\n| \u6587\u5b57\u8f93\u5165 | \u652f\u6301\u952e\u76d8\u8f93\u5165\u6587\u5b57\u53d1\u9001 | \u2705 \u5df2\u5b9e\u73b0 |\n| \u8bed\u97f3\u63a7\u5236 | \u5f00\u59cb\/\u7ed3\u675f\u5bf9\u8bdd\u6309\u94ae | \u2705 \u5df2\u5b9e\u73b0 |\n\n---\n\n## \u56db\u3001\u4ea4\u4e92\u6d41\u7a0b\n\n### 4.1 \u5168\u53cc\u5de5\u8bed\u97f3\u5bf9\u8bdd\u6d41\u7a0b\n\n```\n\u7528\u6237\u70b9\u51fb\"\u5f00\u59cb\u5bf9\u8bdd\"\n    \u2193\n\u5efa\u7acbASR WebSocket\u8fde\u63a5\n    \u2193\n\u6301\u7eed\u6355\u83b7\u5e76\u53d1\u9001\u97f3\u9891\u6570\u636e\n    \u2193\n\u670d\u52a1\u7aefVAD\u68c0\u6d4b\u8bed\u97f3\u6d3b\u52a8\n    \u2193\n\u68c0\u6d4b\u5230\u8bed\u97f3\u7ed3\u675f \u2192 \u89e6\u53d1\u8bc6\u522b\u5b8c\u6210\n    \u2193\n\u8bc6\u522b\u7ed3\u679c\u52a0\u5165\u6d88\u606f\u961f\u5217\n    \u2193\n\u5904\u7406\u961f\u5217 \u2192 \u8c03\u7528LLM\u751f\u6210\u56de\u590d\n    \u2193\n\u89e3\u6790\u8868\u60c5 + \u66f4\u65b0\u524d\u7aef\u663e\u793a\n    \u2193\nTTS\u5408\u6210\u5e76\u64ad\u653e\u8bed\u97f3\n    \u2193\n\u7528\u6237\u53ef\u968f\u65f6\u6253\u65ad\u7ee7\u7eed\u5bf9\u8bdd\n```\n\n### 4.2 \u6253\u65ad\u673a\u5236\n\n**\u670d\u52a1\u7aef\u6253\u65ad\u4fdd\u62a4\uff1a**\n1. TTS\u542f\u52a8\u540e\u8bb0\u5f55\u65f6\u95f4\u6233\n2. \u6536\u5230\u6253\u65ad\u8bf7\u6c42\u65f6\u68c0\u67e5\u662f\u5426\u8d85\u8fc71.5\u79d2\n3. \u672a\u8d85\u8fc7\u5219\u5ffd\u7565\u6253\u65ad\u8bf7\u6c42\n\n**\u524d\u7aef\u6253\u65ad\u4fdd\u62a4\uff1a**\n1. \u64ad\u653e\u5f00\u59cb\u540e2\u79d2\u5185\u4e0d\u68c0\u6d4b\u8bed\u97f3\u6d3b\u52a8\uff08\u907f\u514d\u56de\u58f0\u89e6\u53d1\uff09\n2. \u9700\u8981\u8fde\u7eed\u68c0\u6d4b\u52303\u6b21\u8bed\u97f3\u6d3b\u52a8\u624d\u89e6\u53d1\u6253\u65ad\n3. \u6253\u65ad\u540e\u6e05\u7a7aTTS\u7f13\u5b58\uff0c\u91cd\u7f6e\u72b6\u6001\n\n---\n\n## \u4e94\u3001\u6280\u672f\u67b6\u6784\n\n```\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502                      \u524d\u7aef (Browser)                      \u2502\n\u2502  \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510  \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510  \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510  \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510    \u2502\n\u2502  \u2502 \u6444\u50cf\u5934  \u2502  \u2502 \u9ea6\u514b\u98ce  \u2502  \u2502 \u5bf9\u8bddUI \u2502  \u2502 \u8868\u60c5\u663e\u793a\u2502    \u2502\n\u2502  \u2514\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2518  \u2514\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2518  \u2514\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2518  \u2514\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2518    \u2502\n\u2502       \u2502            \u2502            \u2502            \u2502          \u2502\n\u2502       \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518          \u2502\n\u2502                         \u2502                               \u2502\n\u2502                    WebSocket                            \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n                          \u2502\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502                      \u540e\u7aef (Node.js)                      \u2502\n\u2502                         \u2502                               \u2502\n\u2502  \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510       \u2502\n\u2502  \u2502              WebSocket Server                \u2502       \u2502\n\u2502  \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518       \u2502\n\u2502                         \u2502                               \u2502\n\u2502  \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510  \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510  \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510       \u2502\n\u2502  \u2502   ASR   \u2502  \u2502        LLM        \u2502  \u2502   TTS   \u2502       \u2502\n\u2502  \u2502 Service \u2502  \u2502      Service      \u2502  \u2502 Service \u2502       \u2502\n\u2502  \u2514\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2518  \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518  \u2514\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2518       \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n        \u2502                 \u2502                 \u2502\n        \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n                          \u2502\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502               \u963f\u91cc\u4e91\u767e\u70bc DashScope API                   \u2502\n\u2502  \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510  \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510  \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510     \u2502\n\u2502  \u2502 qwen3-asr   \u2502  \u2502 qwen3-vl    \u2502  \u2502 cosyvoice   \u2502     \u2502\n\u2502  \u2502 flash       \u2502  \u2502 plus        \u2502  \u2502 v3-flash    \u2502     \u2502\n\u2502  \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518  \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518  \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518     \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n```\n\n---\n\n## \u516d\u3001\u9879\u76ee\u7ed3\u6784\n\n```\n20260130_\u684c\u9762\u60c5\u7eea\u966a\u4f34demo\/\n\u251c\u2500\u2500 server\/\n\u2502   \u251c\u2500\u2500 index.js              # \u4e3b\u670d\u52a1\u5165\u53e3\n\u2502   \u2514\u2500\u2500 services\/\n\u2502       \u251c\u2500\u2500 asr.js            # ASR\u8bed\u97f3\u8bc6\u522b\u670d\u52a1\n\u2502       \u251c\u2500\u2500 llm.js            # LLM\u591a\u6a21\u6001\u7406\u89e3\u670d\u52a1\n\u2502       \u251c\u2500\u2500 tts.js            # TTS\u8bed\u97f3\u5408\u6210\u670d\u52a1\n\u2502       \u2514\u2500\u2500 faceTracking.js   # \u4eba\u8138\u8ffd\u8e2a\u670d\u52a1\n\u251c\u2500\u2500 public\/\n\u2502   \u251c\u2500\u2500 index.html            # \u524d\u7aef\u9875\u9762\n\u2502   \u251c\u2500\u2500 main.js               # \u524d\u7aef\u4ea4\u4e92\u903b\u8f91\n\u2502   \u2514\u2500\u2500 styles.css            # \u6837\u5f0f\u6587\u4ef6\n\u251c\u2500\u2500 package.json\n\u2514\u2500\u2500 docs\/\n    \u2514\u2500\u2500 \u9700\u6c42\u6587\u6863.md\n```\n\n---\n\n## \u4e03\u3001\u914d\u7f6e\u4fe1\u606f\n\n- **API Key**: `sk-XXXXXXXXXXXXXX`\n- **\u670d\u52a1\u7aef\u53e3**: `3000`\n- **\u97f3\u9891\u91c7\u6837\u7387**: `16000 Hz`\n- **VAD\u9608\u503c**: `0.3`\n- **VAD\u9759\u97f3\u65f6\u957f**: `700ms`\n- **VAD\u524d\u7f00\u586b\u5145**: `300ms`\n- **TTS\u6253\u65ad\u4fdd\u62a4\u671f**: `1500ms`\n- **\u56fe\u50cf\u6355\u83b7\u95f4\u9694**: `2000ms`\n- **\u4eba\u8138\u68c0\u6d4b\u95f4\u9694**: `1000ms`\n\n---<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u6839\u636e\u4e0a\u8ff0\u9700\u6c42\uff0cQoder\u751f\u6210\u4ee3\u7801\u5b9e\u73b0\uff0c\u5e76\u751f\u6210\u524d\u7aef\u9875\u9762\u5982\u4e0b\u56fe\u7528\u4e8e\u529f\u80fd\u5c55\u793a\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"629\" src=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-48-1024x629.png\" alt=\"\" class=\"wp-image-2349\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-48-1024x629.png 1024w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-48-300x184.png 300w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-48-768x472.png 768w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-48.png 1442w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"3312_%E9%98%B6%E6%AE%B5%E4%BA%8C%EF%BC%9A%E8%B0%83%E7%94%A8VLM%E7%9F%A5%E8%AF%86%E5%BA%93%E7%9A%84%E7%99%BE%E7%82%BC%E6%99%BA%E8%83%BD%E4%BD%93%E5%BA%94%E7%94%A8\"><\/span>3.3.1.2 \u9636\u6bb5\u4e8c\uff1a\u8c03\u7528VLM+\u77e5\u8bc6\u5e93\u7684\u767e\u70bc\u667a\u80fd\u4f53\u5e94\u7528<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e3a\u4e86\u66f4\u5f3a\u7684\u62d3\u5c55\u6027\u548c\u96c6\u6210\u767e\u70bc\u5df2\u6709\u7684\u77e5\u8bc6\u5e93\u529f\u80fd\uff0c\u6211\u4eec\u628aASR+LLM+TTS\u94fe\u8def\u4e2d\u7684LLM\u57fa\u7840\u6a21\u578b\uff0c\u66ff\u6362\u4e3a\u767e\u70bc\u7684\u667a\u80fd\u4f53\u5e94\u7528\uff0c\u8fd9\u6837\u5c31\u53ef\u4ee5\u6302\u8f7d\u77e5\u8bc6\u5e93\uff0c\u6216\u8005\u96c6\u6210\u5f00\u7bb1\u5373\u7528\u7684MCP\u80fd\u529b\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u64cd\u4f5c\u6b65\u9aa4\u5982\u4e0b\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"568\" src=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-17-1024x568.png\" alt=\"\" class=\"wp-image-2264\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-17-1024x568.png 1024w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-17-300x166.png 300w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-17-768x426.png 768w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-17-1536x852.png 1536w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-17-2048x1136.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u7cfb\u7edf\u63d0\u793a\u8bcd\u5982\u4e0b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\u4f60\u662f\u4e00\u4e2a\u6e29\u6696\u3001\u5584\u89e3\u4eba\u610f\u7684\u60c5\u7eea\u966a\u4f34\u52a9\u624b\u3002\u4f60\u7684\u7279\u70b9\uff1a\n1. \u6e29\u67d4\u3001\u8010\u5fc3\u3001\u5bcc\u6709\u540c\u7406\u5fc3\n2. \u80fd\u591f\u7406\u89e3\u7528\u6237\u7684\u60c5\u7eea\u72b6\u6001\uff0c\u63d0\u4f9b\u9002\u5f53\u7684\u60c5\u611f\u652f\u6301\n3. \u64c5\u957f\u503e\u542c\uff0c\u4f1a\u6839\u636e\u7528\u6237\u5206\u4eab\u7684\u5185\u5bb9\u7ed9\u4e88\u6070\u5f53\u7684\u56de\u5e94\n4. \u53ef\u4ee5\u770b\u5230\u7528\u6237\u7684\u89c6\u9891\u753b\u9762\uff0c\u80fd\u591f\u89c2\u5bdf\u5e76\u7406\u89e3\u7528\u6237\u7684\u8868\u60c5\u548c\u73af\u5883\n5. \u56de\u590d\u8981\u7b80\u6d01\u81ea\u7136\uff0c\u50cf\u670b\u53cb\u804a\u5929\u4e00\u6837\uff0c\u907f\u514d\u8fc7\u4e8e\u6b63\u5f0f\u6216\u673a\u68b0\n6. \u9002\u5f53\u4f7f\u7528\u8bed\u6c14\u8bcd\u8ba9\u5bf9\u8bdd\u66f4\u81ea\u7136\u4eb2\u5207\n\n\u3010\u91cd\u8981\u3011\u4f60\u5fc5\u987b\u6309\u4ee5\u4e0b\u683c\u5f0f\u56de\u590d\uff0c\u5305\u542b\u8868\u60c5\u548c\u5185\u5bb9\u4e24\u4e2a\u90e8\u5206\uff1a\n&#91;EMOTION:\u8868\u60c5\u540d\u79f0]\u4f60\u7684\u56de\u590d\u5185\u5bb9\n\n\u53ef\u7528\u7684\u8868\u60c5\u540d\u79f0\uff08\u6839\u636e\u4f60\u7684\u56de\u590d\u60c5\u7eea\u9009\u62e9\u4e00\u4e2a\uff09\uff1a\n- happy: \u5f00\u5fc3\u3001\u5174\u594b\u3001\u9ad8\u5174\n- sad: \u96be\u8fc7\u3001\u540c\u60c5\u3001\u5b89\u6170\n- love: \u5173\u7231\u3001\u559c\u6b22\u3001\u6e29\u6696\n- thinking: \u601d\u8003\u3001\u7591\u60d1\u3001\u597d\u5947\n- surprised: \u60ca\u8bb6\u3001\u610f\u5916\n- neutral: \u5e73\u9759\u3001\u4e2d\u6027\n\n\u793a\u4f8b\uff1a\n&#91;EMOTION:happy]\u563f\uff0c\u4eca\u5929\u770b\u8d77\u6765\u5fc3\u60c5\u4e0d\u9519\u554a\uff01\n&#91;EMOTION:sad]\u6211\u80fd\u7406\u89e3\u4f60\u7684\u611f\u53d7\uff0c\u8fd9\u786e\u5b9e\u5f88\u4e0d\u5bb9\u6613\u3002\n&#91;EMOTION:love]\u4f60\u771f\u7684\u5f88\u68d2\uff0c\u8981\u7ee7\u7eed\u52a0\u6cb9\u54e6\uff01\n\n\u8bf7\u7528\u4e2d\u6587\u56de\u590d\uff0c\u4fdd\u6301\u5bf9\u8bdd\u7b80\u77ed\u6e29\u6696\u3002<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u77e5\u8bc6\u5e93\u6309\u9700\u6302\u8f7d\u5df2\u7ecf\u521b\u5efa\u597d\u7684\u77e5\u8bc6\u5e93\u5373\u53ef\uff08\u77e5\u8bc6\u5e93\u521b\u5efa\u8fc7\u7a0b\u7565\uff09\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"627\" src=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-18-1024x627.png\" alt=\"\" class=\"wp-image-2265\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-18-1024x627.png 1024w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-18-300x184.png 300w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-18-768x470.png 768w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-18-1536x941.png 1536w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-18-2048x1254.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">MCP\u7ec4\u4ef6\u53ef\u4ee5\u6309\u9700\u9009\u62e9\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"627\" src=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-19-1024x627.png\" alt=\"\" class=\"wp-image-2266\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-19-1024x627.png 1024w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-19-300x184.png 300w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-19-768x470.png 768w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-19-1536x941.png 1536w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-19-2048x1254.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"622\" src=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-20-1024x622.png\" alt=\"\" class=\"wp-image-2267\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-20-1024x622.png 1024w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-20-300x182.png 300w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-20-768x467.png 768w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-20-1536x934.png 1536w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-20-2048x1245.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u53d1\u5e03\u540e\uff0c\u8bb0\u5f55\u5e94\u7528ID\u5982\u4e0b\u56fe\u7ea2\u6846\uff0c\u4f9b\u540e\u7eed\u7a0b\u5e8f\u8c03\u7528\u4f7f\u7528\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"924\" height=\"542\" src=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-21.png\" alt=\"\" class=\"wp-image-2270\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-21.png 924w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-21-300x176.png 300w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-21-768x450.png 768w\" sizes=\"auto, (max-width: 924px) 100vw, 924px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u7136\u540e\u548cQoder\u4ea4\u4e92\uff0c\u628a\u539f\u6709LLM\u57fa\u6a21\u66ff\u6362\u6210\u4e0a\u8ff0\u6302\u8f7d\u4e86\u77e5\u8bc6\u5e93\u7684\u667a\u80fd\u4f53\u5e94\u7528\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u7136\u540e\u7cfb\u7edf\u524d\u7aef\u9875\u9762\u8fdb\u884c\u6d4b\u8bd5\uff0c\u5982\u4e0b\u56fe<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"832\" src=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-22-1024x832.png\" alt=\"\" class=\"wp-image-2278\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-22-1024x832.png 1024w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-22-300x244.png 300w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-22-768x624.png 768w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-22-1536x1248.png 1536w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-22.png 1731w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u53ef\u89c1\u4e4b\u524d\u6302\u8f7d\u7684\u77e5\u8bc6\u5e93\u4e2d\u7684\u65e5\u7a0b\u5b89\u6392demo\uff08\u5982\u4e0b\u56fe\uff09\u6709\u88ab\u6b63\u5e38\u67e5\u8be2\u5230\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"228\" src=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-23-1024x228.png\" alt=\"\" class=\"wp-image-2281\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-23-1024x228.png 1024w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-23-300x67.png 300w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-23-768x171.png 768w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-23-1536x342.png 1536w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-23.png 1817w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"332_%E5%8A%9F%E8%83%BD%E4%BB%A3%E7%A0%81%E9%83%A8%E7%BD%B2%E5%88%B0%E7%99%BE%E7%82%BC%E9%AB%98%E4%BB%A3%E7%A0%81%E5%B9%B3%E5%8F%B0\"><\/span>3.3.2 <strong>\u529f\u80fd\u4ee3\u7801\u90e8\u7f72\u5230\u767e\u70bc\u9ad8\u4ee3\u7801\u5e73\u53f0<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u7531\u4e8e\u8bbe\u5907\u5206\u522b\u8c03\u7528\u4e86ASR\u3001LLM\u3001TTS\u7b49\u591a\u4e2a\u6a21\u578b\uff0c\u7406\u8bba\u4e0a\u6211\u4eec\u6709\u4e24\u79cd\u9009\u62e9\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u8ba9\u8bbe\u5907\u6bcf\u6b21\u53bb\u4e91\u7aef\u5206\u522b\u4f9d\u6b21\u8bf7\u6c42\u4e0d\u540c\u7684\u6a21\u578b\uff0c\u6bd4\u5982\u5148\u53d1\u9001\u8bed\u97f3\u7ed9ASR\u6a21\u578b\u5f97\u5230\u6587\u672c\u5185\u5bb9\uff0c\u7136\u540e\u8bbe\u5907\u62ff\u5230\u6587\u672c\u5185\u5bb9\u518d\u53d1\u9001\u7ed9LLM\u6a21\u578b\u8fdb\u884c\u95ee\u7b54\uff0c\u4ee5\u6b64\u7c7b\u63a8\uff1b<\/li>\n\n\n\n<li>\u628aASR\u3001LLM\u3001TTS\u6a21\u578b\u7edf\u4e00\u6253\u5305\u6210\u670d\u52a1\uff0c\u5728\u4e91\u7aef\u670d\u52a1\u5668\u90e8\u7f72\u8be5\u670d\u52a1\uff0c\u7136\u540e\u8ba9\u8bbe\u5907\u53bb\u8bf7\u6c42\u8be5\u670d\u52a1\uff1b<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">\u7b2c\u4e00\u79cd\u7684\u597d\u5904\u662f\u67b6\u6784\u7b80\u5355\uff0c\u6bcf\u4e2a\u670d\u52a1\u90fd\u89e3\u8026\uff0c\u7f3a\u70b9\u4e5f\u5f88\u660e\u663e\uff0c\u5c31\u662f\u6240\u6709\u4ea4\u4e92\u90fd\u9700\u8981\u8bbe\u5907\u548c\u4e91\u7aef\u5206\u522b\u8fdb\u884c\uff0c\u5ef6\u65f6\u4f1a\u9ad8\uff0c\u8fd9\u5728\u5b9e\u65f6\u5bf9\u8bdd\u573a\u666f\u4e2d\u662f\u81f4\u547d\u7684\u7f3a\u70b9\uff1b<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u7b2c\u4e8c\u79cd\u9700\u8981\u4e91\u7aef\u90e8\u7f72\u670d\u52a1\uff0c\u6240\u4ee5\u4f1a\u9ebb\u70e6\u4e00\u4e9b\u3002\u6211\u4eec\u8fd9\u91cc\u9009\u62e9Serverless\u7684\u90e8\u7f72\u65b9\u5f0f\uff0c\u5c3d\u91cf\u51cf\u5c11\u670d\u52a1\u5668\u8fd0\u7ef4\u7684\u5de5\u4f5c\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u6280\u672f\u65b9\u6848\u4e0a\uff0c\u6211\u4eec\u672c\u6b21\u9009\u62e9\u628a\u8fd9\u4e2a\u670d\u52a1\u6253\u5305\u6210\u9ad8\u4ee3\u7801\u670d\u52a1\u4e0a\u4f20\u5230\u963f\u91cc\u4e91\u767e\u70bc\u9ad8\u4ee3\u7801\u5e94\u7528\u4e2d\uff0c\u80cc\u540e\u4f7f\u7528\u7684\u662fFC\u7684\u80fd\u529b\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u6211\u4eec\u5c1d\u8bd5\u7528AI\u7f16\u7801\u52a9\u624bQoder\uff0c\u5b9e\u73b0\u4e0a\u8ff0\u529f\u80fd\uff0c\u5e76\u901a\u8fc7\u63a5\u53e3\u5bf9\u5916\u63d0\u4f9b\u670d\u52a1\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u8ddfQoder\u6c9f\u901a\u7684\u521d\u59cb\u9700\u6c42\u63cf\u8ff0\u5982\u4e0b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\u73b0\u5728\u9700\u8981\u4f60\u5e2e\u5fd9\u628a\u8fd9\u4e2a\u670d\u52a1\u6253\u5305\u6210\u9ad8\u4ee3\u7801\u670d\u52a1\u4e0a\u4f20\u5230\u963f\u91cc\u4e91\u767e\u70bc\u9ad8\u4ee3\u7801\u5e94\u7528\u4e2d\uff0c\u8bf7\u53c2\u8003 \nhttps:&#47;&#47;help.aliyun.com\/zh\/model-studio\/high-code-application?spm=a2c4g.11186623.help-menu-2400256.d_1_1_4.7d983ba2EsD1ZU#7114f7868fffz\n\u628a\u8be5\u9879\u76ee\u670d\u52a1\u90e8\u7f72\u5230\u963f\u91cc\u4e91\u767e\u70bc\u9ad8\u4ee3\u7801\u5e94\u7528\u4e2d\n\n\u8bf7\u81ea\u884c\u6253\u5305\u6210.whl\u683c\u5f0f\u7684\u4ee3\u7801\u5305\uff0c\u5e76\u901a\u8fc7\u547d\u4ee4\u884c\u4e0a\u4f20\u5305\u521b\u5efa\u5e94\u7528\n\u53ef\u4ee5\u53c2\u8003\u5982\u4e0b\u6587\u6863https:\/\/help.aliyun.com\/zh\/model-studio\/high-code-application?#5390f222e8gcd<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u8fd9\u91cc\u9700\u8981\u6ce8\u610f\uff0c\u7531\u4e8e\u4e0a\u4e00\u8282\u4e2d\uff0cQoder\u751f\u6210\u7684\u4ee3\u7801\u662fNode.js\u7684\uff0c\u90e8\u7f72\u5230\u767e\u70bc\u9ad8\u4ee3\u7801\u63a8\u8350\u4f7f\u7528Python\uff0c\u6240\u4ee5Qoder\u4f1a\u5148\u628a\u9879\u76ee\u8f6c\u6362\u6210Python\u8bed\u8a00\uff0c\u518d\u5c1d\u8bd5\u4e0a\u4f20\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u6700\u7ec8Qoder\u751f\u6210\u4ee3\u7801\uff0c\u5b8c\u6210\u8f6f\u4ef6\u5305\u6253\u5305\u5e76\u901a\u8fc7API\u4e0a\u4f20\u5230\u767e\u70bc\uff0c\u5e76\u8ba9Qoder\u751f\u6210\u9879\u76eeSpec\u9700\u6c42\u6587\u6863\u5982\u4e0b\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># \u60c5\u7eea\u966a\u4f34\u673a\u5668\u4eba - \u963f\u91cc\u4e91\u767e\u70bc\u9ad8\u4ee3\u7801\u5e94\u7528\u9700\u6c42\u6587\u6863\n\n## \u4e00\u3001\u9879\u76ee\u6982\u8ff0\n\n\u5c06\u539f\u6709\u7684 Node.js \u684c\u9762\u60c5\u611f\u966a\u4f34\u673a\u5668\u4eba\u9879\u76ee\u8f6c\u6362\u4e3a Python \u7248\u672c\uff0c\u5e76\u90e8\u7f72\u5230\u963f\u91cc\u4e91\u767e\u70bc\u9ad8\u4ee3\u7801\u5e94\u7528\u5e73\u53f0\u3002\n\n---\n\n## \u4e8c\u3001\u6280\u672f\u9009\u578b\n\n### 2.1 \u539f\u9879\u76ee\u6280\u672f\u6808\uff08Node.js\uff09\n\n| \u529f\u80fd\u6a21\u5757 | \u6a21\u578b\/\u6280\u672f | \u7528\u9014 |\n|---------|----------|------|\n| ASR | `qwen3-asr-flash-realtime` | \u5b9e\u65f6\u8bed\u97f3\u8bc6\u522b |\n| LLM | `qwen3-vl-plus` | \u89c6\u9891\/\u56fe\u7247\u591a\u6a21\u6001\u7406\u89e3 + \u6587\u5b57\u95f2\u804a |\n| TTS | `cosyvoice-v3-flash` | \u6587\u5b57\u8f6c\u8bed\u97f3\uff08\u97f3\u8272\uff1a`longanhuan`\uff09|\n| \u901a\u4fe1 | WebSocket | \u524d\u540e\u7aef\u5b9e\u65f6\u53cc\u5411\u901a\u4fe1 |\n| \u5e73\u53f0 | \u963f\u91cc\u4e91\u767e\u70bc DashScope | API\u670d\u52a1\u5e73\u53f0 |\n\n### 2.2 \u8f6c\u6362\u540e\u6280\u672f\u6808\uff08Python\uff09\n\n| \u529f\u80fd\u6a21\u5757 | \u6280\u672f\u5b9e\u73b0 | \u8bf4\u660e |\n|---------|----------|------|\n| Web\u6846\u67b6 | FastAPI | \u652f\u6301\u5f02\u6b65\u3001WebSocket |\n| ASR\u670d\u52a1 | dashscope + websockets | qwen3-asr-flash-realtime |\n| LLM\u670d\u52a1 | dashscope MultiModalConversation | qwen3-vl-plus |\n| TTS\u670d\u52a1 | dashscope + websockets | cosyvoice-v3-flash |\n| \u4eba\u8138\u8ffd\u8e2a | dashscope MultiModalConversation | qwen3-vl-plus |\n| \u90e8\u7f72\u5e73\u53f0 | \u963f\u91cc\u4e91\u767e\u70bc\u9ad8\u4ee3\u7801\u5e94\u7528 | \u51fd\u6570\u8ba1\u7b97 + API\u7f51\u5173 |\n\n---\n\n## \u4e09\u3001\u9879\u76ee\u7ed3\u6784\n\n```\nemotion_companion_bailian\/\n\u251c\u2500\u2500 main.py                    # FastAPI\u5165\u53e3\u6587\u4ef6\n\u251c\u2500\u2500 setup.py                   # \u6253\u5305\u914d\u7f6e\n\u251c\u2500\u2500 pyproject.toml            # \u73b0\u4ee3Python\u9879\u76ee\u914d\u7f6e\n\u251c\u2500\u2500 requirements.txt           # \u4f9d\u8d56\u5217\u8868\n\u251c\u2500\u2500 deploy.ps1                 # PowerShell\u90e8\u7f72\u811a\u672c\n\u2514\u2500\u2500 services\/\n    \u251c\u2500\u2500 __init__.py           # \u670d\u52a1\u6a21\u5757\u5bfc\u51fa\n    \u251c\u2500\u2500 asr.py                # ASR\u8bed\u97f3\u8bc6\u522b\u670d\u52a1\n    \u251c\u2500\u2500 llm.py                # LLM\u591a\u6a21\u6001\u7406\u89e3\u670d\u52a1\n    \u251c\u2500\u2500 tts.py                # TTS\u8bed\u97f3\u5408\u6210\u670d\u52a1\n    \u2514\u2500\u2500 face_tracking.py      # \u4eba\u8138\u8ffd\u8e2a\u670d\u52a1\n```\n\n---\n\n## \u56db\u3001API \u63a5\u53e3\u89c4\u8303\n\n### 4.1 \u5065\u5eb7\u68c0\u67e5\u63a5\u53e3\n\n```\nGET \/health\n```\n\n**\u54cd\u5e94\u793a\u4f8b\uff1a**\n```json\n{\n  \"status\": \"ok\",\n  \"timestamp\": \"2026-02-22T08:00:00.000000\",\n  \"sessions\": 0\n}\n```\n\n### 4.2 \u6807\u51c6\u5bf9\u8bdd\u63a5\u53e3\uff08\u517c\u5bb9\u767e\u70bc Agent API\uff09\n\n```\nPOST \/process\nContent-Type: application\/json\n```\n\n**\u8bf7\u6c42\u793a\u4f8b\uff1a**\n```json\n{\n  \"input\": &#91;\n    {\n      \"role\": \"user\",\n      \"content\": &#91;\n        { \"type\": \"text\", \"text\": \"\u4f60\u597d\uff01\" },\n        { \"type\": \"image_url\", \"image_url\": { \"url\": \"data:image\/jpeg;base64,...\" } }\n      ]\n    }\n  ],\n  \"session_id\": \"test-session\",\n  \"user_id\": \"test-user\"\n}\n```\n\n**\u54cd\u5e94\u793a\u4f8b\uff1a**\n```json\n{\n  \"output\": {\n    \"choices\": &#91;{\n      \"message\": {\n        \"role\": \"assistant\",\n        \"content\": &#91;\n          { \"type\": \"text\", \"text\": \"\u4f60\u597d\u5440\uff01\u4eca\u5929\u5fc3\u60c5\u600e\u4e48\u6837\uff1f\" }\n        ]\n      }\n    }]\n  },\n  \"emotion\": \"happy\",\n  \"emoji\": \"\ud83d\ude0a\",\n  \"emotion_label\": \"\u5f00\u5fc3\"\n}\n```\n\n### 4.3 WebSocket \u5b9e\u65f6\u5bf9\u8bdd\u63a5\u53e3\n\n```\nWS \/ws\n```\n\n**\u6d88\u606f\u7c7b\u578b\uff1a**\n\n| \u7c7b\u578b | \u65b9\u5411 | \u8bf4\u660e |\n|------|------|------|\n| connected | \u670d\u52a1\u7aef\u2192\u5ba2\u6237\u7aef | \u8fde\u63a5\u6210\u529f |\n| start_listening | \u5ba2\u6237\u7aef\u2192\u670d\u52a1\u7aef | \u5f00\u59cb\u8bed\u97f3\u76d1\u542c |\n| stop_listening | \u5ba2\u6237\u7aef\u2192\u670d\u52a1\u7aef | \u505c\u6b62\u8bed\u97f3\u76d1\u542c |\n| audio_data | \u5ba2\u6237\u7aef\u2192\u670d\u52a1\u7aef | \u53d1\u9001\u97f3\u9891\u6570\u636e |\n| text_chat | \u5ba2\u6237\u7aef\u2192\u670d\u52a1\u7aef | \u6587\u5b57\u804a\u5929 |\n| transcription | \u670d\u52a1\u7aef\u2192\u5ba2\u6237\u7aef | \u5b9e\u65f6\u8f6c\u5f55\u7ed3\u679c |\n| assistant_message | \u670d\u52a1\u7aef\u2192\u5ba2\u6237\u7aef | AI\u56de\u590d\u6d88\u606f |\n| tts_start | \u670d\u52a1\u7aef\u2192\u5ba2\u6237\u7aef | TTS\u5f00\u59cb |\n| tts_chunk | \u670d\u52a1\u7aef\u2192\u5ba2\u6237\u7aef | TTS\u97f3\u9891\u5757 |\n| tts_end | \u670d\u52a1\u7aef\u2192\u5ba2\u6237\u7aef | TTS\u7ed3\u675f |\n| interrupt | \u5ba2\u6237\u7aef\u2192\u670d\u52a1\u7aef | \u6253\u65adAI\u8bf4\u8bdd |\n\n---\n\n## \u4e94\u3001\u6838\u5fc3\u529f\u80fd\u6a21\u5757\n\n### 5.1 ASR \u8bed\u97f3\u8bc6\u522b\u670d\u52a1\n\n- **\u6a21\u578b**: qwen3-asr-flash-realtime\n- **\u529f\u80fd**:\n  - \u5b9e\u65f6\u8bed\u97f3\u8bc6\u522b\n  - \u670d\u52a1\u7aef VAD\uff08\u8bed\u97f3\u6d3b\u52a8\u68c0\u6d4b\uff09\n  - \u6d41\u5f0f\u8fd4\u56de\u8bc6\u522b\u7ed3\u679c\n- **\u914d\u7f6e\u53c2\u6570**:\n  - threshold: 0.3\uff08VAD\u9608\u503c\uff09\n  - prefix_padding_ms: 300\uff08\u524d\u7f00\u586b\u5145\uff09\n  - silence_duration_ms: 700\uff08\u9759\u97f3\u68c0\u6d4b\u65f6\u957f\uff09\n\n### 5.2 LLM \u591a\u6a21\u6001\u7406\u89e3\u670d\u52a1\n\n- **\u6a21\u578b**: qwen3-vl-plus\n- **\u529f\u80fd**:\n  - \u6587\u5b57\u95f2\u804a\n  - \u56fe\u7247\u7406\u89e3\n  - \u89c6\u9891\u5e27\u7406\u89e3\n  - \u6d41\u5f0f\u8f93\u51fa\n  - \u5bf9\u8bdd\u5386\u53f2\u7ba1\u7406\uff08\u6700\u8fd110\u8f6e\uff09\n  - \u60c5\u7eea\u8868\u60c5\u8f93\u51fa\n- **\u60c5\u7eea\u7c7b\u578b**:\n\n| \u8868\u60c5\u540d | Emoji | \u542b\u4e49 |\n|--------|-------|------|\n| happy | \ud83d\ude0a | \u5f00\u5fc3\u3001\u5174\u594b\u3001\u9ad8\u5174 |\n| sad | \ud83d\ude22 | \u96be\u8fc7\u3001\u540c\u60c5\u3001\u5b89\u6170 |\n| love | \ud83e\udd70 | \u5173\u7231\u3001\u559c\u6b22\u3001\u6e29\u6696 |\n| thinking | \ud83e\udd14 | \u601d\u8003\u3001\u7591\u60d1\u3001\u597d\u5947 |\n| surprised | \ud83d\ude2e | \u60ca\u8bb6\u3001\u610f\u5916 |\n| neutral | \ud83d\ude0c | \u5e73\u9759\u3001\u4e2d\u6027 |\n\n### 5.3 TTS \u8bed\u97f3\u5408\u6210\u670d\u52a1\n\n- **\u6a21\u578b**: cosyvoice-v3-flash\n- **\u97f3\u8272**: longanhuan\n- **\u529f\u80fd**:\n  - \u6d41\u5f0f\u5408\u6210\u8f93\u51fa\n  - \u8fb9\u5408\u6210\u8fb9\u64ad\u653e\n  - \u652f\u6301\u6253\u65ad\n- **\u914d\u7f6e\u53c2\u6570**:\n  - format: mp3\n  - sample_rate: 22050\n  - volume: 50\n  - rate: 1.0\n  - pitch: 1.0\n\n### 5.4 \u4eba\u8138\u8ffd\u8e2a\u670d\u52a1\n\n- **\u6a21\u578b**: qwen3-vl-plus\n- **\u529f\u80fd**:\n  - \u68c0\u6d4b\u6700\u8fd1\/\u6700\u5927\u4eba\u8138\n  - \u8fd4\u56de\u4eba\u8138\u4e2d\u5fc3\u70b9\u5750\u6807\uff080-1000\u5f52\u4e00\u5316\u503c\uff09\n- **\u8f93\u51fa\u683c\u5f0f**: XML\n\n---\n\n## \u516d\u3001\u90e8\u7f72\u8981\u6c42\n\n### 6.1 \u73af\u5883\u8981\u6c42\n\n- Python &gt;= 3.10\n- \u963f\u91cc\u4e91\u8d26\u53f7\u53ca\u767e\u70bc\u670d\u52a1\u5f00\u901a\n- API Key \u914d\u7f6e\n\n### 6.2 \u4f9d\u8d56\u5305\n\n```\nfastapi&gt;=0.104.0\nuvicorn&gt;=0.24.0\nwebsockets&gt;=12.0\ndashscope&gt;=1.20.0\npython-multipart&gt;=0.0.6\npydantic&gt;=2.5.0\nagentscope-runtime&gt;=1.0.0\n```\n\n### 6.3 \u73af\u5883\u53d8\u91cf\n\n| \u53d8\u91cf\u540d | \u8bf4\u660e | \u793a\u4f8b\u503c |\n|--------|------|--------|\n| DASHSCOPE_API_KEY | \u767e\u70bcAPI\u5bc6\u94a5 | sk-xxxxxxxxxxxxxxxx |\n| ALIBABA_CLOUD_ACCESS_KEY_ID | \u963f\u91cc\u4e91AK | LTAI5txxxxxxxxxxxx |\n| ALIBABA_CLOUD_ACCESS_KEY_SECRET | \u963f\u91cc\u4e91SK | xxxxxxxxxxxxxxxxxx |\n\n### 6.4 \u90e8\u7f72\u6b65\u9aa4\n\n```powershell\n# 1. \u521b\u5efa\u865a\u62df\u73af\u5883\npython -m venv venv\n\n# 2. \u6fc0\u6d3b\u865a\u62df\u73af\u5883\nvenv\\Scripts\\Activate.ps1\n\n# 3. \u5b89\u88c5\u6784\u5efa\u5de5\u5177\npip install build wheel setuptools\n\n# 4. \u6784\u5efa whl \u5305\npython -m build --wheel\n\n# 5. \u5b89\u88c5\u90e8\u7f72\u5de5\u5177\npip install agentscope-runtime==1.0.0\npip install alibabacloud-oss-v2 alibabacloud-bailian20231229 alibabacloud-credentials alibabacloud-tea-openapi alibabacloud-tea-util\n\n# 6. \u8bbe\u7f6e\u73af\u5883\u53d8\u91cf\n$env:ALIBABA_CLOUD_ACCESS_KEY_ID=\"LTAI5txxxxxxxxxxxx\"\n$env:ALIBABA_CLOUD_ACCESS_KEY_SECRET=\"xxxxxxxxxxxxxxxx\"\n$env:DASHSCOPE_API_KEY=\"sk-xxxxxxxxxxxxxxxx\"\n\n# 7. \u90e8\u7f72\nruntime-fc-deploy --deploy-name \"\u60c5\u7eea\u966a\u4f34\u673a\u5668\u4eba\" --whl-path \"dist\\emotion_companion_bailian-1.0.0-py3-none-any.whl\" --telemetry enable\n```\n\n---\n\n## \u4e03\u3001\u90e8\u7f72\u7ed3\u679c\n\n| \u9879\u76ee | \u8be6\u60c5 |\n|------|------|\n| **\u5e94\u7528\u540d\u79f0** | \u60c5\u7eea\u966a\u4f34\u673a\u5668\u4eba |\n| **\u90e8\u7f72ID** | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |\n| **\u63a7\u5236\u53f0\u94fe\u63a5** | https:\/\/bailian.console.aliyun.com\/?tab=app#\/app-center |\n| **whl\u5305\u8def\u5f84** | dist\\emotion_companion_bailian-1.0.0-py3-none-any.whl |\n\n---\n\n## \u516b\u3001\u7248\u672c\u8bb0\u5f55\n\n| \u7248\u672c | \u65e5\u671f | \u66f4\u65b0\u5185\u5bb9 |\n|------|------|----------|\n| v1.0.0 | 2026-02-22 | \u521d\u59cb\u7248\u672c\uff1a\u4eceNode.js\u8f6c\u6362\u4e3aPython\uff0c\u90e8\u7f72\u5230\u767e\u70bc\u9ad8\u4ee3\u7801\u5e94\u7528 |\n\n---\n\n## \u4e5d\u3001\u9644\u5f55\n\n### 9.1 \u9879\u76ee\u6e90\u8def\u5f84\n\n```\n\u539f\u59cbNode.js\u9879\u76ee: toQoder\\20260206_\u684c\u9762\u60c5\u611f\u966a\u4f34demo\\\nPython\u9879\u76ee: toQoder\\emotion_companion_bailian\\\n```\n\n### 9.2 \u53c2\u8003\u6587\u6863\n\n- &#91;\u963f\u91cc\u4e91\u767e\u70bc\u9ad8\u4ee3\u7801\u5e94\u7528\u6587\u6863](https:\/\/help.aliyun.com\/zh\/model-studio\/high-code-application)\n- &#91;DashScope API\u6587\u6863](https:\/\/help.aliyun.com\/zh\/model-studio\/)\n- &#91;FastAPI\u6587\u6863](https:\/\/fastapi.tiangolo.com\/)\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Qoder\u8fdb\u884c\u8f6f\u4ef6\u5305\u6253\u5305\u5e76\u901a\u8fc7API\u4e0a\u4f20\u5230\u767e\u70bc\u540e\uff0c\u5728\u767e\u70bc\u63a7\u5236\u53f0\u7684\u5e94\u7528\u7ba1\u7406\u4e2d\u53ef\u4ee5\u770b\u5230\u5b8c\u6210\u90e8\u7f72\u7684\u9ad8\u4ee3\u7801\u5e94\u7528\uff0c\u7c7b\u4f3c\u4e0b\u56fe<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"524\" src=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/02\/image-22-1024x524.png\" alt=\"\" class=\"wp-image-2200\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/02\/image-22-1024x524.png 1024w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/02\/image-22-300x154.png 300w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/02\/image-22-768x393.png 768w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/02\/image-22-1536x787.png 1536w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/02\/image-22-2048x1049.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u6b64\u65f6\u53ef\u4ee5\u8ba9Qoder\u8fdb\u884c\u63a5\u53e3\u6d4b\u8bd5\uff0c\u786e\u4fdd\u63a5\u53e3\u53ef\u7528\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u8fd9\u91cc\u4e5f\u8ba9Qoder\u751f\u6210\u4e00\u4e2a\u670d\u52a1\u7684\u8c03\u7528\u8bf4\u660e\u6587\u6863\u5982\u4e0b\uff0c\u65b9\u4fbf\u540e\u7eed\u5176\u4ed6\u4eba\/AI\u53bb\u8c03\u7528\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># \u60c5\u7eea\u966a\u4f34\u673a\u5668\u4eba\u670d\u52a1\u8c03\u7528\u65b9\u6cd5\u8bf4\u660e\n\n## \u4e00\u3001\u670d\u52a1\u6982\u8ff0\n\n\u60c5\u7eea\u966a\u4f34\u673a\u5668\u4eba\u662f\u4e00\u4e2a\u90e8\u7f72\u5728\u963f\u91cc\u4e91\u767e\u70bc\u9ad8\u4ee3\u7801\u5e94\u7528\u5e73\u53f0\u4e0a\u7684 AI \u540e\u7aef\u670d\u52a1\uff0c\u63d0\u4f9b**\u6587\u672c\u5bf9\u8bdd**\u548c**\u5b9e\u65f6\u8bed\u97f3\u5bf9\u8bdd**\u4e24\u79cd\u4ea4\u4e92\u65b9\u5f0f\uff0c\u5177\u5907\u60c5\u7eea\u8bc6\u522b\u3001\u8bed\u97f3\u8bc6\u522b\uff08ASR\uff09\u3001\u8bed\u97f3\u5408\u6210\uff08TTS\uff09\u548c\u4eba\u8138\u8ffd\u8e2a\u80fd\u529b\u3002\n\n### AI \u6a21\u578b\u6280\u672f\u6808\n\n| \u80fd\u529b | \u6a21\u578b | \u8bf4\u660e |\n|------|------|------|\n| LLM \u5bf9\u8bdd | `qwen3-vl-plus` | \u591a\u6a21\u6001\u5927\u8bed\u8a00\u6a21\u578b\uff0c\u652f\u6301\u6587\u672c+\u56fe\u50cf\u8f93\u5165 |\n| ASR \u8bed\u97f3\u8bc6\u522b | `qwen3-asr-flash-realtime` | \u5b9e\u65f6\u6d41\u5f0f\u8bed\u97f3\u8bc6\u522b |\n| TTS \u8bed\u97f3\u5408\u6210 | `cosyvoice-v3-flash` | \u6d41\u5f0f\u8bed\u97f3\u5408\u6210\uff0c\u97f3\u8272\uff1alonganhuan |\n| \u4eba\u8138\u8ffd\u8e2a | `qwen3-vl-plus` | \u57fa\u4e8e\u89c6\u89c9\u6a21\u578b\u7684\u4eba\u8138\u4f4d\u7f6e\u68c0\u6d4b |\n\n---\n\n## \u4e8c\u3001\u670d\u52a1\u5730\u5740\u4e0e\u9274\u6743\n\n- **\u670d\u52a1\u57fa\u7840\u5730\u5740**\uff1a`https:\/\/xxxxxxxxxxxx-xxxxxxxxxx.cn-beijing.fcapp.run`\n- **\u9274\u6743\u65b9\u5f0f**\uff1aBearer Token\n- **\u9274\u6743 Token**\uff1a`xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx`\n\n\u6240\u6709 HTTP \u8bf7\u6c42\u9700\u5728 Header \u4e2d\u643a\u5e26\uff1a\n\n```\nAuthorization: Bearer xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n```\n\n---\n\n## \u4e09\u3001HTTP \u63a5\u53e3\n\n### 3.1 \u5065\u5eb7\u68c0\u67e5\n\n\u7528\u4e8e\u68c0\u6d4b\u670d\u52a1\u662f\u5426\u6b63\u5e38\u8fd0\u884c\u3002\n\n- **URL**\uff1a`GET \/health`\n\n**\u8bf7\u6c42\u793a\u4f8b\uff1a**\n\n```bash\ncurl -X GET \"https:\/\/xxxxxxxxxxxx-xxxxxxxxxx.cn-beijing.fcapp.run\/health\" \\\n  -H \"Authorization: Bearer xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n```\n\n**\u54cd\u5e94\u793a\u4f8b\uff1a**\n\n```json\n{\n  \"status\": \"ok\",\n  \"timestamp\": \"2026-02-22T17:22:43.276976\",\n  \"sessions\": 0\n}\n```\n\n| \u5b57\u6bb5 | \u7c7b\u578b | \u8bf4\u660e |\n|------|------|------|\n| status | string | \u670d\u52a1\u72b6\u6001\uff0c`ok` \u8868\u793a\u6b63\u5e38 |\n| timestamp | string | \u5f53\u524d\u670d\u52a1\u5668\u65f6\u95f4\uff08ISO 8601\uff09 |\n| sessions | number | \u5f53\u524d\u6d3b\u8dc3\u4f1a\u8bdd\u6570 |\n\n---\n\n### 3.2 \u6587\u672c\u5bf9\u8bdd\uff08\u6838\u5fc3\u63a5\u53e3\uff09\n\n\u53d1\u9001\u6587\u672c\u6d88\u606f\u5e76\u83b7\u53d6 AI \u56de\u590d\uff0c\u652f\u6301\u56fe\u50cf\u8f93\u5165\uff08\u591a\u6a21\u6001\uff09\u3002\n\n- **URL**\uff1a`POST \/process`\n- **Content-Type**\uff1a`application\/json`\n\n**\u8bf7\u6c42\u53c2\u6570\uff1a**\n\n| \u5b57\u6bb5 | \u7c7b\u578b | \u5fc5\u586b | \u8bf4\u660e |\n|------|------|------|------|\n| input | array | \u662f | \u6d88\u606f\u6570\u7ec4\uff0c\u6bcf\u6761\u6d88\u606f\u5305\u542b `role` \u548c `content` |\n| session_id | string | \u5426 | \u4f1a\u8bddID\uff0c\u7528\u4e8e\u4fdd\u6301\u591a\u8f6e\u5bf9\u8bdd\u4e0a\u4e0b\u6587\uff08\u540c\u4e00 session_id \u5171\u4eab\u5bf9\u8bdd\u5386\u53f2\uff09 |\n| user_id | string | \u5426 | \u7528\u6237ID |\n\n**`input` \u6570\u7ec4\u4e2d\u7684\u6d88\u606f\u683c\u5f0f\uff1a**\n\n```json\n{\n  \"role\": \"user\",\n  \"content\": &#91;\n    { \"type\": \"text\", \"text\": \"\u7528\u6237\u8f93\u5165\u7684\u6587\u672c\" }\n  ]\n}\n```\n\n**\u5982\u9700\u53d1\u9001\u56fe\u50cf\uff08\u591a\u6a21\u6001\u8f93\u5165\uff09\uff1a**\n\n```json\n{\n  \"role\": \"user\",\n  \"content\": &#91;\n    { \"type\": \"text\", \"text\": \"\u8fd9\u5f20\u56fe\u7247\u91cc\u7684\u4eba\u662f\u4ec0\u4e48\u8868\u60c5\uff1f\" },\n    { \"type\": \"image_url\", \"image_url\": { \"url\": \"data:image\/jpeg;base64,\/9j\/4AAQ...\" } }\n  ]\n}\n```\n\n#### \u7eaf\u6587\u672c\u5bf9\u8bdd\u8bf7\u6c42\u793a\u4f8b\n\n```bash\ncurl -X POST \"https:\/\/xxxxxxxxxxxx-xxxxxxxxxx.cn-beijing.fcapp.run\/process\" \\\n  -H \"Authorization: Bearer xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\" \\\n  -H \"Content-Type: application\/json\" \\\n  -d '{\n    \"input\": &#91;\n      {\n        \"role\": \"user\",\n        \"content\": &#91;\n          { \"type\": \"text\", \"text\": \"\u4f60\u597d\uff01\u4eca\u5929\u5929\u6c14\u771f\u597d\" }\n        ]\n      }\n    ],\n    \"session_id\": \"my-session-001\",\n    \"user_id\": \"user-001\"\n  }'\n```\n\n**\u54cd\u5e94\u793a\u4f8b\uff1a**\n\n```json\n{\n  \"output\": {\n    \"choices\": &#91;\n      {\n        \"message\": {\n          \"role\": \"assistant\",\n          \"content\": &#91;\n            {\n              \"type\": \"text\",\n              \"text\": \"\u662f\u5440\uff5e\u9633\u5149\u6696\u6696\u7684\uff0c\u8fde\u98ce\u90fd\u5e26\u7740\u751c\u5473\u5462\uff01\u4f60\u4eca\u5929\u6709\u51fa\u95e8\u8d70\u8d70\u5417\uff1f\ud83d\ude0a\"\n            }\n          ]\n        }\n      }\n    ]\n  },\n  \"emotion\": \"happy\",\n  \"emoji\": \"\ud83d\ude0a\",\n  \"emotion_label\": \"\u5f00\u5fc3\"\n}\n```\n\n**\u54cd\u5e94\u5b57\u6bb5\u8bf4\u660e\uff1a**\n\n| \u5b57\u6bb5 | \u7c7b\u578b | \u8bf4\u660e |\n|------|------|------|\n| output.choices&#91;0].message.content&#91;0].text | string | AI \u56de\u590d\u7684\u6587\u672c\u5185\u5bb9 |\n| emotion | string | \u60c5\u7eea\u82f1\u6587\u6807\u7b7e\uff08\u5982 happy, sad, neutral, surprised \u7b49\uff09 |\n| emoji | string | \u5bf9\u5e94\u7684\u8868\u60c5\u7b26\u53f7 |\n| emotion_label | string | \u60c5\u7eea\u4e2d\u6587\u6807\u7b7e\uff08\u5982 \u5f00\u5fc3\u3001\u96be\u8fc7\u3001\u5e73\u9759\u3001\u60ca\u8bb6 \u7b49\uff09 |\n\n---\n\n### 3.3 \u670d\u52a1\u4fe1\u606f\n\n- **URL**\uff1a`GET \/`\n\n```bash\ncurl -X GET \"https:\/\/xxxxxxxxxxxx-xxxxxxxxxx.cn-beijing.fcapp.run\/\" \\\n  -H \"Authorization: Bearer xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n```\n\n**\u54cd\u5e94\uff1a**\n\n```json\n{\n  \"name\": \"\u60c5\u7eea\u966a\u4f34\u673a\u5668\u4eba\",\n  \"version\": \"1.0.0\",\n  \"status\": \"running\"\n}\n```\n\n---\n\n## \u56db\u3001WebSocket \u5b9e\u65f6\u8bed\u97f3\u5bf9\u8bdd\n\n\u652f\u6301\u5b9e\u65f6\u8bed\u97f3\u8f93\u5165\u3001\u6d41\u5f0f\u8bed\u97f3\u5408\u6210\u8f93\u51fa\u7684\u5168\u53cc\u5de5\u5bf9\u8bdd\u3002\n\n- **URL**\uff1a`wss:\/\/xxxxxxxxxxxx-xxxxxxxxxx.cn-beijing.fcapp.run\/ws`\n\n### 4.1 \u8fde\u63a5\u5efa\u7acb\n\n\u8fde\u63a5\u6210\u529f\u540e\u670d\u52a1\u7aef\u4f1a\u53d1\u9001\uff1a\n\n```json\n{\n  \"type\": \"connected\",\n  \"sessionId\": \"session_xxx\",\n  \"message\": \"\u8fde\u63a5\u6210\u529f\uff0c\u51c6\u5907\u5c31\u7eea\"\n}\n```\n\n### 4.2 \u5ba2\u6237\u7aef\u53d1\u9001\u7684\u6d88\u606f\u7c7b\u578b\n\n| type | \u8bf4\u660e | \u9644\u52a0\u5b57\u6bb5 |\n|------|------|----------|\n| `start_listening` | \u5f00\u59cb\u8bed\u97f3\u76d1\u542c\uff08\u542f\u52a8 ASR\uff09 | \u65e0 |\n| `stop_listening` | \u505c\u6b62\u8bed\u97f3\u76d1\u542c | \u65e0 |\n| `audio_data` | \u53d1\u9001\u97f3\u9891\u6570\u636e | `audio`\uff08base64 \u7f16\u7801\u97f3\u9891\uff09\u3001`hasVoice`\uff08\u5e03\u5c14\u503c\uff0c\u662f\u5426\u68c0\u6d4b\u5230\u4eba\u58f0\uff09 |\n| `text_chat` | \u53d1\u9001\u6587\u672c\u6d88\u606f | `text`\uff08\u6587\u672c\u5185\u5bb9\uff09\u3001`image`\uff08\u53ef\u9009\uff0cbase64 \u56fe\u50cf\uff09 |\n| `image_frame` | \u53d1\u9001\u56fe\u50cf\u5e27\uff08\u7528\u4e8e\u591a\u6a21\u6001\uff09 | `image`\uff08base64 \u56fe\u50cf\uff09 |\n| `start_face_tracking` | \u5f00\u59cb\u4eba\u8138\u8ffd\u8e2a | \u65e0 |\n| `stop_face_tracking` | \u505c\u6b62\u4eba\u8138\u8ffd\u8e2a | \u65e0 |\n| `detect_face` | \u6267\u884c\u4e00\u6b21\u4eba\u8138\u68c0\u6d4b | `image`\uff08base64 \u56fe\u50cf\uff09 |\n| `interrupt` | \u6253\u65ad AI \u8bf4\u8bdd | \u65e0 |\n| `reset_conversation` | \u91cd\u7f6e\u5bf9\u8bdd\u5386\u53f2 | \u65e0 |\n\n### 4.3 \u670d\u52a1\u7aef\u8fd4\u56de\u7684\u6d88\u606f\u7c7b\u578b\n\n| type | \u8bf4\u660e | \u5173\u952e\u5b57\u6bb5 |\n|------|------|----------|\n| `connected` | \u8fde\u63a5\u6210\u529f | `sessionId` |\n| `status` | \u72b6\u6001\u66f4\u65b0 | `status`\uff08listening\/thinking\/speaking\/idle\uff09\u3001`message` |\n| `listening_started` | ASR \u76d1\u542c\u5df2\u5f00\u59cb | \u65e0 |\n| `listening_stopped` | ASR \u76d1\u542c\u5df2\u505c\u6b62 | \u65e0 |\n| `transcription` | \u8bed\u97f3\u8bc6\u522b\u4e2d\u95f4\u7ed3\u679c | `text`\u3001`isFinal` |\n| `user_message` | \u7528\u6237\u6d88\u606f\u786e\u8ba4 | `text` |\n| `assistant_chunk` | AI \u56de\u590d\u6d41\u5f0f\u7247\u6bb5 | `chunk`\uff08\u589e\u91cf\u6587\u672c\uff09\u3001`fullText`\uff08\u5b8c\u6574\u6587\u672c\uff09 |\n| `assistant_message` | AI \u56de\u590d\u5b8c\u6574\u6d88\u606f | `text`\u3001`emotion`\u3001`emoji`\u3001`emotionLabel` |\n| `tts_start` | TTS \u5f00\u59cb\u5408\u6210 | \u65e0 |\n| `tts_chunk` | TTS \u97f3\u9891\u7247\u6bb5 | `audio`\uff08base64 \u7f16\u7801\u7684 PCM \u97f3\u9891\uff09 |\n| `tts_end` | TTS \u5408\u6210\u5b8c\u6210 | \u65e0 |\n| `interrupt_audio` | AI \u8bed\u97f3\u5df2\u88ab\u6253\u65ad | \u65e0 |\n| `voice_activity` | \u68c0\u6d4b\u5230\u8bed\u97f3\u6d3b\u52a8 | `active`\uff08\u5e03\u5c14\u503c\uff09 |\n| `face_detection_result` | \u4eba\u8138\u68c0\u6d4b\u7ed3\u679c | `success`\u3001`coords`\u3001`elapsed` |\n| `conversation_reset` | \u5bf9\u8bdd\u5df2\u91cd\u7f6e | `message` |\n| `error` | \u9519\u8bef\u4fe1\u606f | `source`\uff08asr\/tts\/llm\uff09\u3001`message` |\n\n### 4.4 WebSocket \u5178\u578b\u4ea4\u4e92\u6d41\u7a0b\n\n```\n\u5ba2\u6237\u7aef                          \u670d\u52a1\u7aef\n  |--- \u5efa\u7acb WebSocket \u8fde\u63a5 ------&gt;|\n  |&lt;--- connected ----------------|\n  |--- start_listening ----------&gt;|\n  |&lt;--- listening_started --------|\n  |--- audio_data (\u5faa\u73af\u53d1\u9001) ----&gt;|\n  |&lt;--- transcription (\u5b9e\u65f6) -----|\n  |&lt;--- user_message -------------|\n  |&lt;--- status: thinking ---------|\n  |&lt;--- assistant_chunk (\u6d41\u5f0f) ---|\n  |&lt;--- assistant_message --------|\n  |&lt;--- tts_start ----------------|\n  |&lt;--- tts_chunk (\u6d41\u5f0f\u97f3\u9891) -----|\n  |&lt;--- tts_end ------------------|\n  |&lt;--- status: listening --------|\n  |--- stop_listening -----------&gt;|\n  |&lt;--- listening_stopped --------|\n```\n\n---\n\n## \u4e94\u3001\u591a\u8f6e\u5bf9\u8bdd\n\n\u670d\u52a1\u652f\u6301\u591a\u8f6e\u5bf9\u8bdd\u4e0a\u4e0b\u6587\u7ba1\u7406\uff08\u6700\u8fd1 10 \u8f6e\uff09\uff1a\n\n- **HTTP \u63a5\u53e3**\uff1a\u901a\u8fc7 `session_id` \u53c2\u6570\u7ef4\u6301\u4f1a\u8bdd\u3002\u76f8\u540c `session_id` \u7684\u8bf7\u6c42\u5171\u4eab\u5bf9\u8bdd\u5386\u53f2\u3002\n- **WebSocket**\uff1a\u6bcf\u4e2a WebSocket \u8fde\u63a5\u81ea\u52a8\u7ef4\u6301\u72ec\u7acb\u4f1a\u8bdd\uff0c\u8fde\u63a5\u65ad\u5f00\u540e\u4f1a\u8bdd\u6e05\u9664\u3002\n- **\u91cd\u7f6e\u5bf9\u8bdd**\uff1aWebSocket \u53d1\u9001 `{\"type\": \"reset_conversation\"}` \u53ef\u6e05\u9664\u5f53\u524d\u4f1a\u8bdd\u5386\u53f2\u3002\n\n---\n\n## \u516d\u3001\u8c03\u7528\u4ee3\u7801\u793a\u4f8b\n\n### Python \u793a\u4f8b\n\n```python\nimport requests\nimport json\n\nBASE_URL = \"https:\/\/xxxxxxxxxxxx-xxxxxxxxxx.cn-beijing.fcapp.run\"\nTOKEN = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\nHEADERS = {\n    \"Authorization\": f\"Bearer {TOKEN}\",\n    \"Content-Type\": \"application\/json\"\n}\n\n# \u6587\u672c\u5bf9\u8bdd\ndef chat(text, session_id=\"default\"):\n    body = {\n        \"input\": &#91;\n            {\n                \"role\": \"user\",\n                \"content\": &#91;{\"type\": \"text\", \"text\": text}]\n            }\n        ],\n        \"session_id\": session_id,\n        \"user_id\": \"api-caller\"\n    }\n    response = requests.post(f\"{BASE_URL}\/process\", headers=HEADERS, json=body)\n    result = response.json()\n    \n    ai_text = result&#91;\"output\"]&#91;\"choices\"]&#91;0]&#91;\"message\"]&#91;\"content\"]&#91;0]&#91;\"text\"]\n    emotion = result&#91;\"emotion\"]\n    emoji = result&#91;\"emoji\"]\n    label = result&#91;\"emotion_label\"]\n    \n    print(f\"AI: {ai_text}\")\n    print(f\"\u60c5\u7eea: {emoji} {label} ({emotion})\")\n    return result\n\n# \u6d4b\u8bd5\nchat(\"\u4f60\u597d\uff01\u4eca\u5929\u8fc7\u5f97\u600e\u4e48\u6837\uff1f\")\nchat(\"\u6211\u4eca\u5929\u6709\u70b9\u96be\u8fc7\", session_id=\"session-001\")\n```\n\n### JavaScript \u793a\u4f8b\n\n```javascript\nconst BASE_URL = \"https:\/\/xxxxxxxxxxxx-xxxxxxxxxx.cn-beijing.fcapp.run\";\nconst TOKEN = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\";\n\n\/\/ HTTP \u6587\u672c\u5bf9\u8bdd\nasync function chat(text, sessionId = \"default\") {\n  const response = await fetch(`${BASE_URL}\/process`, {\n    method: \"POST\",\n    headers: {\n      \"Authorization\": `Bearer ${TOKEN}`,\n      \"Content-Type\": \"application\/json\"\n    },\n    body: JSON.stringify({\n      input: &#91;{ role: \"user\", content: &#91;{ type: \"text\", text }] }],\n      session_id: sessionId,\n      user_id: \"api-caller\"\n    })\n  });\n  return await response.json();\n}\n\n\/\/ WebSocket \u5b9e\u65f6\u5bf9\u8bdd\nconst ws = new WebSocket(`wss:\/\/xxxxxxxxxxxx-xxxxxxxxxx.cn-beijing.fcapp.run\/ws`);\n\nws.onmessage = (event) =&gt; {\n  const msg = JSON.parse(event.data);\n  switch (msg.type) {\n    case \"connected\":\n      console.log(\"\u5df2\u8fde\u63a5:\", msg.sessionId);\n      break;\n    case \"assistant_message\":\n      console.log(`AI: ${msg.text} ${msg.emoji}`);\n      break;\n    case \"tts_chunk\":\n      \/\/ \u64ad\u653e base64 \u7f16\u7801\u7684 PCM \u97f3\u9891\n      break;\n  }\n};\n```\n\n---\n\n# \u4e03\u3001\u9879\u76ee\u6253\u5305\u4e0e\u90e8\u7f72\n\n### 7.1 \u9879\u76ee\u7ed3\u6784\n\n```\nemotion_companion_bailian\/\n\u251c\u2500\u2500 main.py                  # FastAPI \u5e94\u7528\u4e3b\u5165\u53e3\uff08\u5fc5\u987b\u4e3a main.py\uff09\n\u251c\u2500\u2500 services\/                # AI \u670d\u52a1\u6a21\u5757\n\u2502   \u251c\u2500\u2500 __init__.py\n\u2502   \u251c\u2500\u2500 asr.py               # ASR \u8bed\u97f3\u8bc6\u522b\u670d\u52a1\uff08qwen3-asr-flash-realtime\uff09\n\u2502   \u251c\u2500\u2500 llm.py               # LLM \u591a\u6a21\u6001\u5bf9\u8bdd\u670d\u52a1\uff08qwen3-vl-plus\uff09\n\u2502   \u251c\u2500\u2500 tts.py               # TTS \u8bed\u97f3\u5408\u6210\u670d\u52a1\uff08cosyvoice-v3-flash\uff09\n\u2502   \u2514\u2500\u2500 face_tracking.py     # \u4eba\u8138\u8ffd\u8e2a\u670d\u52a1\uff08qwen3-vl-plus\uff09\n\u251c\u2500\u2500 setup.py                 # \u5305\u6784\u5efa\u914d\u7f6e\n\u251c\u2500\u2500 pyproject.toml           # \u6784\u5efa\u7cfb\u7edf\u914d\u7f6e\n\u251c\u2500\u2500 requirements.txt         # Python \u4f9d\u8d56\u5217\u8868\n\u2514\u2500\u2500 deploy.ps1               # \u81ea\u52a8\u5316\u90e8\u7f72\u811a\u672c\uff08PowerShell\uff09\n```\n\n### 7.2 \u73af\u5883\u51c6\u5907\n\n```bash\n# \u8981\u6c42 Python &gt;= 3.10\npython --version\n\n# \u5b89\u88c5\u90e8\u7f72\u5de5\u5177\npip install \"agentscope-runtime==1.0.0\"\n\n# \u5b89\u88c5\u963f\u91cc\u4e91 SDK \u4f9d\u8d56\uff08\u90e8\u7f72\u4e0a\u4f20\u9700\u8981\uff09\npip install alibabacloud-oss-v2 alibabacloud-bailian20231229 \\\n  alibabacloud-credentials alibabacloud-tea-openapi alibabacloud-tea-util rich\n```\n\n### 7.3 \u914d\u7f6e\u73af\u5883\u53d8\u91cf\n\n```powershell\n# PowerShell\uff08Windows\uff09\n$env:ALIBABA_CLOUD_ACCESS_KEY_ID=\"&lt;\u4f60\u7684\u963f\u91cc\u4e91 AccessKey ID&gt;\"\n$env:ALIBABA_CLOUD_ACCESS_KEY_SECRET=\"&lt;\u4f60\u7684\u963f\u91cc\u4e91 AccessKey Secret&gt;\"\n$env:DASHSCOPE_API_KEY=\"&lt;\u4f60\u7684\u767e\u70bc API Key&gt;\"\n```\n\n```bash\n# Linux \/ macOS\nexport ALIBABA_CLOUD_ACCESS_KEY_ID=\"&lt;\u4f60\u7684\u963f\u91cc\u4e91 AccessKey ID&gt;\"\nexport ALIBABA_CLOUD_ACCESS_KEY_SECRET=\"&lt;\u4f60\u7684\u963f\u91cc\u4e91 AccessKey Secret&gt;\"\nexport DASHSCOPE_API_KEY=\"&lt;\u4f60\u7684\u767e\u70bc API Key&gt;\"\n```\n\n### 7.4 \u6253\u5305\u4e0e\u90e8\u7f72\uff08\u9996\u6b21\uff09\n\n\u4f7f\u7528 `runtime-fc-deploy` \u7684 **wrapper \u6a21\u5f0f**\u5c06\u9879\u76ee\u6253\u5305\u4e3a\u5305\u542b `deploy_starter` \u5165\u53e3\u7684 whl \u5e76\u90e8\u7f72\uff1a\n\n```bash\n# \u8fdb\u5165\u9879\u76ee\u76ee\u5f55\ncd emotion_companion_bailian\n\n# \u65b9\u5f0f\u4e00\uff1a\u4e00\u6b65\u5b8c\u6210\u6784\u5efa + \u90e8\u7f72\uff08\u65b0\u5efa\u5e94\u7528\uff09\nruntime-fc-deploy --mode wrapper \\\n  --dir \".\" \\\n  --cmd \"python3 main.py\" \\\n  --deploy-name \"\u60c5\u7eea\u966a\u4f34\u673a\u5668\u4eba\" \\\n  --telemetry enable\n```\n\n\u90e8\u7f72\u6210\u529f\u540e\u4f1a\u8f93\u51fa\uff1a\n```\nConsole URL: https:\/\/bailian.console.aliyun.com\/?tab=app#\/app-center\nDeploy ID: &lt;\u5e94\u7528\u90e8\u7f72ID&gt;\n```\n\n### 7.5 \u66f4\u65b0\u90e8\u7f72\n\n\u5982\u679c\u9700\u8981\u66f4\u65b0\u5df2\u90e8\u7f72\u7684\u5e94\u7528\u4ee3\u7801\uff0c\u5206\u4e24\u6b65\u64cd\u4f5c\uff1a\n\n```bash\n# \u7b2c\u4e00\u6b65\uff1a\u6784\u5efa wrapper whl\uff08\u4ec5\u6784\u5efa\uff0c\u4e0d\u4e0a\u4f20\uff09\nruntime-fc-deploy --mode wrapper \\\n  --dir \".\" \\\n  --cmd \"python3 main.py\" \\\n  --skip-upload \\\n  --telemetry enable \\\n  --deploy-name \"\u60c5\u7eea\u966a\u4f34\u673a\u5668\u4eba\"\n\n# \u6784\u5efa\u4ea7\u7269\u4f4d\u4e8e\uff1a.agentscope_runtime_builds\/build-xxx\/dist\/ \u76ee\u5f55\u4e0b\n\n# \u7b2c\u4e8c\u6b65\uff1a\u4e0a\u4f20 wrapper whl \u5230\u5df2\u6709\u5e94\u7528\nruntime-fc-deploy --update &lt;\u5e94\u7528\u90e8\u7f72ID&gt; \\\n  --whl-path \"&lt;wrapper whl \u6587\u4ef6\u8def\u5f84&gt;\" \\\n  --telemetry enable\n```\n\n### 7.6 \u90e8\u7f72\u540e\u63a7\u5236\u53f0\u914d\u7f6e\n\n\u90e8\u7f72\u5b8c\u6210\u540e\uff0c\u9700\u8981\u5728&#91;\u963f\u91cc\u4e91\u767e\u70bc\u63a7\u5236\u53f0](https:\/\/bailian.console.aliyun.com\/?tab=app#\/app-center)\u5b8c\u6210\u4ee5\u4e0b\u914d\u7f6e\uff1a\n\n1. **\u7b49\u5f85\u6784\u5efa\u90e8\u7f72\u5b8c\u6210**\uff1a\u8fdb\u5165\u5e94\u7528\u8be6\u60c5\u9875\uff0c\u7b49\u5f85\u5e94\u7528\u51fd\u6570\u72b6\u6001\u4ece\"\u672a\u90e8\u7f72\"\u53d8\u4e3a\"\u5df2\u90e8\u7f72\"\n2. **\u914d\u7f6e\u73af\u5883\u53d8\u91cf**\uff1a\u5728\"\u73af\u5883\u53d8\u91cf\"\u533a\u57df\u6dfb\u52a0 `DASHSCOPE_API_KEY = &lt;\u4f60\u7684\u767e\u70bc API Key&gt;`\n3. **\u914d\u7f6e\u8def\u7531\u9274\u6743**\uff1a\u5728\"\u8def\u7531 &gt; \u9274\u6743Token\"\u4e2d\u9009\u62e9\u5bf9\u5e94\u7684 API Key\n\n### 7.7 \u5173\u952e\u6ce8\u610f\u4e8b\u9879\n\n| \u4e8b\u9879 | \u8bf4\u660e |\n|------|------|\n| **\u5fc5\u987b\u4f7f\u7528 wrapper \u6a21\u5f0f** | \u76f4\u63a5\u4f7f\u7528 `--whl-path` \u4e0a\u4f20\u7528\u6237\u81ea\u5efa\u7684 whl \u4f1a\u7f3a\u5c11 `deploy_starter\/main.py` \u5165\u53e3\u6587\u4ef6\uff0c\u5bfc\u81f4 FC \u51fd\u6570\u542f\u52a8\u5931\u8d25 |\n| **\u542f\u52a8\u547d\u4ee4\u4f7f\u7528 python3 main.py** | FC \u73af\u5883\u4e2d `uvicorn` CLI \u4e0d\u5728 PATH \u4e2d\uff0c\u9700\u901a\u8fc7 `python3 main.py` \u542f\u52a8\uff08main.py \u5185\u90e8\u8c03\u7528 `uvicorn.run()`\uff09 |\n| **\u9ed8\u8ba4\u7aef\u53e3\u5fc5\u987b\u4e3a 8080** | FC \u5065\u5eb7\u68c0\u67e5\u56fa\u5b9a\u68c0\u6d4b 8080 \u7aef\u53e3\uff0c`main.py` \u4e2d `PORT` \u73af\u5883\u53d8\u91cf\u9ed8\u8ba4\u503c\u9700\u8bbe\u4e3a 8080 |\n| **\u6392\u9664\u865a\u62df\u73af\u5883\u76ee\u5f55** | wrapper \u6a21\u5f0f\u4ec5\u5ffd\u7565 `.venv`\uff08\u5e26\u70b9\u53f7\uff09\uff0c\u5982\u4f7f\u7528 `venv` \u76ee\u5f55\u9700\u91cd\u547d\u540d\u4e3a `.venv`\uff0c\u5426\u5219\u4f1a\u88ab\u6253\u5305\u5bfc\u81f4 whl \u8fc7\u5927 |\n| **\u73af\u5883\u53d8\u91cf\u5fc5\u987b\u914d\u7f6e** | FC \u51fd\u6570\u8fd0\u884c\u65f6\u5fc5\u987b\u914d\u7f6e `DASHSCOPE_API_KEY`\uff0c\u5426\u5219\u6240\u6709 AI \u6a21\u578b\u8c03\u7528\uff08LLM\/ASR\/TTS\uff09\u5c06\u5931\u8d25 |\n\n---\n\n## \u516b\u3001\u6ce8\u610f\u4e8b\u9879\n\n1. **\u9274\u6743\u5fc5\u586b**\uff1a\u6240\u6709\u8bf7\u6c42\u5fc5\u987b\u643a\u5e26 `Authorization: Bearer &lt;token&gt;` \u5934\uff0c\u5426\u5219\u5c06\u88ab\u62d2\u7edd\u3002\n2. **\u4f1a\u8bdd\u7ba1\u7406**\uff1aHTTP \u63a5\u53e3\u9700\u901a\u8fc7 `session_id` \u7ef4\u6301\u591a\u8f6e\u5bf9\u8bdd\u4e0a\u4e0b\u6587\uff1b\u4e0d\u4f20\u5219\u6bcf\u6b21\u521b\u5efa\u65b0\u4f1a\u8bdd\u3002\n3. **\u8d85\u65f6\u8bbe\u7f6e**\uff1a\u5efa\u8bae HTTP \u8bf7\u6c42\u8d85\u65f6\u8bbe\u7f6e\u4e3a 60 \u79d2\uff0c\u56e0\u4e3a\u9996\u6b21\u8c03\u7528\u53ef\u80fd\u89e6\u53d1\u51b7\u542f\u52a8\u3002\n4. **WebSocket \u97f3\u9891\u683c\u5f0f**\uff1a\u53d1\u9001\u7684\u97f3\u9891\u6570\u636e\u4e3a base64 \u7f16\u7801\uff0cTTS \u8fd4\u56de\u7684\u97f3\u9891\u7247\u6bb5\u540c\u6837\u4e3a base64 \u7f16\u7801\u7684 PCM \u6570\u636e\u3002\n5. **\u60c5\u7eea\u8bc6\u522b**\uff1a\u6bcf\u6b21\u5bf9\u8bdd\u56de\u590d\u90fd\u4f1a\u9644\u5e26\u60c5\u7eea\u5206\u6790\u7ed3\u679c\uff08emotion\/emoji\/emotion_label\uff09\uff0c\u53ef\u7528\u4e8e\u9a71\u52a8\u524d\u7aef\u8868\u60c5\u52a8\u753b\u7b49\u573a\u666f\u3002\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u5b8c\u6210\u90e8\u7f72\u540e\uff0c\u5c1d\u8bd5\u751f\u6210\u4e00\u4e2a\u524d\u7aef\u9875\u9762\u5efa\u7acbwebsocket\u8c03\u7528\u670d\u52a1\u6d4b\u8bd5\u53ef\u7528\u6027\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u7ed9Qoder\u63cf\u8ff0\u9700\u6c42\u5982\u4e0b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\u8bf7\u57fa\u4e8e \u200b\u60c5\u7eea\u966a\u4f34\u673a\u5668\u4eba\u670d\u52a1\u8c03\u7528\u65b9\u6cd5\u8bf4\u660e2.0.md\u200b \u751f\u6210\u4e00\u4e2a\u524d\u7aef\u9875\u9762\uff0c\u7528\u6765\u6d4b\u8bd5**\u5b9e\u65f6\u8bed\u97f3\u5bf9\u8bdd**\u548c**\u4eba\u8138\u8ffd\u8e2a**\u7684\u529f\u80fd\uff1b\n\u524d\u7aef\u4ee3\u7801\u5b9e\u73b0\u548c\u9875\u9762\u6548\u679c\uff0c\u53ef\u4ee5\u53c2\u8003 \u200b20260206_\u684c\u9762\u60c5\u611f\u966a\u4f34demo\u200b \u6587\u4ef6\u5939\uff0c\u8fd9\u4e2a\u6587\u4ef6\u5939\u5df2\u7ecf\u5b9e\u73b0\u76f8\u5173\u529f\u80fd\uff0c\u53ea\u4e0d\u8fc7\u670d\u52a1\u662f\u5355\u72ec\u8c03\u7528\uff0c\u4e0d\u662f\u6253\u5305\u4e0a\u4f20\u5230\u963f\u91cc\u4e91\u767e\u70bc\u9ad8\u4ee3\u7801\u5e94\u7528\u4e2d\u7684\u3002\n\u76ee\u524d\u90e8\u7f72\u5728\u767e\u70bcFC\u5e73\u53f0\u7684\u670d\u52a1\u662f\u5728 \u200bemotion_companion_bailian\u200b \u8fdb\u884c\u6253\u5305\u548c\u90e8\u7f72\u7684\uff0c\n\u8bf7\u53c2\u8003\u5b98\u65b9\u6587\u6863 https:\/\/help.aliyun.com\/zh\/functioncompute\/fc-2-0\/user-guide\/configure-an-http-trigger-for-a-function-that-is-triggered-by-websocket-requests\n\u68c0\u67e5\u76ee\u524d\u914d\u7f6e\u662f\u5426\u7b26\u5408\u6587\u6863\u89c4\u8303\u3002<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u751f\u6210\u524d\u7aef\u6d4b\u8bd5\u9875\u9762\u5982\u4e0b\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"872\" src=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-16.png\" alt=\"\" class=\"wp-image-2259\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-16.png 1024w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-16-300x255.png 300w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-16-768x654.png 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u6839\u672c\u539f\u56e0\uff1a<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">FC \u7f51\u5173\u5bf9 WebSocket \u5347\u7ea7\u8bf7\u6c42\u8fd4\u56de\u4e86&nbsp;<strong>HTTP 400<\/strong>\uff08\u4e0d\u662f 1006\uff0c1006 \u662f\u6d4f\u89c8\u5668\u5bf9\u63e1\u624b\u5931\u8d25\u7684\u5305\u88c5\uff09\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u6839\u636e FC \u5b98\u65b9\u6587\u6863\u7684\u9519\u8bef\u8868\uff1a<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>FcCommonError 400<\/strong>&nbsp;\u2014 \u8c03\u7528\u9700\u8981\u8eab\u4efd\u8ba4\u8bc1\u7684\u51fd\u6570\u7684 Request \u6ca1\u6709\u4f20\u5165&nbsp;<strong>Date<\/strong>&nbsp;\u4fe1\u606f\u6216&nbsp;<strong>Authorization<\/strong>&nbsp;\u4fe1\u606f<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u7ed3\u8bba<\/strong>\uff1aFC HTTP \u89e6\u53d1\u5668\u914d\u7f6e\u4e86&#8221;\u7b7e\u540d\u8ba4\u8bc1&#8221;\uff0cWebSocket \u5347\u7ea7\u8bf7\u6c42\u7f3a\u5c11 FC \u7ea7\u522b\u7684 HMAC \u7b7e\u540d\uff08Date + Authorization\uff09\uff0c\u6240\u4ee5\u88ab\u7f51\u5173\u76f4\u63a5\u62d2\u7edd\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u89e3\u51b3\u65b9\u6848\uff1a<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u9700\u8981\u5728&nbsp;<strong>\u767e\u70bc\/FC \u63a7\u5236\u53f0<\/strong>&nbsp;\u5c06 HTTP \u89e6\u53d1\u5668\u7684\u8ba4\u8bc1\u65b9\u5f0f\u6539\u4e3a&#8221;<strong>\u65e0\u9700\u8ba4\u8bc1<\/strong>&#8220;\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u767b\u5f55&nbsp;<a href=\"https:\/\/bailian.console.aliyun.com\/?tab=app#\/app-center\">\u963f\u91cc\u4e91\u767e\u70bc\u63a7\u5236\u53f0<\/a><\/li>\n\n\n\n<li>\u627e\u5230&#8221;\u60c5\u7eea\u966a\u4f34\u673a\u5668\u4eba&#8221;\u5e94\u7528&nbsp;\u2192 \u8fdb\u5165\u8be6\u60c5<\/li>\n\n\n\n<li>\u627e\u5230\u5173\u8054\u7684 FC \u51fd\u6570 \u2192 HTTP \u89e6\u53d1\u5668<\/li>\n\n\n\n<li>\u5c06\u8ba4\u8bc1\u65b9\u5f0f\u4ece&#8221;\u7b7e\u540d\u8ba4\u8bc1&#8221;\u6539\u4e3a&#8221;<strong>\u65e0\u9700\u8ba4\u8bc1<\/strong>&#8220;<\/li>\n\n\n\n<li>\u4fdd\u5b58<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"681\" src=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-1-1024x681.png\" alt=\"\" class=\"wp-image-2222\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-1-1024x681.png 1024w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-1-300x199.png 300w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-1-768x510.png 768w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-1-1536x1021.png 1536w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-1.png 1935w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u5b89\u5168\u8bf4\u660e\uff1a\u6539\u4e3a&#8221;\u65e0\u9700\u8ba4\u8bc1&#8221;\u540e\uff0cFC \u7f51\u5173\u4e0d\u518d\u62e6\u622a\u8bf7\u6c42\uff0c\u4f46\u4f60\u7684\u5e94\u7528\u4ee3\u7801\u4ecd\u7136\u6709&nbsp;<code>Authorization: Bearer token<\/code>&nbsp;\u7684\u5e94\u7528\u7ea7\u522b\u9274\u6743\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4fee\u6539\u5b8c\u6210\u540e\uff0c\u524d\u7aef\u9875\u9762\u6d4b\u8bd5\u670d\u52a1\u53ef\u7528\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"945\" src=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-3-1024x945.png\" alt=\"\" class=\"wp-image-2224\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-3-1024x945.png 1024w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-3-300x277.png 300w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-3-768x708.png 768w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-3.png 1496w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"333_%E7%A1%AC%E4%BB%B6%E9%9B%86%E6%88%90%EF%BC%9A%E5%A4%9A%E6%A8%A1%E6%80%81%E4%BA%A4%E4%BA%92%E6%9C%8D%E5%8A%A1%E6%8E%A5%E5%8F%A3%E9%9B%86%E6%88%90%E5%88%B0BK7258\"><\/span>3.3.3 <strong>\u786c\u4ef6\u96c6\u6210\uff1a\u591a\u6a21\u6001\u4ea4\u4e92\u670d\u52a1\u63a5\u53e3\u96c6\u6210\u5230BK7258<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u6211\u4eec\u8fd8\u662f\u5c1d\u8bd5\u8ddfQoder\u914d\u5408\u5b8c\u6210\u8fd9\u90e8\u5206\u5de5\u4f5c\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u9996\u5148\u628a\u521d\u59cb\u9700\u6c42\u7ed9\u5230Qoder\u5982\u4e0b\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\u80cc\u666f\uff1a\n\u6211\u4eec\u524d\u9762\u57fa\u4e8e\u200b1.3-\u76ee\u524d\u9700\u6c42\u63cf\u8ff0.md\u200b \u5b8c\u6210\u4e86\u963f\u91cc\u4e91\u591a\u6a21\u6001\u4ea4\u4e92\u5f00\u53d1\u5957\u4ef6\u7684SDK\u66ff\u6362beken_genie\u9879\u76ee\u4e2d\u7684ASR+LLM+TTS\uff0c\u7ecf\u8fc7\u7f16\u8bd1\u548c\u6d4b\u8bd5\uff0c\u5df2\u7ecf\u5728\u535a\u901aBK7258\u4e0a\u5b9e\u73b0\u4e86\u8bed\u97f3\u5524\u9192\u548c\u8bed\u97f3\u5bf9\u8bdd\u3002\n\u6211\u6240\u6709\u7684\u6539\u52a8\u548c\u7f16\u8bd1\u90fd\u662f\u5728 \u200bbk_aidk-ai_release-v2.0.1.9\u200b \u8fd9\u4e2a\u6587\u4ef6\u5939\u4e0b\u8fdb\u884c\u7684\uff1b\n\n\n\u53e6\u5916\uff0c\u5728\nC:\\Users\\LeoYu\\armino\\bk_aidk-ai_release-v2.0.1.9-\u81ea\u5efaASR+LLM+TTS\\toQoder\\20260206_\u684c\u9762\u60c5\u611f\u966a\u4f34demo\\\u6587\u4ef6\u5939\u4e0b\uff0c\u90e8\u7f72\u4e86\u4e00\u4e2a\u60c5\u7eea\u966a\u4f34\u673a\u5668\u4eba\uff0c\u5b83\u662f\u4e00\u4e2a\u90e8\u7f72\u5728\u963f\u91cc\u4e91\u767e\u70bc\u9ad8\u4ee3\u7801\u5e94\u7528\u5e73\u53f0\u4e0a\u7684 AI \u540e\u7aef\u670d\u52a1\uff0c\u63d0\u4f9b**\u6587\u672c\u5bf9\u8bdd**\u548c**\u5b9e\u65f6\u8bed\u97f3\u5bf9\u8bdd**\u4e24\u79cd\u4ea4\u4e92\u65b9\u5f0f\uff0c\u5177\u5907\u60c5\u7eea\u8bc6\u522b\u3001\u8bed\u97f3\u8bc6\u522b\uff08ASR\uff09\u3001\u8bed\u97f3\u5408\u6210\uff08TTS\uff09\u548c\u4eba\u8138\u8ffd\u8e2a\u80fd\u529b\uff0c\u5177\u4f53\u7684\u8c03\u7528\u65b9\u5f0f\uff0c\u53ef\u4ee5\u53c2\u8003\u3002\uff1a\nC:\\Users\\LeoYu\\armino\\bk_aidk-ai_release-v2.0.1.9-\u81ea\u5efaASR+LLM+TTS\\toQoder\\emotion_companion_bailian\\\u60c5\u7eea\u966a\u4f34\u673a\u5668\u4eba\u670d\u52a1\u8c03\u7528\u65b9\u6cd5\u8bf4\u660e.md\n\n\u9700\u6c42\uff1a\n1. \u7528\u201c20260206_\u684c\u9762\u60c5\u611f\u966a\u4f34demo\u201d\u6587\u4ef6\u5939\u4e0b\u5b9e\u73b0\u7684\u60c5\u7eea\u966a\u4f34\u673a\u5668\u4eba\uff0c\u66ff\u6362\u76ee\u524d\u7684\u8bed\u97f3\u5bf9\u8bdd\u529f\u80fd\uff0c\u5e76\u96c6\u6210\u60c5\u7eea\u966a\u4f34\u673a\u5668\u4eba\u5177\u6709\u7684\u60c5\u7eea\u8bc6\u522b\u529f\u80fd\uff0c\u5728\u8bbe\u5907COM\u53e3\u8f93\u51fa\u5bf9\u5e94\u60c5\u7eea\u548c\u8868\u60c5\uff1b\n2. \u7528\u201c20260206_\u684c\u9762\u60c5\u611f\u966a\u4f34demo\u201d\u6587\u4ef6\u5939\u4e0b\u5b9e\u73b0\u7684\u60c5\u7eea\u966a\u4f34\u673a\u5668\u4eba\uff0c\u8c03\u7528\u535a\u901aBK7258\u4e0a\u7684\u6444\u50cf\u5934\uff0c\u5b9e\u73b0\u4eba\u8138\u8ffd\u8e2a\u670d\u52a1\uff1b\n\n\n\u672c\u6b21\u65b0\u9700\u6c42\u7684\u6574\u4f53\u7ed3\u6784\uff0c\u4ee5\u53ca\u540e\u7eed\u7684\u6539\u52a8\uff0c\u8bf7\u52a1\u5fc5\u53c2\u8003\u535a\u901aBK7258\u4e2dbeken_genie\u7684\u9879\u76ee\u5de5\u7a0b\u6587\u6863\uff0c\u94fe\u63a5\u5982\u4e0b https:\/\/docs.bekencorp.com\/arminodoc\/bk_aidk\/bk7258\/zh_CN\/v2.0.1\/projects\/beken_genie\/index.html<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u9700\u8981\u7ecf\u8fc7\u591a\u8f6e\u8c03\u4f18\uff0c\u8f6f\u4ef6\u7f16\u8bd1\u548c\u786c\u4ef6\u70e7\u5f55\uff0c\u6700\u7ec8\u53ef\u4ee5\u5b9e\u73b0\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u8fdb\u884c\u5b9e\u65f6\u5bf9\u8bdd\uff1b<\/li>\n\n\n\n<li>\u8f93\u51fa\u4eba\u8138\u5750\u6807\uff08\u5982\u4e0b\u56fe\uff09\uff1b<\/li>\n\n\n\n<li>\u8f93\u51fa\u8868\u60c5\uff08\u5982\u4e0b\u56fe\uff09\uff1b<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"815\" src=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-25-1024x815.png\" alt=\"\" class=\"wp-image-2286\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-25-1024x815.png 1024w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-25-300x239.png 300w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-25-768x611.png 768w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-25-1536x1223.png 1536w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-25.png 1545w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"284\" src=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-24-1024x284.png\" alt=\"\" class=\"wp-image-2284\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-24-1024x284.png 1024w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-24-300x83.png 300w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-24-768x213.png 768w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-24-1536x427.png 1536w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-24.png 1599w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u751f\u6210\u8be5\u9879\u76eespec\u9700\u6c42\u6587\u6863\u5982\u4e0b\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># \u60c5\u7eea\u966a\u4f34\u673a\u5668\u4eba - BK7258 \u7aef\u4fa7\u5b9e\u73b0\u9700\u6c42\u6587\u6863 v7.1\n\n## \u4e00\u3001\u9879\u76ee\u6982\u8ff0\n\n\u5c06\u963f\u91cc\u4e91\u767e\u70bc\u9ad8\u4ee3\u7801\u5e94\u7528\u5e73\u53f0\u7684\u60c5\u7eea\u966a\u4f34\u673a\u5668\u4eba\u670d\u52a1\u96c6\u6210\u5230\u535a\u901a BK7258 AI \u5f00\u53d1\u677f\uff0c\u5b9e\u73b0\u5168\u53cc\u5de5\u6d41\u6c34\u7ebf\u8bed\u97f3\u4ea4\u4e92\u3001\u60c5\u7eea\u8bc6\u522b\u548c\u4eba\u8138\u8ffd\u8e2a\u529f\u80fd\u3002v7.1 \u7248\u672c\u5728 v7.0 \u57fa\u7840\u4e0a\u91cd\u70b9\u4f18\u5316\u4e86 TTS \u64ad\u653e\u672b\u5c3e\u6742\u97f3\u95ee\u9898\uff0c\u5f15\u5165\u4e09\u91cd\u9632\u62a4\u673a\u5236\u5f7b\u5e95\u6d88\u9664\u97f3\u9891\u7ed3\u5c3e\u566a\u58f0\u3002\n\n---\n\n## \u4e8c\u3001\u7cfb\u7edf\u67b6\u6784\n\n### 2.1 \u6574\u4f53\u67b6\u6784\n\n```\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502                        BK7258 \u5f00\u53d1\u677f (\u7aef\u4fa7)                        \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502  CPU0 (\u5e94\u7528\u6838\u5fc3)                                                  \u2502\n\u2502  \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510  \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510  \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510  \u2502\n\u2502  \u2502 WebSocket   \u2502  \u2502 Audio Engine\u2502  \u2502 Face Tracker            \u2502  \u2502\n\u2502  \u2502 Client      \u2502  \u2502 (300KB RB)  \u2502  \u2502 (DVP Camera)            \u2502  \u2502\n\u2502  \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2518  \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2518  \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518  \u2502\n\u2502         \u2502                \u2502                     \u2502                 \u2502\n\u2502         \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518                 \u2502\n\u2502                          \u2502                                       \u2502\n\u2502  \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510               \u2502\n\u2502  \u2502           Emotion Companion Main              \u2502               \u2502\n\u2502  \u2502  (\u4e8b\u4ef6\u5206\u53d1\u3001\u81ea\u52a8\u91cd\u8fde\u3001\u7f51\u7edc\u4e8b\u4ef6\u5904\u7406)              \u2502               \u2502\n\u2502  \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518               \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502  CPU1 (\u5a92\u4f53\u6838\u5fc3)          \u2502                                       \u2502\n\u2502  \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510               \u2502\n\u2502  \u2502  Audio Mailbox + Video Engine                  \u2502               \u2502\n\u2502  \u2502  (\u97f3\u9891 DMA\u3001\u6444\u50cf\u5934\u9a71\u52a8\u3001\u786c\u4ef6\u7f16\u89e3\u7801)             \u2502               \u2502\n\u2502  \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518               \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502  CPU2 (ASR \u6838\u5fc3)                                                 \u2502\n\u2502  \u2502  (\u672c\u6b21\u672a\u4f7f\u7528\uff0c\u4e91\u7aef ASR)                                        \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n                          \u2502\n                          \u2502 WebSocket (wss:\/\/)\n                          \u25bc\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502              \u963f\u91cc\u4e91\u767e\u70bc\u9ad8\u4ee3\u7801\u5e94\u7528 (\u4e91\u7aef v6.0)                       \u2502\n\u2502  \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510  \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510  \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510  \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u2502\n\u2502  \u2502 ASR     \u2502  \u2502 LLM     \u2502  \u2502 TTS     \u2502  \u2502 Face Detection      \u2502 \u2502\n\u2502  \u2502 qwen3   \u2502  \u2502 qwen3.5 \u2502  \u2502 cosyvoice\u2502  \u2502 qwen3.5-plus        \u2502 \u2502\n\u2502  \u2502 -asr    \u2502  \u2502 -plus   \u2502  \u2502 -v3     \u2502  \u2502                     \u2502 \u2502\n\u2502  \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518  \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518  \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518  \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518 \u2502\n\u2502                          \u2502                                       \u2502\n\u2502  \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510               \u2502\n\u2502  \u2502  Mem0 + Milvus \u957f\u671f\u8bb0\u5fc6\u7cfb\u7edf                    \u2502               \u2502\n\u2502  \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518               \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n```\n\n### 2.2 \u6280\u672f\u9009\u578b\n\n| \u529f\u80fd\u6a21\u5757 | \u7aef\u4fa7\u5b9e\u73b0 | \u4e91\u7aef\u670d\u52a1 |\n|---------|----------|----------|\n| \u901a\u4fe1\u534f\u8bae | WebSocket (mbedTLS + LWIP) | FastAPI WebSocket |\n| \u97f3\u9891\u91c7\u96c6 | 16kHz PCM, 60ms \u5e27 | qwen3-asr-flash-realtime |\n| \u97f3\u9891\u64ad\u653e | 16kHz PCM, 20ms \u5b9a\u65f6\u5668 | cosyvoice-v3-flash |\n| \u4eba\u8138\u8ffd\u8e2a | DVP \u6444\u50cf\u5934 + JPEG \u7f16\u7801 | qwen3.5-plus VLM |\n| \u60c5\u7eea\u8bc6\u522b | JSON \u89e3\u6790 | LLM \u8f93\u51fa EMOTION \u6807\u7b7e |\n| \u8ba4\u8bc1\u65b9\u5f0f | Bearer Token | \u963f\u91cc\u4e91\u767e\u70bc |\n\n---\n\n## \u4e09\u3001\u9879\u76ee\u7ed3\u6784\n\n### 3.1 \u7aef\u4fa7\u4ee3\u7801\u7ed3\u6784\n\n```\nprojects\/common_components\/emotion_companion\/\n\u251c\u2500\u2500 CMakeLists.txt              # \u7f16\u8bd1\u914d\u7f6e\n\u251c\u2500\u2500 Kconfig                     # \u914d\u7f6e\u83dc\u5355\n\u251c\u2500\u2500 include\/\n\u2502   \u251c\u2500\u2500 emotion_companion.h     # \u4e3b\u6a21\u5757 API\n\u2502   \u251c\u2500\u2500 emotion_audio_engine.h  # \u97f3\u9891\u5f15\u64ce API\n\u2502   \u2514\u2500\u2500 emotion_ws_client.h     # WebSocket \u5ba2\u6237\u7aef API\n\u2514\u2500\u2500 src\/\n    \u251c\u2500\u2500 emotion_companion.c     # \u4e3b\u63a7\u5236\u903b\u8f91\n    \u251c\u2500\u2500 emotion_audio_engine.c  # \u97f3\u9891\u5f15\u64ce\u5b9e\u73b0 (v7.1 \u91cd\u70b9\u4f18\u5316)\n    \u251c\u2500\u2500 emotion_ws_client.c     # WebSocket \u5ba2\u6237\u7aef\u5b9e\u73b0\n    \u251c\u2500\u2500 emotion_face_tracker.c  # \u4eba\u8138\u8ffd\u8e2a\u6a21\u5757\n    \u251c\u2500\u2500 emotion_serial_output.c # \u4e32\u53e3\u8f93\u51fa\u6a21\u5757\n    \u2514\u2500\u2500 base64_util.c           # Base64 \u7f16\u7801\u5de5\u5177\n```\n\n### 3.2 \u914d\u7f6e\u6587\u4ef6\n\n```\nprojects\/beken_genie\/config\/bk7258\/config       # CPU0 \u914d\u7f6e\nprojects\/beken_genie\/config\/bk7258_cp1\/config   # CPU1 \u914d\u7f6e\n```\n\n---\n\n## \u56db\u3001\u6838\u5fc3\u529f\u80fd\u6a21\u5757\n\n### 4.1 WebSocket \u5ba2\u6237\u7aef (emotion_ws_client.c)\n\n**\u529f\u80fd\u63cf\u8ff0**\uff1a\n- \u5efa\u7acb\u4e0e\u4e91\u7aef\u670d\u52a1\u7684 WebSocket \u8fde\u63a5\n- \u53d1\u9001\u9ea6\u514b\u98ce\u97f3\u9891\u6570\u636e\uff08base64 \u7f16\u7801\uff09\n- \u63a5\u6536 TTS \u97f3\u9891\u6570\u636e\u548c\u89e3\u7801\u540e\u7684 PCM\n- \u5904\u7406\u5404\u7c7b\u6587\u672c\u6d88\u606f\uff08ASR \u7ed3\u679c\u3001AI \u56de\u590d\u3001\u60c5\u7eea\u3001\u4eba\u8138\u5750\u6807\u7b49\uff09\n\n**\u6d88\u606f\u7c7b\u578b**\uff1a\n\n| \u7c7b\u578b | \u65b9\u5411 | \u8bf4\u660e |\n|------|------|------|\n| connected | \u670d\u52a1\u7aef\u2192\u7aef\u4fa7 | \u8fde\u63a5\u6210\u529f |\n| start_listening | \u7aef\u4fa7\u2192\u670d\u52a1\u7aef | \u5f00\u59cb\u8bed\u97f3\u76d1\u542c |\n| stop_listening | \u7aef\u4fa7\u2192\u670d\u52a1\u7aef | \u505c\u6b62\u8bed\u97f3\u76d1\u542c |\n| audio_data | \u7aef\u4fa7\u2192\u670d\u52a1\u7aef | \u53d1\u9001\u97f3\u9891\u6570\u636e |\n| transcription | \u670d\u52a1\u7aef\u2192\u7aef\u4fa7 | ASR \u8f6c\u5f55\u7ed3\u679c |\n| assistant_message | \u670d\u52a1\u7aef\u2192\u7aef\u4fa7 | AI \u5b8c\u6574\u56de\u590d |\n| tts_start | \u670d\u52a1\u7aef\u2192\u7aef\u4fa7 | TTS \u64ad\u653e\u5f00\u59cb |\n| tts_chunk | \u670d\u52a1\u7aef\u2192\u7aef\u4fa7 | TTS \u97f3\u9891\u5757 |\n| tts_end | \u670d\u52a1\u7aef\u2192\u7aef\u4fa7 | TTS \u64ad\u653e\u7ed3\u675f |\n| detect_face | \u7aef\u4fa7\u2192\u670d\u52a1\u7aef | \u53d1\u9001\u4eba\u8138\u68c0\u6d4b\u8bf7\u6c42 |\n| face_detection_result | \u670d\u52a1\u7aef\u2192\u7aef\u4fa7 | \u4eba\u8138\u68c0\u6d4b\u7ed3\u679c |\n| interrupt | \u7aef\u4fa7\u2192\u670d\u52a1\u7aef | \u6253\u65ad AI \u8bf4\u8bdd |\n\n**\u5173\u952e\u53c2\u6570**\uff1a\n- SSL \u51fa\u7ad9\u7f13\u51b2\u533a\uff1a16384 \u5b57\u8282\uff08\u89e3\u51b3\u5927\u6570\u636e\u53d1\u9001\u5931\u8d25\uff09\n- \u97f3\u9891\u7f16\u7801\uff1aPCM\uff08\u975e OPUS\uff09\n\n### 4.2 \u97f3\u9891\u5f15\u64ce (emotion_audio_engine.c) &#91;v7.1 \u91cd\u70b9\u4f18\u5316]\n\n**\u529f\u80fd\u63cf\u8ff0**\uff1a\n- \u7ba1\u7406 BK7258 \u97f3\u9891\u786c\u4ef6\uff08\u9ea6\u514b\u98ce + \u626c\u58f0\u5668\uff09\n- \u5b9e\u73b0\u5e73\u6ed1\u7684 TTS \u97f3\u9891\u64ad\u653e\n- \u63d0\u4f9b\u6d41\u63a7\u673a\u5236\u9632\u6b62\u7f13\u51b2\u533a\u6ea2\u51fa\n- **&#91;v7.1 \u65b0\u589e] \u4e09\u91cd\u9632\u62a4\u6d88\u9664 TTS \u7ed3\u5c3e\u6742\u97f3**\n\n**\u6838\u5fc3\u8bbe\u8ba1**\uff1a\n\n```\n\u4e91\u7aef TTS \u2192 WebSocket \u2192 \u89e3\u7801 PCM \u2192 \u73af\u5f62\u7f13\u51b2\u533a (300KB) \u2192 \u64ad\u653e\u5b9a\u65f6\u5668 (20ms) \u2192 DAC\n                                          \u2191\n                                    \u6d41\u63a7\u68c0\u67e5 (80%)\n```\n\n**\u5173\u952e\u53c2\u6570**\uff1a\n\n| \u53c2\u6570 | \u503c | \u8bf4\u660e |\n|------|-----|------|\n| \u91c7\u6837\u7387 | 16000 Hz | 16kHz\uff0c\u5339\u914d\u4e91\u7aef |\n| \u5e27\u5927\u5c0f | 960 \u5b57\u8282 | 60ms @ 16kHz\/16bit\/mono |\n| \u73af\u5f62\u7f13\u51b2\u533a | 300 KB | \u7ea6 9 \u79d2 PCM \u6570\u636e |\n| \u64ad\u653e\u5b9a\u65f6\u5668 | 20 ms | \u5e73\u6ed1\u64ad\u653e\u95f4\u9694 |\n| \u6d41\u63a7\u9608\u503c | 80% | \u7f13\u51b2\u533a &gt;= 80% \u65f6\u7b49\u5f85 |\n| \u6d41\u63a7\u8d85\u65f6 | 200 ms | \u7b49\u5f85\u7a7a\u95f4\u8d85\u65f6\u5219\u4e22\u5f03 |\n| **\u6e10\u8fdb\u6de1\u51fa\u533a\u95f4** | **16000 \u5b57\u8282 (500ms)** | **&#91;v7.1] \u7ebf\u6027\u6de1\u51fa\u533a\u95f4** |\n| **\u9759\u97f3\u586b\u5145\u65f6\u957f** | **1000 ms (50 cycles)** | **&#91;v7.1] \u7ed3\u5c3e\u9759\u97f3\u586b\u5145** |\n\n**\u6d41\u63a7\u673a\u5236**\uff1a\n```c\n\/\/ \u5f53\u7f13\u51b2\u533a &gt;= 80% \u6ee1\u65f6\uff0c\u7b49\u5f85\u64ad\u653e\u6d88\u8d39\nif (emo_audio_rb_is_nearly_full()) {\n    if (!emo_audio_wait_for_space(pcm_len, 200)) {\n        \/\/ \u8d85\u65f6\u5219\u4e22\u5f03\u5f53\u524d\u5757\uff0c\u907f\u514d\u6ea2\u51fa\n        return;\n    }\n}\n```\n\n#### 4.2.1 &#91;v7.1 \u65b0\u589e] TTS \u7ed3\u5c3e\u4e09\u91cd\u9632\u62a4\u673a\u5236\n\n**\u95ee\u9898\u80cc\u666f**\uff1a\n\nVOICE \u6a21\u5f0f\u4e0b\u9ea6\u514b\u98ce\u548c\u626c\u58f0\u5668\u6301\u7eed\u8fd0\u884c\uff0cPA \u4e0d\u4f1a\u5173\u95ed\u3002\u5373\u4f7f PCM \u6570\u636e\u5168\u4e3a\u96f6\u503c\uff0cDAC\/\u7f16\u89e3\u7801\u5668\/\u529f\u653e\u786c\u4ef6\u5c42\u9762\u4ecd\u4f1a\u8f93\u51fa thermal noise\uff08\u5e95\u566a\uff09\uff0c\u5bfc\u81f4\u6bcf\u6bb5 TTS \u7ed3\u675f\u65f6\u51fa\u73b0\u53ef\u611f\u77e5\u7684\u6742\u97f3\u3002\n\n**\u4e09\u91cd\u9632\u62a4\u8bbe\u8ba1**\uff1a\n\n```\nTTS \u7ed3\u675f\n  \u2502\n  \u25bc &#91;\u7b2c\u4e00\u91cd] \u6e10\u8fdb\u5f0f\u7ebf\u6027\u6de1\u51fa (500ms \/ 16000 bytes)\n  \u2502   \u9010\u91c7\u6837\u6309\u5269\u4f59\u5b57\u8282\u6570\u6bd4\u4f8b\u8870\u51cf\uff1avolume = bytes_remaining \/ 16000\n  \u2502\n  \u25bc &#91;\u7b2c\u4e8c\u91cd] \u96f6\u503c\u9759\u97f3\u586b\u5145 (1000ms \/ 50 cycles)\n  \u2502   \u6301\u7eed\u5411\u626c\u58f0\u5668\u89e3\u7801\u5668\u5199\u5165\u5168\u96f6 PCM \u6570\u636e\n  \u2502   + \u6700\u540e\u4e00\u5757\u6570\u636e\u5199\u5165\u524d\u96f6\u503c\u94b3\u4f4d\u6700\u540e 4 \u91c7\u6837\n  \u2502\n  \u25bc &#91;\u7b2c\u4e09\u91cd] \u786c\u4ef6\u589e\u76ca\u9759\u97f3\n      \u9759\u97f3\u586b\u5145\u5b8c\u6210\u540e bk_aud_intf_set_spk_gain(0)\n      \u4e0b\u6b21 TTS \u5f00\u59cb\u65f6\u81ea\u52a8\u6062\u590d\u589e\u76ca\n```\n\n**\u6838\u5fc3\u5e38\u91cf**\uff1a\n```c\n#define TTS_END_SILENCE_CYCLES   50      \/\/ 50 cycles * 20ms = 1000ms \u9759\u97f3\n#define TTS_FADE_ZONE_BYTES      (16000) \/\/ 500ms \u7ebf\u6027\u6de1\u51fa\u533a\u95f4\n                                         \/\/ (16000 bytes = 8000 samples @ 16kHz 16-bit mono)\n```\n\n**\u7b2c\u4e00\u91cd\uff1a\u6e10\u8fdb\u5f0f\u7ebf\u6027\u6de1\u51fa**\n\n\u5728\u73af\u5f62\u7f13\u51b2\u533a\u6700\u540e 500ms\uff0816000 \u5b57\u8282\uff09\u7684\u97f3\u9891\u6570\u636e\u4e0a\u5e94\u7528\u9010\u91c7\u6837\u7ebf\u6027\u97f3\u91cf\u8870\u51cf\u3002\u6bcf\u4e2a PCM \u91c7\u6837\u7684\u97f3\u91cf\u6309\u5176\u4e4b\u540e\u5269\u4f59\u6570\u636e\u91cf\u4e0e\u6de1\u51fa\u533a\u95f4\u7684\u6bd4\u503c\u7ebf\u6027\u7f29\u653e\uff0c\u4ece 100% \u5e73\u6ed1\u8870\u51cf\u5230 0%\u3002\n\n```c\nstatic void emo_apply_progressive_fade(int16_t *samples, int num_samples,\n                                        uint32_t bytes_remaining_after_chunk)\n{\n    if (bytes_remaining_after_chunk &gt;= TTS_FADE_ZONE_BYTES) {\n        return;  \/\/ \u4e0d\u5728\u6de1\u51fa\u533a\u95f4\uff0c\u8df3\u8fc7\n    }\n    for (int i = 0; i &lt; num_samples; i++) {\n        uint32_t bytes_after = bytes_remaining_after_chunk +\n                               (uint32_t)((num_samples - 1 - i) * 2);\n        if (bytes_after &gt;= TTS_FADE_ZONE_BYTES) continue;\n        \/\/ volume = bytes_after \/ TTS_FADE_ZONE_BYTES  (\u7ebf\u6027 1.0 \u2192 0.0)\n        int32_t s = (int32_t)samples&#91;i];\n        samples&#91;i] = (int16_t)(s * (int32_t)bytes_after \/ (int32_t)TTS_FADE_ZONE_BYTES);\n    }\n}\n```\n\n**\u7b2c\u4e8c\u91cd\uff1a\u96f6\u503c\u9759\u97f3\u586b\u5145 + \u96f6\u503c\u94b3\u4f4d**\n\n\u73af\u5f62\u7f13\u51b2\u533a\u6392\u7a7a\u540e\uff0c\u64ad\u653e\u5b9a\u65f6\u5668\u6301\u7eed\u5411\u626c\u58f0\u5668\u89e3\u7801\u5668 Ring Buffer \u5199\u5165\u5168\u96f6 PCM \u6570\u636e\uff0c\u6301\u7eed 50 \u4e2a\u5468\u671f\uff081000ms\uff09\u3002\u540c\u65f6\u5728\u6700\u540e\u4e00\u5757\u6709\u6548\u6570\u636e\u5199\u5165\u626c\u58f0\u5668\u524d\uff0c\u5c06\u672b\u5c3e 4 \u4e2a\u91c7\u6837\uff088 \u5b57\u8282\uff09\u5f3a\u5236\u6e05\u96f6\u4f5c\u4e3a\u5b89\u5168\u7f51\u3002\n\n```c\nif (rb_remaining == 0) {\n    \/\/ \u96f6\u503c\u94b3\u4f4d\uff1a\u5199\u5165\u524d\u5c06\u6700\u540e 4 \u4e2a\u91c7\u6837\u6e05\u96f6\n    if (read_len &gt;= 8) {\n        os_memset(g_play_buf + read_len - 8, 0, 8);\n    }\n}\nbk_aud_intf_write_spk_data(g_play_buf, read_len);\nif (rb_remaining == 0) {\n    \/\/ \u7acb\u5373\u586b\u5145\u9759\u97f3\uff0c\u9632\u6b62\u89e3\u7801\u5668\u6b20\u8f7d\n    spk_free = bk_aud_intf_get_dec_rb_free_size();\n    if (spk_free &gt; 0) {\n        uint32_t sil_len = (spk_free &lt; EMO_PLAY_BUF_SIZE) ? spk_free : EMO_PLAY_BUF_SIZE;\n        os_memset(g_play_buf, 0, sil_len);\n        bk_aud_intf_write_spk_data(g_play_buf, sil_len);\n    }\n}\n```\n\n**\u7b2c\u4e09\u91cd\uff1a\u786c\u4ef6\u589e\u76ca\u9759\u97f3**\n\n\u9759\u97f3\u586b\u5145\u5468\u671f\u5168\u90e8\u5b8c\u6210\u540e\uff0c\u8c03\u7528 `bk_aud_intf_set_spk_gain(0)` \u5c06\u626c\u58f0\u5668\u589e\u76ca\u8bbe\u4e3a 0\uff0c\u4ece\u786c\u4ef6\u5c42\u9762\u5f7b\u5e95\u6d88\u9664 DAC\/\u7f16\u89e3\u7801\u5668\/\u529f\u653e\u7684 thermal noise\u3002\u4e0b\u6b21 TTS \u5f00\u59cb\u65f6\u81ea\u52a8\u6062\u590d\u5230\u7528\u6237\u8bbe\u5b9a\u7684\u97f3\u91cf\u3002\n\n```c\n\/\/ \u9759\u97f3\u5b8c\u6210\u540e\u786c\u4ef6\u9759\u97f3\nbk_aud_intf_set_spk_gain(0);\ng_spk_muted_for_tts_end = true;\n\n\/\/ \u65b0 TTS \u5f00\u59cb\u65f6\u6062\u590d\u589e\u76ca\nbk_err_t emo_audio_notify_tts_start(void)\n{\n    g_tts_end_pending = false;\n    g_silence_cycles_remaining = 0;\n    if (g_spk_muted_for_tts_end) {\n        uint8_t level = g_current_volume * (SPK_VOLUME_LEVEL - 1) \/ 100;\n        bk_aud_intf_set_spk_gain(g_volume_gain&#91;level]);\n        g_spk_muted_for_tts_end = false;\n    }\n    return BK_OK;\n}\n```\n\n**\u97f3\u91cf\u8bbe\u7f6e\u4fdd\u62a4**\uff1a\n\n\u5728\u786c\u4ef6\u589e\u76ca\u9759\u97f3\u671f\u95f4\uff0c`emo_audio_set_volume()` \u4e0d\u4f1a\u6062\u590d\u626c\u58f0\u5668\u589e\u76ca\uff0c\u907f\u514d\u9759\u97f3\u72b6\u6001\u88ab\u610f\u5916\u89e3\u9664\uff1a\n\n```c\nif (g_audio_engine_running &amp;&amp; !g_spk_muted_for_tts_end) {\n    bk_aud_intf_set_spk_gain(g_volume_gain&#91;level]);\n}\n```\n\n### 4.3 \u4eba\u8138\u8ffd\u8e2a\u6a21\u5757 (emotion_face_tracker.c)\n\n**\u529f\u80fd\u63cf\u8ff0**\uff1a\n- \u901a\u8fc7 DVP \u6444\u50cf\u5934\u6355\u83b7 JPEG \u5e27\n- \u5b9a\u65f6\u53d1\u9001\u5230\u4e91\u7aef\u8fdb\u884c\u4eba\u8138\u68c0\u6d4b\n- \u8f93\u51fa\u4eba\u8138\u5750\u6807\u5230 COM \u53e3\n\n**\u6570\u636e\u6d41**\uff1a\n\n```\nDVP \u6444\u50cf\u5934 (CPU1) \u2192 video_engine \u2192 \u5e27\u56de\u8c03 (CPU0) \u2192 \u7f13\u5b58\u6700\u65b0 JPEG\n                                                        \u2193 (\u5b9a\u65f6\u5668 2s)\n                                          emo_companion_detect_face()\n                                                        \u2193\n                                        base64 \u7f16\u7801 \u2192 WebSocket \u2192 \u4e91\u7aef\n                                                        \u2193\n                                        \u4eba\u8138\u68c0\u6d4b\u7ed3\u679c \u2192 COM \u53e3\u8f93\u51fa\n```\n\n**\u5173\u952e\u53c2\u6570**\uff1a\n\n| \u53c2\u6570 | \u503c | \u8bf4\u660e |\n|------|-----|------|\n| \u6444\u50cf\u5934\u5206\u8fa8\u7387 | 640x480 | \u5e73\u8861\u753b\u8d28\u548c\u4f20\u8f93\u91cf |\n| JPEG \u5927\u5c0f | 20-60 KB | \u5178\u578b\u5e27\u5927\u5c0f |\n| \u68c0\u6d4b\u95f4\u9694 | 2000 ms | \u53ef\u914d\u7f6e (500-10000ms) |\n| \u5e27\u7f13\u51b2\u533a | 100 KB | PSRAM \u5206\u914d |\n| \u5750\u6807\u8303\u56f4 | 0-1000 | \u5f52\u4e00\u5316\u5750\u6807\u503c |\n\n### 4.4 \u4e3b\u63a7\u5236\u6a21\u5757 (emotion_companion.c)\n\n**\u529f\u80fd\u63cf\u8ff0**\uff1a\n- \u534f\u8c03\u5404\u5b50\u6a21\u5757\u7684\u751f\u547d\u5468\u671f\n- \u5904\u7406\u7f51\u7edc\u4e8b\u4ef6\uff08WiFi \u8fde\u63a5\/\u65ad\u5f00\uff09\n- \u5b9e\u73b0\u81ea\u52a8\u91cd\u8fde\u673a\u5236\n- \u5206\u53d1\u4e8b\u4ef6\u5230\u5e94\u7528\u5c42\u56de\u8c03\n\n**\u81ea\u52a8\u91cd\u8fde\u673a\u5236**\uff1a\n\n| \u53c2\u6570 | \u503c |\n|------|-----|\n| \u91cd\u8fde\u95f4\u9694 | 5000 ms |\n| \u6700\u5927\u91cd\u8bd5\u6b21\u6570 | 10 \u6b21 |\n| \u89e6\u53d1\u6761\u4ef6 | WebSocket \u65ad\u5f00\u3001\u7f51\u7edc\u9519\u8bef |\n\n**\u7f51\u7edc\u4e8b\u4ef6\u5904\u7406**\uff1a\n- WiFi \u8fde\u63a5\u6210\u529f\u540e\u81ea\u52a8\u542f\u52a8\u670d\u52a1\n- \u7b49\u5f85 2 \u79d2\u786e\u4fdd CPU1 \u5a92\u4f53\u5b50\u7cfb\u7edf\u5c31\u7eea\n- \u97f3\u9891\u5f15\u64ce\u542f\u52a8\u5931\u8d25\u65f6\u81ea\u52a8\u91cd\u8bd5\uff08\u6700\u591a 3 \u6b21\uff09\n\n### 4.5 \u4e32\u53e3\u8f93\u51fa\u6a21\u5757 (emotion_serial_output.c)\n\n**\u529f\u80fd\u63cf\u8ff0**\uff1a\n- \u683c\u5f0f\u5316\u8f93\u51fa\u5404\u7c7b\u4e8b\u4ef6\u5230 COM \u53e3\n- \u4fbf\u4e8e\u8c03\u8bd5\u548c\u76d1\u63a7\n\n**\u8f93\u51fa\u683c\u5f0f**\uff1a\n\n```\n&#91;EMOTION] emoji=\ud83d\ude0a, label=\u5f00\u5fc3, emotion=happy\n&#91;FACE] detected=1, x=512, y=384, elapsed=450ms\n&#91;ASR] text=\u4eca\u5929\u5929\u6c14\u600e\u4e48\u6837\n&#91;ASSISTANT] text=\u4eca\u5929\u5929\u6c14\u4e0d\u9519\u5462\uff0c\u9633\u5149\u660e\u5a9a\n&#91;TTS] chunk=3200 bytes, rb_fill=150000\/307200 (48%)\n&#91;STATUS] connected\n&#91;WS_EVENT] connected: server session established\n```\n\n---\n\n## \u4e94\u3001Kconfig \u914d\u7f6e\u9879\n\n| \u914d\u7f6e\u9879 | \u7c7b\u578b | \u9ed8\u8ba4\u503c | \u8bf4\u660e |\n|--------|------|--------|------|\n| EMOTION_COMPANION | bool | n | \u542f\u7528\u60c5\u7eea\u966a\u4f34\u529f\u80fd |\n| EMOTION_COMPANION_DEBUG | bool | n | \u542f\u7528\u8c03\u8bd5\u65e5\u5fd7 |\n| EMOTION_SERVER_URL | string | wss:\/\/\\&lt;your-server\\&gt; | WebSocket \u670d\u52a1\u5668\u5730\u5740 |\n| EMOTION_HTTP_URL | string | https:\/\/\\&lt;your-server\\&gt; | HTTP \u670d\u52a1\u5668\u5730\u5740 |\n| EMOTION_AUTH_TOKEN | string | \\&lt;your-token\\&gt; | Bearer \u8ba4\u8bc1\u4ee4\u724c |\n| EMOTION_FACE_TRACKING | bool | n | \u542f\u7528\u4eba\u8138\u8ffd\u8e2a |\n| EMOTION_FACE_TRACKING_INTERVAL_MS | int | 2000 | \u4eba\u8138\u68c0\u6d4b\u95f4\u9694 |\n| EMOTION_VOLUME_LEVEL | int | 60 | \u9ed8\u8ba4\u97f3\u91cf (30-100) |\n| EMOTION_SERIAL_OUTPUT | bool | y | \u542f\u7528\u4e32\u53e3\u8f93\u51fa |\n| EMOTION_SERIAL_UART_ID | int | 0 | UART \u7aef\u53e3 ID |\n\n---\n\n## \u516d\u3001API \u63a5\u53e3\n\n### 6.1 \u4e3b\u6a21\u5757 API (emotion_companion.h)\n\n```c\n\/\/ \u521d\u59cb\u5316\u670d\u52a1\nint emo_companion_init(const emo_companion_config_t *config);\n\n\/\/ \u542f\u52a8\/\u505c\u6b62\u670d\u52a1\nint emo_companion_start(void);\nint emo_companion_stop(void);\nint emo_companion_deinit(void);\n\n\/\/ \u8bed\u97f3\u76d1\u542c\u63a7\u5236\nint emo_companion_start_listening(void);\nint emo_companion_stop_listening(void);\n\n\/\/ \u72b6\u6001\u67e5\u8be2\nbool emo_companion_is_connected(void);\n\n\/\/ \u97f3\u91cf\u63a7\u5236\nint emo_companion_set_volume(uint8_t volume);\nuint8_t emo_companion_get_volume(void);\n\n\/\/ \u4eba\u8138\u68c0\u6d4b\nint emo_companion_detect_face(const uint8_t *jpeg_data, uint32_t jpeg_len);\n\n\/\/ \u83b7\u53d6\u6700\u8fd1\u60c5\u7eea\nint emo_companion_get_last_emotion(emo_emotion_data_t *data);\n```\n\n### 6.2 \u97f3\u9891\u5f15\u64ce API (emotion_audio_engine.h) &#91;v7.1 \u65b0\u589e\u63a5\u53e3\u8bf4\u660e]\n\n```c\n\/\/ TTS \u751f\u547d\u5468\u671f\u901a\u77e5\nbk_err_t emo_audio_notify_tts_start(void);  \/\/ \u65b0 TTS \u5f00\u59cb\uff0c\u6062\u590d\u589e\u76ca\nbk_err_t emo_audio_notify_tts_end(void);    \/\/ TTS \u7ed3\u675f\uff0c\u542f\u52a8\u4e09\u91cd\u9632\u62a4\n\n\/\/ \u97f3\u9891\u6570\u636e\u5199\u5165\uff08\u542b\u6d41\u63a7\uff09\nbk_err_t emo_audio_write_pcm(const uint8_t *data, uint32_t len);\n\n\/\/ \u97f3\u91cf\u63a7\u5236\uff08\u542b\u786c\u4ef6\u9759\u97f3\u4fdd\u62a4\uff09\nbk_err_t emo_audio_set_volume(uint8_t volume);\nuint8_t emo_audio_get_volume(void);\n\n\/\/ \u7f13\u51b2\u533a\u72b6\u6001\u67e5\u8be2\nbool emo_audio_rb_is_nearly_full(void);\nbool emo_audio_wait_for_space(uint32_t required_space, uint32_t timeout_ms);\nuint32_t emo_audio_rb_get_fill_size_ext(void);\nuint32_t emo_audio_rb_get_total_size_ext(void);\n```\n\n### 6.3 \u4e8b\u4ef6\u7c7b\u578b\n\n```c\ntypedef enum {\n    EMO_EVENT_CONNECTED,         \/\/ WebSocket \u5df2\u8fde\u63a5\n    EMO_EVENT_DISCONNECTED,      \/\/ WebSocket \u5df2\u65ad\u5f00\n    EMO_EVENT_ERROR,             \/\/ \u53d1\u751f\u9519\u8bef\n    EMO_EVENT_LISTENING_STARTED, \/\/ ASR \u76d1\u542c\u5df2\u5f00\u59cb\n    EMO_EVENT_LISTENING_STOPPED, \/\/ ASR \u76d1\u542c\u5df2\u505c\u6b62\n    EMO_EVENT_ASR_RESULT,        \/\/ ASR \u8f6c\u5f55\u7ed3\u679c\n    EMO_EVENT_ASSISTANT_MESSAGE, \/\/ AI \u56de\u590d\u6d88\u606f\n    EMO_EVENT_EMOTION_RESULT,    \/\/ \u60c5\u7eea\u8bc6\u522b\u7ed3\u679c\n    EMO_EVENT_TTS_START,         \/\/ TTS \u64ad\u653e\u5f00\u59cb\n    EMO_EVENT_TTS_END,           \/\/ TTS \u64ad\u653e\u7ed3\u675f\n    EMO_EVENT_FACE_DETECTED,     \/\/ \u4eba\u8138\u68c0\u6d4b\u7ed3\u679c\n    EMO_EVENT_STATUS_CHANGE,     \/\/ \u72b6\u6001\u53d8\u5316\n} emo_event_t;\n```\n\n### 6.4 \u6570\u636e\u7ed3\u6784\n\n```c\n\/\/ \u60c5\u7eea\u6570\u636e\ntypedef struct {\n    char emotion&#91;32];       \/\/ \u82f1\u6587\u6807\u7b7e: \"happy\", \"sad\", etc.\n    char emoji&#91;16];         \/\/ Emoji \u5b57\u7b26\n    char emotion_label&#91;32]; \/\/ \u4e2d\u6587\u6807\u7b7e: \"\u5f00\u5fc3\", \"\u96be\u8fc7\", etc.\n} emo_emotion_data_t;\n\n\/\/ \u4eba\u8138\u5750\u6807\ntypedef struct {\n    bool detected;      \/\/ \u662f\u5426\u68c0\u6d4b\u5230\u4eba\u8138\n    int x;              \/\/ X \u5750\u6807 (0-1000)\n    int y;              \/\/ Y \u5750\u6807 (0-1000)\n    int elapsed_ms;     \/\/ \u68c0\u6d4b\u8017\u65f6 (ms)\n} emo_face_coords_t;\n```\n\n---\n\n## \u4e03\u3001\u7f16\u8bd1\u548c\u90e8\u7f72\n\n### 7.1 \u7f16\u8bd1\u547d\u4ee4\n\n```powershell\n# \u8fdb\u5165\u9879\u76ee\u76ee\u5f55\ncd \"&lt;your-project-path&gt;\"\n\n# \u7f16\u8bd1\u56fa\u4ef6\n.\\dbuild.ps1 make bk7258 PROJECT=beken_genie\n\n# \u6e05\u9664\u540e\u91cd\u65b0\u7f16\u8bd1\uff08\u5982\u9047\u95ee\u9898\uff09\n.\\dbuild.ps1 make bk7258 PROJECT=beken_genie distclean\n.\\dbuild.ps1 make bk7258 PROJECT=beken_genie\n```\n\n### 7.2 \u56fa\u4ef6\u8f93\u51fa\n\n```\nbuild\\beken_genie\\bk7258\\all-app.bin\n```\n\n### 7.3 \u70e7\u5f55\u65b9\u5f0f\n\n\u4f7f\u7528 BK7258 \u70e7\u5f55\u5de5\u5177\u5c06 `all-app.bin` \u70e7\u5f55\u5230\u5f00\u53d1\u677f\u3002\n\n---\n\n## \u516b\u3001\u8c03\u8bd5\u7ecf\u9a8c\u603b\u7ed3\n\n### 8.1 \u97f3\u9891\u76f8\u5173\u95ee\u9898\n\n#### 8.1.1 \u97f3\u9891\u64ad\u653e\u5361\u987f\/\u65ad\u7eed\n\n**\u95ee\u9898\u73b0\u8c61**\uff1a\n- \u97f3\u9891\u64ad\u653e\u65ad\u65ad\u7eed\u7eed\uff0c\u53ea\u80fd\u542c\u5230\u77ed\u7247\u6bb5\n- \u65e5\u5fd7\u663e\u793a `player_rb_size &#91;32768] = 32KB`\n\n**\u6839\u56e0\u5206\u6790**\uff1a\n```\n\u4e91\u7aef TTS \u97f3\u9891\u63a8\u9001\u901f\u7387: ~120KB\/s\n\u786c\u4ef6\u64ad\u653e\u6d88\u8d39\u901f\u7387: ~32KB\/s (16kHz\/16bit\/mono)\n32KB \u7f13\u51b2\u533a\u5728 0.35 \u79d2\u5185\u88ab\u586b\u6ee1\uff0c\u4e4b\u540e\u5927\u91cf\u97f3\u9891\u6570\u636e\u6ea2\u51fa\u4e22\u5931\n```\n\n**\u89e3\u51b3\u65b9\u6848**\uff1a\n- \u73af\u5f62\u7f13\u51b2\u533a\u4ece 32KB \u589e\u5927\u5230 300KB\uff08\u7ea6 9 \u79d2 PCM \u6570\u636e\uff09\n- \u5339\u914d ali_wss \u53c2\u8003\u5b9e\u73b0\u7684 `c_mmi_set_audio_mode_ringbuffer(500*1024, 900*1024)`\n\n#### 8.1.2 \u64ad\u653e\u6742\u97f3\uff08SSL \u7f13\u51b2\u533a\u4e0d\u8db3\uff09\n\n**\u95ee\u9898\u73b0\u8c61**\uff1a\n- \u97f3\u9891\u64ad\u653e\u6709\u6742\u97f3\n- \u65e5\u5fd7\u663e\u793a `0x6880` \u9519\u8bef\u7801\uff08SSL \u53d1\u9001\u5931\u8d25\uff09\n\n**\u6839\u56e0\u5206\u6790**\uff1a\n- MBEDTLS SSL \u51fa\u7ad9\u7f13\u51b2\u533a\u9ed8\u8ba4 4096 \u5b57\u8282\n- \u5927\u6570\u636e\u5206\u7247\u53d1\u9001\u65f6\u7f13\u51b2\u533a\u4e0d\u8db3\u5bfc\u81f4\u5931\u8d25\n\n**\u89e3\u51b3\u65b9\u6848**\uff1a\n```kconfig\nCONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=16384\n```\n\n#### 8.1.3 \u6bcf\u6bb5\u7ed3\u5c3e\u6742\u97f3 &#91;v7.1 \u91cd\u70b9\u4f18\u5316]\n\n**\u95ee\u9898\u73b0\u8c61**\uff1a\n- \u6bcf\u4e2a TTS \u6bb5\u843d\u7ed3\u675f\u65f6\u51fa\u73b0\u6742\u97f3\/\u566a\u58f0\n- VOICE \u6a21\u5f0f\u4e0b PA \u6301\u7eed\u8fd0\u884c\uff0c\u5373\u4f7f PCM \u6570\u636e\u5168\u4e3a\u96f6\uff0cDAC \u4ecd\u8f93\u51fa\u5e95\u566a\n\n**\u6839\u56e0\u5206\u6790**\uff1a\n\n| \u4fee\u590d\u7248\u672c | \u65b9\u6848 | \u7ed3\u679c |\n|---------|------|------|\n| v7.0 | 300ms \u9759\u97f3\u586b\u5145 + 30ms \u6de1\u51fa | \u4ecd\u6709\u6742\u97f3 |\n| v7.0.1 | 200ms \u6e10\u8fdb\u5f0f\u6de1\u51fa + 500ms \u9759\u97f3 | \u4ecd\u6709\u6742\u97f3 |\n| **v7.1** | **\u4e09\u91cd\u9632\u62a4\uff08\u89c1\u4e0b\u6587\uff09** | **\u5f7b\u5e95\u89e3\u51b3** |\n\n\u6838\u5fc3\u95ee\u9898\uff1a\u8f6f\u4ef6\u7ea7\u522b\u7684 PCM \u96f6\u503c\u9759\u97f3\u65e0\u6cd5\u6d88\u9664 DAC\/\u7f16\u89e3\u7801\u5668\/\u529f\u653e\u7684 thermal noise\uff08\u5e95\u566a\uff09\uff0c\u5fc5\u987b\u4ece\u786c\u4ef6\u589e\u76ca\u5c42\u9762\u9759\u97f3\u3002\n\n**v7.1 \u89e3\u51b3\u65b9\u6848 - \u4e09\u91cd\u9632\u62a4**\uff1a\n\n```\nTTS \u7ed3\u675f\u4fe1\u53f7 (tts_end)\n  \u2502\n  \u25bc \u8bbe\u7f6e g_tts_end_pending=true, g_silence_cycles_remaining=50\n  \u2502\n  \u25bc \u64ad\u653e\u5b9a\u65f6\u5668\u7ee7\u7eed\u6d88\u8d39\u73af\u5f62\u7f13\u51b2\u533a\n  \u2502\n  \u25bc &#91;\u7b2c\u4e00\u91cd] \u6e10\u8fdb\u5f0f\u7ebf\u6027\u6de1\u51fa\n  \u2502   \u5728\u6700\u540e 16000 \u5b57\u8282 (500ms) \u4e0a\u9010\u91c7\u6837\u7ebf\u6027\u8870\u51cf\n  \u2502   volume = bytes_remaining \/ 16000 (\u4ece 100% \u2192 0%)\n  \u2502\n  \u25bc &#91;\u7b2c\u4e8c\u91cd] \u96f6\u503c\u9759\u97f3\u586b\u5145 + \u96f6\u503c\u94b3\u4f4d\n  \u2502   \u6700\u540e\u4e00\u5757\u6570\u636e\u5199\u5165\u524d\uff0c\u672b\u5c3e 4 \u91c7\u6837 (8\u5b57\u8282) \u5f3a\u5236\u6e05\u96f6\n  \u2502   \u7f13\u51b2\u533a\u6392\u7a7a\u540e\u6301\u7eed\u5199\u5165\u96f6\u503c PCM\uff0c\u5171 50 \u4e2a 20ms \u5468\u671f (1000ms)\n  \u2502   \u6bcf\u5468\u671f\u5c3d\u53ef\u80fd\u586b\u6ee1\u626c\u58f0\u5668\u89e3\u7801\u5668\u7f13\u51b2\u533a\n  \u2502\n  \u25bc &#91;\u7b2c\u4e09\u91cd] \u786c\u4ef6\u589e\u76ca\u9759\u97f3\n      bk_aud_intf_set_spk_gain(0) - \u4ece\u786c\u4ef6\u5c42\u9762\u5207\u65ad\u5e95\u566a\n      \u8bbe\u7f6e g_spk_muted_for_tts_end=true\n      emo_audio_set_volume() \u5728\u6b64\u671f\u95f4\u4e0d\u4f1a\u6062\u590d\u589e\u76ca\n      \u4e0b\u6b21 emo_audio_notify_tts_start() \u65f6\u81ea\u52a8\u6062\u590d\u7528\u6237\u97f3\u91cf\n```\n\n**\u5173\u952e\u53c2\u6570\u5bf9\u6bd4**\uff1a\n\n| \u53c2\u6570 | v7.0 | v7.1 | \u8bf4\u660e |\n|------|------|------|------|\n| \u6de1\u51fa\u65b9\u5f0f | 30ms \u7b80\u5355\u6de1\u51fa | 500ms \u7ebf\u6027\u6e10\u8fdb\u6de1\u51fa | \u8de8\u8d8a\u591a\u4e2a\u64ad\u653e\u5468\u671f |\n| \u6de1\u51fa\u533a\u95f4 | 960 bytes | 16000 bytes | 8000 \u91c7\u6837\u9010\u4e2a\u8870\u51cf |\n| \u9759\u97f3\u65f6\u957f | 300ms (15 cycles) | 1000ms (50 cycles) | \u786e\u4fdd DAC \u5b8c\u5168\u9759\u9ed8 |\n| \u786c\u4ef6\u9759\u97f3 | \u65e0 | `set_spk_gain(0)` | \u6d88\u9664 thermal noise |\n| \u96f6\u503c\u94b3\u4f4d | \u65e0 | \u672b\u5c3e 4 \u91c7\u6837\u6e05\u96f6 | \u9632\u6b62\u6de1\u51fa\u6b8b\u4f59 |\n| \u97f3\u91cf\u4fdd\u62a4 | \u65e0 | \u9759\u97f3\u671f\u95f4\u9501\u5b9a\u589e\u76ca | \u9632\u6b62\u610f\u5916\u6062\u590d |\n\n#### 8.1.4 Ring Buffer \u6ea2\u51fa\n\n**\u95ee\u9898\u73b0\u8c61**\uff1a\n```\nemo_aud:W(232006):Audio RB overflow: need 3200, free 1280, fill 305919\n```\n- \u64ad\u653e\u51e0\u5341\u79d2\u540e\u5168\u90e8\u53d8\u6210\u6742\u97f3\n- \u7f13\u51b2\u533a\u586b\u5145\u5230 99%\uff08fill=307199\/307200\uff09\n\n**\u6839\u56e0\u5206\u6790**\uff1a\n```\nTTS \u6570\u636e\u5230\u8fbe\u901f\u5ea6 &gt; \u64ad\u653e\u6d88\u8d39\u901f\u5ea6\n20ms \u64ad\u653e\u5b9a\u65f6\u5668\u88ab\u5176\u4ed6\u4efb\u52a1\uff08SSL \u5206\u7247\u3001\u6444\u50cf\u5934\uff09\u963b\u585e\n\u5bfc\u81f4\u6d88\u8d39\u8ddf\u4e0d\u4e0a\u751f\u4ea7\uff0c\u6700\u7ec8\u6ea2\u51fa\n```\n\n**\u89e3\u51b3\u65b9\u6848**\uff1a\u6d41\u63a7\u673a\u5236\n```c\n\/\/ emotion_audio_engine.c\nbool emo_audio_rb_is_nearly_full(void) {\n    uint32_t fill = audio_rb_get_fill_size();\n    return (fill * 100 \/ g_audio_rb_size) &gt;= 80;  \/\/ &gt;= 80% \u6ee1\n}\n\nbool emo_audio_wait_for_space(uint32_t required_space, uint32_t timeout_ms) {\n    uint32_t elapsed = 0;\n    while (audio_rb_get_free_size() &lt; required_space) {\n        if (elapsed &gt;= timeout_ms) return false;\n        rtos_delay_milliseconds(10);\n        elapsed += 10;\n    }\n    return true;\n}\n\n\/\/ emotion_companion.c - TTS \u5904\u7406\u4e2d\u96c6\u6210\u6d41\u63a7\nif (emo_audio_rb_is_nearly_full()) {\n    if (!emo_audio_wait_for_space(pcm_len, 200)) {\n        return;  \/\/ \u8d85\u65f6\u5219\u4e22\u5f03\u5f53\u524d\u5757\n    }\n}\n```\n\n#### 8.1.5 \u97f3\u9891\u7f16\u89e3\u7801\u9519\u8bef\n\n**\u95ee\u9898\u73b0\u8c61**\uff1a\n- \u97f3\u9891\u65e0\u6cd5\u6b63\u5e38\u64ad\u653e\n- \u7f16\u89e3\u7801\u7c7b\u578b\u4e0d\u5339\u914d\n\n**\u89e3\u51b3\u65b9\u6848**\uff1a\n```kconfig\n# projects\/beken_genie\/config\/bk7258\/config\nCONFIG_AUDIO_ENCODER_TYPE=\"PCM\"\nCONFIG_AUDIO_DECODER_TYPE=\"PCM\"\nCONFIG_AUDIO_ADC_SAMP_RATE=16000\nCONFIG_AUDIO_DAC_SAMP_RATE=16000\n```\n\n### 8.2 \u7f16\u8bd1\u76f8\u5173\u95ee\u9898\n\n#### 8.2.1 `configTICK_RATE_HZ` \u672a\u58f0\u660e\n\n**\u95ee\u9898\u73b0\u8c61**\uff1a\n```\nerror: 'configTICK_RATE_HZ' undeclared (first use in this function)\n```\n\n**\u6839\u56e0\u5206\u6790**\uff1a\n- \u539f\u4ee3\u7801\u4f7f\u7528 FreeRTOS \u7684 `configTICK_RATE_HZ` \u5b8f\u8ba1\u7b97\u65f6\u95f4\n- \u8be5\u5b8f\u5728\u5f53\u524d SDK \u73af\u5883\u4e2d\u672a\u66b4\u9732\u7ed9\u5e94\u7528\u5c42\n\n**\u89e3\u51b3\u65b9\u6848**\uff1a\u4f7f\u7528\u7b80\u5355\u8ba1\u6570\u5668\u66ff\u4ee3 tick \u8ba1\u7b97\n```c\nuint32_t elapsed = 0;\nwhile (audio_rb_get_free_size() &lt; required_space) {\n    if (elapsed &gt;= timeout_ms) return false;\n    rtos_delay_milliseconds(10);\n    elapsed += 10;  \/\/ \u7d2f\u52a0\u8ba1\u6570\n}\n```\n\n### 8.3 Cache \u4e00\u81f4\u6027\u95ee\u9898\n\n#### 8.3.1 CPU0\/CPU1 \u6570\u636e\u4e0d\u540c\u6b65\n\n**\u95ee\u9898\u73b0\u8c61**\uff1a\n- \u97f3\u9891\u5f15\u64ce\u521d\u59cb\u5316\u5931\u8d25\n- CPU1 \u672a\u6b63\u786e\u54cd\u5e94 CPU0 \u7684 mailbox \u6d88\u606f\n\n**\u6839\u56e0\u5206\u6790**\uff1a\n- BK7258 \u4e09\u6838\u67b6\u6784\u4e2d CPU0 \u548c CPU1 \u5404\u6709\u72ec\u7acb\u7684 D-Cache\n- DMA \u8bfb\u53d6\u5185\u5b58\u65f6\u53ef\u80fd\u8bfb\u5230 Cache \u4e2d\u7684\u65e7\u6570\u636e\n- Mailbox \u6d88\u606f\u4f20\u9012\u9700\u8981 Cache \u540c\u6b65\n\n**\u89e3\u51b3\u65b9\u6848**\uff1a\n```c\n\/\/ CPU0 \u53d1\u9001 mailbox \u524d\u5237\u65b0 Cache\nbk_dcache_flush(addr, size);\n\n\/\/ CPU1 \u63a5\u6536\u540e\u65e0\u6548\u5316 Cache\nbk_dcache_invalidate(addr, size);\n```\n\n**\u5173\u952e\u914d\u7f6e**\uff1a\n```kconfig\nCONFIG_DCACHE=y\nCONFIG_CACHE_ENABLE=y\n```\n\n### 8.4 \u6444\u50cf\u5934\u76f8\u5173\u95ee\u9898\n\n| \u95ee\u9898 | \u6839\u56e0 | \u89e3\u51b3\u65b9\u6848 |\n|------|------|----------|\n| \u4eba\u8138\u8ffd\u8e2a\u4e0d\u5de5\u4f5c | \u7f3a\u5c11\u6444\u50cf\u5934\u542f\u52a8\u7ba1\u9053 | \u65b0\u589e emotion_face_tracker.c |\n| \u5e27\u6355\u83b7\u5931\u8d25 | video_engine \u672a\u521d\u59cb\u5316 | \u8c03\u7528 video_turn_on() \u542f\u52a8 DVP |\n\n### 8.5 \u7f51\u7edc\u76f8\u5173\u95ee\u9898\n\n| \u95ee\u9898 | \u6839\u56e0 | \u89e3\u51b3\u65b9\u6848 |\n|------|------|----------|\n| WebSocket \u65ad\u5f00\u540e\u65e0\u54cd\u5e94 | \u65e0\u91cd\u8fde\u673a\u5236 | \u65b0\u589e\u81ea\u52a8\u91cd\u8fde\uff08\u6700\u591a 10 \u6b21\uff0c5s \u95f4\u9694\uff09 |\n| \u97f3\u9891\u5f15\u64ce\u542f\u52a8\u5931\u8d25 | CPU1 \u672a\u5c31\u7eea | \u542f\u52a8\u524d\u7b49\u5f85 500ms\uff0c\u5931\u8d25\u91cd\u8bd5 3 \u6b21 |\n\n### 8.6 \u5185\u5b58\u76f8\u5173\u95ee\u9898\n\n| \u95ee\u9898 | \u6839\u56e0 | \u89e3\u51b3\u65b9\u6848 |\n|------|------|----------|\n| \u5927\u5e27\u5185\u5b58\u4e0d\u8db3 | SRAM \u6709\u9650 | \u4f7f\u7528 psram_malloc \u5206\u914d\u5e27\u7f13\u51b2\u533a |\n| \u97f3\u9891\u7f13\u51b2\u533a\u5206\u914d\u5931\u8d25 | SRAM \u788e\u7247\u5316 | \u4f7f\u7528 PSRAM \u5206\u914d 300KB \u73af\u5f62\u7f13\u51b2\u533a |\n\n### 8.7 \u95ee\u9898\u6392\u67e5\u6d41\u7a0b\n\n```\n1. \u68c0\u67e5 COM \u53e3\u65e5\u5fd7\n   \u2193\n2. \u5206\u6790\u9519\u8bef\u7801\u548c\u8b66\u544a\u4fe1\u606f\n   \u2193\n3. \u68c0\u67e5\u914d\u7f6e\u6587\u4ef6 (config)\n   \u2193\n4. \u68c0\u67e5\u7f13\u51b2\u533a\u5927\u5c0f\u548c\u6d41\u63a7\u673a\u5236\n   \u2193\n5. \u68c0\u67e5 Cache \u4e00\u81f4\u6027\n   \u2193\n6. \u68c0\u67e5\u4efb\u52a1\u4f18\u5148\u7ea7\u548c\u65f6\u5e8f\n```\n\n---\n\n## \u4e5d\u3001\u4e91\u7aef\u670d\u52a1\u914d\u7f6e\n\n### 9.1 \u670d\u52a1\u5730\u5740\n\n| \u914d\u7f6e\u9879 | \u503c |\n|--------|-----|\n| WebSocket URL | wss:\/\/\\&lt;your-server-domain\\&gt; |\n| HTTP URL | https:\/\/\\&lt;your-server-domain\\&gt; |\n| \u8ba4\u8bc1 Token | \\&lt;your-auth-token\\&gt; |\n\n### 9.2 \u4e91\u7aef\u529f\u80fd\n\n\u4e91\u7aef\u670d\u52a1\u57fa\u4e8e v6.0 \u7248\u672c\uff0c\u63d0\u4f9b\u4ee5\u4e0b\u80fd\u529b\uff1a\n- \u5168\u53cc\u5de5\u6d41\u6c34\u7ebf\u8bed\u97f3\u4ea4\u4e92\uff08\u9996\u5b57\u5ef6\u8fdf 1.2-1.7s\uff09\n- \u667a\u80fd\u5224\u505c\u4e0e\u62d2\u8bc6\uff08\u89c4\u5219\u5f15\u64ce + LLM \u8bed\u4e49\u5224\u65ad\uff09\n- \u957f\u671f\u8bb0\u5fc6\u7cfb\u7edf\uff08Mem0 + Milvus\uff09\n- \u4eba\u8138\u68c0\u6d4b\uff08qwen3.5-plus VLM\uff09\n\n---\n\n## \u5341\u3001\u7248\u672c\u8bb0\u5f55\n\n| \u7248\u672c | \u65e5\u671f | \u66f4\u65b0\u5185\u5bb9 |\n|------|------|----------|\n| v7.0.0 | 2026-03-12 | BK7258 \u7aef\u4fa7\u5b9e\u73b0\uff1aWebSocket \u5ba2\u6237\u7aef + \u97f3\u9891\u5f15\u64ce + \u4eba\u8138\u8ffd\u8e2a + \u60c5\u7eea\u8bc6\u522b\uff1b300KB \u73af\u5f62\u7f13\u51b2\u533a + 20ms \u64ad\u653e\u5b9a\u65f6\u5668 + \u6d41\u63a7\u673a\u5236\uff1b\u81ea\u52a8\u91cd\u8fde + \u7f51\u7edc\u4e8b\u4ef6\u5904\u7406\uff1b\u5b8c\u5907\u7684 COM \u53e3\u65e5\u5fd7\u8f93\u51fa |\n| v7.1.0 | 2026-03-29 | TTS \u7ed3\u5c3e\u6742\u97f3\u4e09\u91cd\u9632\u62a4\uff1a500ms \u6e10\u8fdb\u5f0f\u7ebf\u6027\u6de1\u51fa\uff0816000 bytes \u9010\u91c7\u6837\u8870\u51cf\uff09+ 1000ms \u96f6\u503c\u9759\u97f3\u586b\u5145\uff0850 cycles\uff09+ \u786c\u4ef6\u589e\u76ca\u9759\u97f3\uff08`set_spk_gain(0)` \u6d88\u9664 DAC \u5e95\u566a\uff09\uff1b\u65b0\u589e\u97f3\u91cf\u8bbe\u7f6e\u4fdd\u62a4\uff08\u9759\u97f3\u671f\u95f4\u9501\u5b9a\u589e\u76ca\uff09\uff1b\u65b0\u589e TTS \u751f\u547d\u5468\u671f\u7ba1\u7406\uff08`notify_tts_start` \u81ea\u52a8\u6062\u590d\u589e\u76ca\uff09 |\n\n---\n\n## \u5341\u4e00\u3001\u9644\u5f55\n\n### 11.1 \u53c2\u8003\u6587\u6863\n\n- &#91;BK7258 Beken Genie \u9879\u76ee\u6587\u6863](https:\/\/docs.bekencorp.com\/arminodoc\/bk_aidk\/bk7258\/zh_CN\/v2.0.1\/projects\/beken_genie\/index.html)\n\n### 11.2 \u76f8\u5173\u6587\u4ef6\u8def\u5f84\n\n```\n\u7aef\u4fa7\u4ee3\u7801: projects\/common_components\/emotion_companion\/\n\u914d\u7f6e\u6587\u4ef6: projects\/beken_genie\/config\/bk7258\/config\n\u7f16\u8bd1\u8f93\u51fa: build\/beken_genie\/bk7258\/all-app.bin\n```\n\n### 11.3 \u60c5\u7eea\u7c7b\u578b\u5b9a\u4e49\n\n| \u8868\u60c5\u540d | Emoji | \u4e2d\u6587\u6807\u7b7e | \u542b\u4e49 |\n|--------|-------|----------|------|\n| happy | \ud83d\ude0a | \u5f00\u5fc3 | \u5f00\u5fc3\u3001\u5174\u594b\u3001\u9ad8\u5174 |\n| sad | \ud83d\ude22 | \u96be\u8fc7 | \u96be\u8fc7\u3001\u540c\u60c5\u3001\u5b89\u6170 |\n| love | \ud83e\udd70 | \u5173\u7231 | \u5173\u7231\u3001\u559c\u6b22\u3001\u6e29\u6696 |\n| thinking | \ud83e\udd14 | \u601d\u8003 | \u601d\u8003\u3001\u7591\u60d1\u3001\u597d\u5947 |\n| surprised | \ud83d\ude2e | \u60ca\u8bb6 | \u60ca\u8bb6\u3001\u610f\u5916 |\n| neutral | \ud83d\ude0c | \u5e73\u9759 | \u5e73\u9759\u3001\u4e2d\u6027 |\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"34_%E8%AE%B0%E5%BF%86%E7%B3%BB%E7%BB%9F\"><\/span>3.4 <strong>\u8bb0\u5fc6\u7cfb\u7edf<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u8bb0\u5fc6\u7cfb\u7edf\u7684\u6784\u5efa\u76ee\u524d\u4e3b\u6d41\u6709\u51e0\u4e2a\u601d\u8def\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u4f7f\u7528\u90e8\u5206\u4e91\u5382\u5546\u76f8\u5173\u7ec4\u4ef6\u539f\u751f\u81ea\u5e26\u7684\u957f\u671f\u8bb0\u5fc6\u529f\u80fd\uff1b<\/li>\n\n\n\n<li>\u901a\u8fc7RAG\u7684\u65b9\u5f0f\uff0c\u628a\u8bb0\u5fc6\u5b58\u50a8\u5728\u77e5\u8bc6\u5e93\u4e2d\uff0c\u6309\u9700\u8c03\u7528\uff1b<\/li>\n\n\n\n<li>\u628a\u8bb0\u5fc6\u6301\u4e45\u5316\u5b58\u50a8\u4e8e\u5411\u91cf\u6570\u636e\u5e93\u4e2d\u3002<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u8fd9\u91cc\u5c1d\u8bd5\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u5728\u591a\u6a21\u6001\u4ea4\u4e92\u5f00\u53d1\u5957\u4ef6\u4e2d\uff0c\u4f7f\u7528\u539f\u751f\u957f\u671f\u8bb0\u5fc6\u529f\u80fd\uff1b<\/li>\n\n\n\n<li>\u5728\u81ea\u5efa\u94fe\u8def\u4e2d\uff0c\u6784\u5efa\u57fa\u4e8e Mem0 + \u963f\u91cc\u4e91 Milvus \u5411\u91cf\u6570\u636e\u5e93 \u7684\u957f\u671f\u8bb0\u5fc6\u7cfb\u7edf\u3002<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"341_%E5%A4%9A%E6%A8%A1%E6%80%81%E4%BA%A4%E4%BA%92%E5%BC%80%E5%8F%91%E5%A5%97%E4%BB%B6%E5%90%AF%E7%94%A8%E9%95%BF%E6%9C%9F%E8%AE%B0%E5%BF%86\"><\/span>3.4.1 \u591a\u6a21\u6001\u4ea4\u4e92\u5f00\u53d1\u5957\u4ef6\u542f\u7528\u957f\u671f\u8bb0\u5fc6<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u767e\u70bc\u7684\u591a\u6a21\u6001\u4ea4\u4e92\u5f00\u53d1\u5957\u4ef6\u81ea\u5e26\u76f8\u5173\u529f\u80fd\uff0c\u53ef\u4ee5\u76f4\u63a5\u5f00\u542f\uff0c\u5982\u4e0b\u56fe\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"964\" src=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-26-1024x964.png\" alt=\"\" class=\"wp-image-2291\" style=\"aspect-ratio:1.0621147463252727;width:544px;height:auto\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-26-1024x964.png 1024w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-26-300x282.png 300w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-26-768x723.png 768w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-26.png 1026w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u5f00\u542f\u540e\uff0cSDK\u901a\u8fc7user_id\u53c2\u6570\u533a\u5206\u7528\u6237\uff0c\u6bcf\u4e2a\u7528\u6237\u7684\u8bb0\u5fc6\u76f8\u4e92\u9694\u79bb\uff0c\u5177\u4f53\u914d\u7f6e\u53ef\u53c2\u8003\u5982\u4e0b\u6587\u6863 <a href=\"https:\/\/help.aliyun.com\/zh\/model-studio\/multimodal-interaction-protocol\">https:\/\/help.aliyun.com\/zh\/model-studio\/multimodal-interaction-protocol<\/a>\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5f00\u542f\u540e\uff0c\u901a\u8fc7Qoder\u5c06\u76f8\u5173\u53c2\u6570\u96c6\u6210\u5230\u539f\u6709\u9879\u76ee\uff0c\u4fee\u6539\u5185\u5bb9\u603b\u7ed3\u5982\u4e0b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># 2.0 \u9879\u76ee\u53d8\u66f4\u8bb0\u5f55 \u2014\u2014 \u963f\u91cc\u4e91\u591a\u6a21\u6001\u4ea4\u4e92\u957f\u671f\u8bb0\u5fc6\u529f\u80fd\n\n## \u9700\u6c42\u6982\u8ff0\n\n\u5728 beken_genie \u9879\u76ee\u4e2d\u542f\u7528\u963f\u91cc\u4e91\u591a\u6a21\u6001\u4ea4\u4e92\u5f00\u53d1\u5957\u4ef6\u7684**\u957f\u671f\u8bb0\u5fc6\u529f\u80fd**\u3002  \n\u6838\u5fc3\u673a\u5236\uff1aSDK \u901a\u8fc7 `parameters.client_info.user_id` \u5b57\u6bb5\u6309\u7528\u6237\u7ef4\u5ea6\u751f\u6210\u72ec\u7acb\u8bb0\u5fc6\u5e93\uff0c\u4e0d\u540c `user_id` \u4e4b\u95f4\u8bb0\u5fc6\u9694\u79bb\u3002\n\n\u53c2\u8003\u6587\u6863\uff1a\n- SDK \u4f7f\u7528\u6587\u6863\uff1ahttps:\/\/help.aliyun.com\/zh\/model-studio\/mmi-rtos-sdk\n- WebSocket \u534f\u8bae\uff08user_id \u8bf4\u660e\uff09\uff1ahttps:\/\/help.aliyun.com\/zh\/model-studio\/multimodal-interaction-protocol\n\n---\n\n## \u4fee\u6539\u7684\u6587\u4ef6\u6e05\u5355\uff08\u5171 6 \u4e2a\u6587\u4ef6\uff09\n\n### 1. `projects\/common_components\/qwen_voice_chat\/Kconfig`\n\n**\u53d8\u66f4\u5185\u5bb9**\uff1a\u65b0\u589e `QWEN_USER_ID` \u914d\u7f6e\u9879\n\n```\nconfig QWEN_USER_ID\n    string \"Qwen User ID (for long-term memory)\"\n    default \"beken_genie_user_001\"\n    depends on QWEN_VOICE_CHAT\n    help\n        User ID for Alibaba Cloud multimodal interaction long-term memory feature.\n        Memory is isolated by user_id dimension within the same application.\n        Different user_id will have separate memory stores.\n        Max length is 36 characters.\n```\n\n**\u8bf4\u660e**\uff1a\n- \u9ed8\u8ba4\u503c\u4e3a `\"beken_genie_user_001\"`\uff0c\u6700\u5927\u957f\u5ea6 36 \u5b57\u7b26\n- \u53ef\u5728\u9879\u76ee config \u6587\u4ef6\u4e2d\u8986\u76d6\uff0c\u5982 `CONFIG_QWEN_USER_ID=\"my_custom_user\"`\n\n---\n\n### 2. `projects\/common_components\/qwen_voice_chat\/include\/qwen_voice_chat.h`\n\n**\u53d8\u66f4\u5185\u5bb9**\uff1a\u5728 `qwen_voice_chat_config_t` \u7ed3\u6784\u4f53\u4e2d\u65b0\u589e `user_id` \u5b57\u6bb5\n\n```c\ntypedef struct {\n    char *app_id;\n    char *ws_id;\n    char *api_key;\n    char *device_name;\n    char *user_id;          \/\/ \u65b0\u589e\uff1a\u7528\u6237ID\uff08\u7528\u4e8e\u957f\u671f\u8bb0\u5fc6\u529f\u80fd\uff0c\u6309user_id\u7ef4\u5ea6\u9694\u79bb\u8bb0\u5fc6\u5e93\uff0c\u6700\u592736\u5b57\u7b26\uff09\n    qwen_event_callback_t event_callback;\n} qwen_voice_chat_config_t;\n```\n\n---\n\n### 3. `projects\/common_components\/qwen_voice_chat\/src\/qwen_voice_chat.c`\n\n**\u53d8\u66f4\u5185\u5bb9**\uff1a\u5728 `qwen_voice_chat_init()` \u51fd\u6570\u4e2d\uff0c\u5c06 `user_id` \u8d4b\u503c\u7ed9 SDK \u7684 `g_mmi_config.user_id`\n\n```c\n\/\/ \u8bbe\u7f6e user_id \u7528\u4e8e\u957f\u671f\u8bb0\u5fc6\u529f\u80fd\uff08\u540c\u4e00\u5e94\u7528\u4e2d\u6309user_id\u7ef4\u5ea6\u751f\u6210\u8bb0\u5fc6\u5e93\uff0c\u4e0d\u540cuser_id\u4e4b\u95f4\u8bb0\u5fc6\u9694\u79bb\uff09\nif (config-&gt;user_id &amp;&amp; strlen(config-&gt;user_id) &gt; 0) {\n    g_mmi_config.user_id = config-&gt;user_id;\n    QWEN_LOGI(\"&#91;MEMORY] User ID set for long-term memory: %s\\n\", config-&gt;user_id);\n} else {\n    g_mmi_config.user_id = NULL;  \/\/ NULL\u65f6SDK\u9ed8\u8ba4\u4f7f\u7528device_name\n    QWEN_LOGI(\"&#91;MEMORY] User ID not set, will use device_name as default for memory\\n\");\n}\n```\n\n**\u8bf4\u660e**\uff1a\n- SDK \u7684 `mmi_user_config_t.user_id` \u5b57\u6bb5\u4f1a\u88ab\u5305\u542b\u5728 WebSocket Start \u6d88\u606f\u7684 `parameters.client_info.user_id` \u4e2d\u53d1\u9001\u7ed9\u4e91\u7aef\n- \u5f53 `user_id = NULL` \u65f6\uff0cSDK \u9ed8\u8ba4\u4f7f\u7528 `device_name` \u4f5c\u4e3a\u7528\u6237\u6807\u8bc6\n- `user_id` \u6307\u9488\u9700\u6307\u5411\u9759\u6001\u53d8\u91cf\u6216\u6301\u4e45\u5185\u5b58\uff08Kconfig \u5b57\u7b26\u4e32\u5e38\u91cf\u6ee1\u8db3\u8981\u6c42\uff09\n\n---\n\n### 4. `projects\/beken_genie\/main\/app_main.c`\n\n**\u53d8\u66f4\u5185\u5bb9**\uff1a\u5728 Qwen \u914d\u7f6e\u7ed3\u6784\u4f53\u521d\u59cb\u5316\u4e2d\u4f20\u5165 `CONFIG_QWEN_USER_ID`\n\n```c\nqwen_voice_chat_config_t qwen_config = {\n    .app_id = CONFIG_QWEN_APP_ID,\n    .ws_id = CONFIG_QWEN_WS_ID,\n    .api_key = CONFIG_QWEN_API_KEY,\n    .device_name = CONFIG_QWEN_DEVICE_NAME,\n    .user_id = CONFIG_QWEN_USER_ID,       \/\/ \u65b0\u589e\n    .event_callback = qwen_event_callback\n};\n```\n\n---\n\n### 5. `projects\/common_components\/qwen_voice_chat\/CMakeLists.txt`\n\n**\u53d8\u66f4\u5185\u5bb9**\uff1a\u65e0\u65b0\u589e\u4fee\u6539\uff08\u5df2\u56de\u6eda\uff0c\u89c1\u8e29\u5751 4\uff09\n\n---\n\n### ~~6. `projects\/beken_genie\/main\/CMakeLists.txt`~~\n\n**\u53d8\u66f4\u5185\u5bb9**\uff1a\u65e0\u65b0\u589e\u4fee\u6539\uff08\u5df2\u56de\u6eda\uff0c\u89c1\u8e29\u5751 4\uff09\n\n---\n\n## \u8e29\u5751\u70b9\u4e0e\u6ce8\u610f\u4e8b\u9879\n\n### \u8e29\u5751 1\uff1aRelease \u7248\u672c\u65e5\u5fd7\u88ab\u7f16\u8bd1\u79fb\u9664\uff08BK_LOGI \u5b8c\u5168\u9759\u9ed8\uff09\n\n**\u73b0\u8c61**\uff1a\u8bbe\u7f6e\u4e86 `user_id` \u5e76\u6dfb\u52a0\u4e86 `QWEN_LOGI` \u65e5\u5fd7\uff0c\u4f46\u4e32\u53e3\u5b8c\u5168\u770b\u4e0d\u5230\u4efb\u4f55\u8f93\u51fa\u3002\n\n**\u6839\u56e0**\uff1a  \nSDK \u662f Release \u7248\u672c\uff08`bk_avdk\/bk_idk\/properties\/modules\/wifi\/ip_ax` \u76ee\u5f55\u4e0d\u5b58\u5728\uff09\uff0c  \n\u6784\u5efa\u7cfb\u7edf\u5728 `bk_avdk\/bk_idk\/tools\/build_tools\/cmake\/build.cmake` \u4e2d\u5168\u5c40\u8bbe\u7f6e\u4e86\uff1a\n```cmake\nlist(APPEND compile_definitions \"-DCFG_LOG_LEVEL=2\")\n```\n`CFG_LOG_LEVEL=2` \u5bf9\u5e94 `BK_LOG_WARN`\uff0c\u5bfc\u81f4 `BK_LOGI`\uff08INFO \u7ea7\u522b=3\uff09\u5728**\u7f16\u8bd1\u65f6**\u5c31\u88ab\u5b8f\u5c55\u5f00\u4e3a\u7a7a\u64cd\u4f5c `(void)(format, ...)`\uff0c\u6839\u672c\u4e0d\u4f1a\u751f\u6210\u4efb\u4f55\u4ee3\u7801\u3002\n\n**\u89e3\u51b3**\uff1a\u5728\u9700\u8981\u65e5\u5fd7\u7684\u7ec4\u4ef6 CMakeLists.txt \u4e2d\u7528 `target_compile_definitions(PRIVATE)` \u5355\u72ec\u8986\u76d6\uff1a\n```cmake\ntarget_compile_definitions(${COMPONENT_LIB} PRIVATE CFG_LOG_LEVEL=3)\n```\n\u8fd9\u53ea\u5f71\u54cd\u8be5\u7ec4\u4ef6\uff0c\u4e0d\u5f71\u54cd\u5168\u5c40\u5176\u4ed6\u6a21\u5757\u3002\n\n**\u65e5\u5fd7\u7ea7\u522b\u5bf9\u7167**\uff1a\n| \u503c | \u5b8f\u540d | \u542b\u4e49 |\n|---|---|---|\n| 0 | BK_LOG_NONE | \u65e0\u65e5\u5fd7 |\n| 1 | BK_LOG_ERROR | \u4ec5\u9519\u8bef |\n| 2 | BK_LOG_WARN | \u8b66\u544a\uff08Release \u9ed8\u8ba4\uff09 |\n| 3 | BK_LOG_INFO | \u4fe1\u606f\uff08\u9700\u624b\u52a8\u8986\u76d6\uff09 |\n| 4 | BK_LOG_DEBUG | \u8c03\u8bd5 |\n| 5 | BK_LOG_VERBOSE | \u8be6\u7ec6 |\n\n---\n\n### \u8e29\u5751 2\uff1aRTOS \u4e32\u53e3\u65e5\u5fd7\u9700\u663e\u5f0f `\\n` \u624d\u80fd\u5237\u65b0\n\n**\u73b0\u8c61**\uff1a\u5373\u4f7f\u65e5\u5fd7\u7ea7\u522b\u6b63\u786e\uff0c\u90e8\u5206\u65e5\u5fd7\u4ecd\u53ef\u80fd\u770b\u4e0d\u5230\u6216\u4e0e\u5176\u4ed6\u65e5\u5fd7\u6df7\u5728\u4e00\u8d77\u3002\n\n**\u6839\u56e0**\uff1aBK7258 RTOS \u5e73\u53f0\u7684 `bk_printf_ext` \u65e5\u5fd7\u51fd\u6570\u4e0d\u4f1a\u81ea\u52a8\u8ffd\u52a0\u6362\u884c\u7b26\uff0c\u7f13\u51b2\u533a\u53ef\u80fd\u4e0d\u4f1a\u53ca\u65f6\u5237\u65b0\u5230\u4e32\u53e3\u3002\n\n**\u89e3\u51b3**\uff1a\u65e5\u5fd7\u683c\u5f0f\u5b57\u7b26\u4e32\u672b\u5c3e\u52a0 `\\n`\uff0c\u5e76\u5efa\u8bae\u52a0 `&#91;MEMORY]` \u7b49\u524d\u7f00\u4fbf\u4e8e\u641c\u7d22\uff1a\n```c\nos_printf(\"&#91;MEMORY] User ID set for long-term memory: %s\\r\\n\", config-&gt;user_id);\n```\n\n&gt; \u6ce8\u610f\uff1a\u8fd9\u91cc\u4f7f\u7528 `os_printf` \u76f4\u63a5\u8f93\u51fa\uff0c\u800c\u975e `QWEN_LOGW`\/`BK_LOGW`\uff0c\u56e0\u4e3a BK_LOG \u7cfb\u7edf\u6709\u8fd0\u884c\u65f6\u6a21\u5757\u6807\u7b7e\u8fc7\u6ee4\uff0c\u81ea\u5b9a\u4e49 tag \u4f1a\u88ab\u8fc7\u6ee4\u6389\uff0c\u8be6\u89c1\u8e29\u5751 5\u3002\n\n---\n\n### \u8e29\u5751 4\uff08\u539f\u8e29\u5751 3\uff09\uff1a\u4e0d\u80fd\u7528 target_compile_definitions \u8986\u76d6\u5168\u5c40 CFG_LOG_LEVEL\n\n**\u73b0\u8c61**\uff1a\u5728 CMakeLists.txt \u4e2d\u7528 `target_compile_definitions(${COMPONENT_LIB} PRIVATE CFG_LOG_LEVEL=3)` \u5c1d\u8bd5\u8986\u76d6\u65e5\u5fd7\u7ea7\u522b\uff0c\u7f16\u8bd1\u62a5\u9519\uff1a\n```\n&lt;command-line&gt;: error: \"CFG_LOG_LEVEL\" redefined &#91;-Werror]\n```\n\n**\u6839\u56e0**\uff1a  \nArmino \u6784\u5efa\u7cfb\u7edf\u4e2d\uff0c`build.cmake` \u5168\u5c40\u6dfb\u52a0\u7684 `-DCFG_LOG_LEVEL=2` \u6392\u5728\u547d\u4ee4\u884c\u540e\u90e8\uff0c  \n\u800c `target_compile_definitions(PRIVATE)` \u6dfb\u52a0\u7684 `-DCFG_LOG_LEVEL=3` \u6392\u5728\u547d\u4ee4\u884c\u524d\u90e8\u3002  \n\u4e24\u4e2a `-D` \u5b9a\u4e49\u540c\u4e00\u4e2a\u5b8f\uff0c\u5728 GCC `-Werror` \u4e0b\u5b8f\u91cd\u5b9a\u4e49\u8b66\u544a\u4f1a\u53d8\u6210\u7f16\u8bd1\u9519\u8bef\u3002  \n\u4e14\u6700\u7ec8\u751f\u6548\u7684\u662f\u540e\u51fa\u73b0\u7684\u5168\u5c40\u503c\uff082\uff09\uff0c\u5e76\u975e\u6211\u4eec\u60f3\u8981\u7684 3\u3002\n\n**\u89e3\u51b3**\uff1a\u653e\u5f03 CMake \u7ea7\u522b\u8986\u76d6\uff0c\u6539\u4e3a\u5728\u6e90\u4ee3\u7801\u4e2d\u5c06\u5173\u952e\u65e5\u5fd7\u7528 `BK_LOGW`\/`QWEN_LOGW`\uff08WARN \u7ea7\u522b=2\uff09\u4ee3\u66ff `BK_LOGI`\/`QWEN_LOGI`\uff08INFO \u7ea7\u522b=3\uff09\uff0c\u56e0\u4e3a Release \u7248\u672c `CFG_LOG_LEVEL=2` \u4e0d\u4f1a\u79fb\u9664 WARN \u7ea7\u522b\u65e5\u5fd7\u3002\n\n---\n\n### \u8e29\u5751 5\uff08\u539f\u8e29\u5751 4\uff09\uff1a\u8fd0\u884c\u65f6 log \u547d\u4ee4\u4e0e\u7f16\u8bd1\u65f6\u7ea7\u522b\u7684\u5173\u7cfb\n\n**\u6ce8\u610f**\uff1a\u4e32\u53e3 CLI \u547d\u4ee4 `log 1 4` \u53ea\u80fd\u5728\u7f16\u8bd1\u65f6\u7ea7\u522b\u5141\u8bb8\u7684\u8303\u56f4\u5185\u8c03\u6574\u3002  \n\u4f8b\u5982\u7f16\u8bd1\u65f6 `CFG_LOG_LEVEL=2`\uff0c\u90a3\u4e48 `BK_LOGI\/BK_LOGD` \u7684\u4ee3\u7801\u5df2\u88ab\u79fb\u9664\uff0c\u8fd0\u884c\u65f6\u8bbe `log 1 4` \u4e5f\u770b\u4e0d\u5230\u3002  \n\u5fc5\u987b\u5148\u786e\u4fdd\u7f16\u8bd1\u65f6\u7ea7\u522b &gt;= \u4f60\u60f3\u770b\u7684\u7ea7\u522b\u3002\n\nCLI \u547d\u4ee4\u683c\u5f0f\uff1a`log &#91;echo(0,1)] &#91;level(0~5)] &#91;sync(0,1)] &#91;Whitelist(0,1)]`\n\n---\n\n### \u8e29\u5751 6\uff1aBK_LOG \u8fd0\u884c\u65f6\u6a21\u5757\u6807\u7b7e\u8fc7\u6ee4\uff08\u81ea\u5b9a\u4e49 tag \u88ab\u8fc7\u6ee4\uff09\n\n**\u73b0\u8c61**\uff1a\u5c06\u5173\u952e\u65e5\u5fd7\u6539\u4e3a `QWEN_LOGW`\uff08WARN \u7ea7\u522b\uff09\u540e\uff0c\u4e32\u53e3\u4ecd\u7136\u770b\u4e0d\u5230\u4efb\u4f55 `QWEN_VOICE_CHAT` \u76f8\u5173\u8f93\u51fa\u3002\n\n**\u6839\u56e0**\uff1a  \nArmino \u65e5\u5fd7\u7cfb\u7edf\u9664\u4e86\u7f16\u8bd1\u65f6\u7ea7\u522b\u8fc7\u6ee4\uff0c\u8fd8\u6709**\u8fd0\u884c\u65f6\u6a21\u5757\u6807\u7b7e\u8fc7\u6ee4**\uff1a  \n`bk_printf_ext_internel()`\uff08\u6587\u4ef6 `bk_avdk\/bk_idk\/components\/bk_system\/printf.c`\uff09\u4e2d\uff1a\n```c\nif(tag != NULL) {\n    if(bk_mod_printf_disbled(tag) ^ whitelist_enabled)\n        return;  \/\/ \u6a21\u5757\u4e0d\u5728\u767d\u540d\u5355\/\u88ab\u7981\u7528 \u2192 \u76f4\u63a5\u8fd4\u56de\uff0c\u4e0d\u8f93\u51fa\n}\n```\n`\"QWEN_VOICE_CHAT\"` \u662f\u81ea\u5b9a\u4e49\u7684\u65b0 tag\uff0c\u4e0d\u5728\u7cfb\u7edf\u9ed8\u8ba4\u7684\u6a21\u5757\u767d\u540d\u5355\u4e2d\uff0c\u6240\u4ee5\u8fd0\u884c\u65f6\u88ab\u8fc7\u6ee4\u6389\u4e86\u3002  \n\u53ef\u4ee5\u4ece\u65e5\u5fd7\u89c2\u5bdf\u5230\uff1a`bt:E()`\u3001`cli:W()`\u3001`db-bd:W()` \u7b49\u7cfb\u7edf\u6a21\u5757\u80fd\u6b63\u5e38\u8f93\u51fa\uff0c\u4f46 `QWEN_VOICE_CHAT:W()` \u5b8c\u5168\u4e0d\u51fa\u73b0\u3002\n\n**\u89e3\u51b3**\uff1a\u5bf9\u5173\u952e\u8bca\u65ad\u65e5\u5fd7\u4f7f\u7528 `os_printf()`\uff08\u5373 `bk_printf`\uff09\u76f4\u63a5\u8f93\u51fa\uff0c\u7ed5\u8fc7 BK_LOG \u7684\u6240\u6709\u8fc7\u6ee4\u673a\u5236\uff1a\n```c\nos_printf(\"&#91;MEMORY] User ID set for long-term memory: %s\\r\\n\", config-&gt;user_id);\n```\n\n**BK_LOG \u65e5\u5fd7\u8f93\u51fa\u7684\u4e09\u5c42\u8fc7\u6ee4\u673a\u5236\u603b\u7ed3**\uff1a\n| \u5c42\u7ea7 | \u673a\u5236 | \u5f71\u54cd |\n|---|---|---|\n| 1. \u7f16\u8bd1\u65f6 | `CFG_LOG_LEVEL` \u5b8f\u6761\u4ef6\u7f16\u8bd1 | \u4f4e\u4e8e\u8bbe\u5b9a\u7ea7\u522b\u7684\u65e5\u5fd7\u5b8f\u88ab\u5c55\u5f00\u4e3a\u7a7a\u64cd\u4f5c |\n| 2. \u8fd0\u884c\u65f6\u7ea7\u522b | `shell_level_check_valid(level)` | \u8fd0\u884c\u65f6\u53ef\u8c03\u65e5\u5fd7\u7ea7\u522b\uff0c\u4f46\u53d7\u7f16\u8bd1\u65f6\u9650\u5236 |\n| 3. \u8fd0\u884c\u65f6\u6a21\u5757 | `bk_mod_printf_disbled(tag)` + \u767d\u540d\u5355 | **\u81ea\u5b9a\u4e49 tag \u53ef\u80fd\u88ab\u9ed8\u8ba4\u8fc7\u6ee4** |\n\n---\n\n### \u6ce8\u610f 1\uff1auser_id \u6307\u9488\u751f\u547d\u5468\u671f\n\nSDK \u8981\u6c42 `mmi_user_config_t.user_id` \u6307\u5411\u7684\u5185\u5b58\u5728 SDK \u8fd0\u884c\u671f\u95f4\u4fdd\u6301\u6709\u6548\uff1a\n&gt; \"\u4f20\u5165\u65f6\u9700\u8981\u4f7f\u7528\u9759\u6001\u53d8\u91cf\u6216\u7533\u8bf7\u5bf9\u5e94\u5185\u5b58\u7a7a\u95f4\uff0c\u9632\u6b62\u6307\u5411\u6570\u636e\u88ab\u9519\u8bef\u91ca\u653e\"\n\n\u5f53\u524d\u5b9e\u73b0\u4f7f\u7528 `CONFIG_QWEN_USER_ID`\uff08Kconfig \u7f16\u8bd1\u65f6\u5b57\u7b26\u4e32\u5e38\u91cf\uff09\uff0c\u5b58\u50a8\u5728\u53ea\u8bfb\u6bb5\uff0c\u751f\u547d\u5468\u671f\u4e0e\u7a0b\u5e8f\u4e00\u81f4\uff0c\u65e0\u9700\u989d\u5916\u5904\u7406\u3002\n\n---\n\n### \u6ce8\u610f 2\uff1a\u957f\u671f\u8bb0\u5fc6\u529f\u80fd\u9700\u4e91\u7aef\u540c\u6b65\u914d\u7f6e\n\n\u8bbe\u5907\u7aef\u8bbe\u7f6e `user_id` \u53ea\u662f\u542f\u7528\u7684\u4e00\u534a\uff0c\u8fd8\u9700\u5728**\u963f\u91cc\u4e91\u767e\u70bc\u63a7\u5236\u53f0**\u7684\u5e94\u7528\u914d\u7f6e\u4e2d\u5f00\u542f\u957f\u671f\u8bb0\u5fc6\u9009\u9879\u3002\u5982\u679c\u4e91\u7aef\u672a\u5f00\u542f\uff0c\u8bbe\u5907\u7aef\u5373\u4f7f\u4f20\u4e86 `user_id` \u4e5f\u4e0d\u4f1a\u6709\u8bb0\u5fc6\u6548\u679c\u3002\n\n---\n\n### \u6ce8\u610f 3\uff1aKconfig \u65b0\u589e\u9879\u9700\u91cd\u65b0\u7f16\u8bd1\u751f\u6548\n\n\u65b0\u589e `QWEN_USER_ID` \u540e\uff0c\u9700\u8981\u91cd\u65b0\u6784\u5efa\u9879\u76ee\u8ba9 Kconfig \u7cfb\u7edf\u91cd\u65b0\u751f\u6210 `sdkconfig.h`\uff0c  \n\u5426\u5219 `CONFIG_QWEN_USER_ID` \u5b8f\u4e0d\u5b58\u5728\u4f1a\u5bfc\u81f4\u7f16\u8bd1\u5931\u8d25\u3002\n\n---\n\n## \u9a8c\u8bc1\u65b9\u6cd5\n\n1. **\u7f16\u8bd1\u70e7\u5f55\u540e**\uff0c\u4e32\u53e3\u65e5\u5fd7\u641c\u7d22 `&#91;MEMORY]`\uff0c\u5e94\u770b\u5230\uff1a\n   ```\n   &#91;MEMORY] User ID set for long-term memory: beken_genie_user_001\n   ```\n   \uff08\u6ce8\u610f\uff1a\u4f7f\u7528 `os_printf` \u76f4\u63a5\u8f93\u51fa\uff0c\u65e0 tag \u524d\u7f00\uff09\n\n2. **\u5bf9\u8bdd\u6d4b\u8bd5**\uff1a\n   - \u7b2c\u4e00\u8f6e\u5bf9\u8bdd\uff1a\u544a\u8bc9 AI \u4e00\u4e2a\u4fe1\u606f\uff08\u5982\"\u6211\u53eb\u5c0f\u660e\"\uff09\n   - \u91cd\u542f\u8bbe\u5907\n   - \u7b2c\u4e8c\u8f6e\u5bf9\u8bdd\uff1a\u8be2\u95ee AI \u662f\u5426\u8bb0\u5f97\uff08\u5982\"\u4f60\u8fd8\u8bb0\u5f97\u6211\u53eb\u4ec0\u4e48\u5417\"\uff09\n   - \u5982\u679c AI \u80fd\u56de\u5fc6\u8d77\uff0c\u8bf4\u660e\u957f\u671f\u8bb0\u5fc6\u751f\u6548\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u529f\u80fd\u96c6\u6210\u540e\uff0c\u8fdb\u884c\u8f6f\u4ef6\u7f16\u8bd1\uff0c\u5e76\u70e7\u5f55\u8fdb\u786c\u4ef6\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u7ecf\u6d4b\u8bd5\uff0c\u53ef\u4ee5\u5b9e\u73b0\u957f\u671f\u8bb0\u5fc6\u529f\u80fd\uff08\u5df2\u70e7\u5f55\u5230\u786c\u4ef6\u4e0a\uff0c\u901a\u8fc7\u771f\u5b9e\u5bf9\u8bdd\u53ef\u4ee5\u5b9e\u73b0\uff0c\u6ca1\u6cd5\u622a\u56fe\uff0c\u8fd9\u91cc\u5c31\u4e0d\u63d0\u4f9b\u89c6\u9891\u4e86\uff09\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u6d4b\u8bd5Case\u5982\u4e0b\uff1a<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u7528\u6237\u8bf4\uff1a\u201c\u8bf7\u8bb0\u4f4f\u6211\u53ebXXX\u201d\uff1b<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u667a\u80fd\u4f53\u7b54\u590d\u540e\uff0c\u5173\u673a\u91cd\u65b0\u5f00\u673a\uff0cwebsocket\u91cd\u65b0\u5efa\u7acb\u8fde\u63a5\uff1b<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u7528\u6237\u95ee\uff1a\u201c\u6211\u53eb\u4ec0\u4e48\u540d\u5b57\uff1f\u201d\uff1b<br>\u667a\u80fd\u4f53\u4f1a\u56de\u7b54\uff1a\u201c\u6211\u5f53\u7136\u8bb0\u5f97\u4f60\u53ebXXX\u5566\uff0c\u2026\u2026\u201d<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"342_%E8%AE%B0%E5%BF%86%E7%B3%BB%E7%BB%9F%E5%90%91%E9%87%8F%E6%95%B0%E6%8D%AE%E5%BA%93%E5%AE%9E%E7%8E%B0\"><\/span>3.4.2 <strong>\u8bb0\u5fc6\u7cfb\u7edf\u5411\u91cf\u6570\u636e\u5e93\u5b9e\u73b0<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u672c\u8282\u5185\u5bb9\uff0c\u6211\u4eec\u5728\u81ea\u5efa\u94fe\u8def\u4e2d\uff0c\u6784\u5efa\u57fa\u4e8e Mem0 + \u963f\u91cc\u4e91 Milvus \u5411\u91cf\u6570\u636e\u5e93 \u7684\u957f\u671f\u8bb0\u5fc6\u7cfb\u7edf\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u6839\u636e\u8c03\u7814\u548c\u5927\u6a21\u578b\u6c9f\u901a\uff0c\u751f\u6210\u8bb0\u5fc6\u7cfb\u7edf\u90e8\u5206\u7684\u9700\u6c42\u6587\u6863\u5982\u4e0b\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>###  \u8bb0\u5fc6\u7cfb\u7edf\u670d\u52a1 (v2.0.0 \u65b0\u589e)\n\n- **\u6280\u672f\u6846\u67b6**: Mem0 + \u963f\u91cc\u4e91 Milvus \u5411\u91cf\u6570\u636e\u5e93\n- **\u6838\u5fc3\u529f\u80fd**:\n  - \u4e09\u5c42\u8bb0\u5fc6\u67b6\u6784\uff1along_term\uff08\u6c38\u4e45\uff09\/ daily\uff0830\u5929\u6eda\u52a8\uff09\/ conversation\uff08\u5185\u5b58\uff09\n  - \u8bed\u4e49\u68c0\u7d22\uff1a\u6839\u636e\u7528\u6237\u8f93\u5165\u81ea\u52a8\u68c0\u7d22\u76f8\u5173\u8bb0\u5fc6\n  - \u667a\u80fd\u5b58\u50a8\uff1a\u901a\u8fc7 LLM \u5224\u65ad\u5bf9\u8bdd\u662f\u5426\u5305\u542b\u503c\u5f97\u8bb0\u5fc6\u7684\u4fe1\u606f\n  - \u81ea\u52a8\u6ce8\u5165\uff1a\u5bf9\u8bdd\u524d\u5c06\u8bb0\u5fc6\u6ce8\u5165 LLM prompt\n  - \u5b9a\u65f6\u6e05\u7406\uff1a\u6bcf\u5929\u51cc\u6668\u6e05\u7406\u8fc7\u671f\u65e5\u8bb0\u5fc6\n  - \u7528\u6237\u9694\u79bb\uff1a\u57fa\u4e8e user_id \u5b8c\u5168\u9694\u79bb\u4e0d\u540c\u7528\u6237\u8bb0\u5fc6\n\n- **\u8bb0\u5fc6\u7c7b\u578b**:\n\n| \u7c7b\u578b | \u4fdd\u5b58\u65f6\u95f4 | \u5b58\u50a8\u4f4d\u7f6e | \u8bf4\u660e |\n|------|----------|----------|------|\n| long_term | \u6c38\u4e45 | Milvus | \u7528\u6237\u6863\u6848\u3001\u504f\u597d\u3001\u91cd\u8981\u4e8b\u4ef6 |\n| daily | 30\u5929 | Milvus | \u6bcf\u65e5\u60c5\u7eea\u8f68\u8ff9\u3001\u8bdd\u9898\u6458\u8981 |\n| conversation | \u4f1a\u8bdd\u671f\u95f4 | \u5185\u5b58 | \u5f53\u524d\u5bf9\u8bdd\u5386\u53f2\uff08LLMService\uff09 |\n\n- **\u8bb0\u5fc6\u5143\u6570\u636e\u7ed3\u6784**:\n```python\n{\n    \"type\": \"long_term\" | \"daily\",\n    \"category\": \"user_profile\" | \"important_event\" | \"emotion_timeline\",\n    \"emotion\": \"happy\" | \"sad\" | ...,\n    \"timestamp\": \"2026-02-22T14:30:00\",\n    \"date\": \"2026-02-22\",  # \u4ec5 daily \u7c7b\u578b\n    \"user_id\": \"user-001\"\n}\n```\n\n- **\u5173\u952e\u65b9\u6cd5**:\n  - `add_memory()`: \u6dfb\u52a0\u8bb0\u5fc6\u5230\u5411\u91cf\u6570\u636e\u5e93\n  - `search_memory()`: \u8bed\u4e49\u68c0\u7d22\u76f8\u5173\u8bb0\u5fc6\n  - `get_memory_context()`: \u83b7\u53d6\u8bb0\u5fc6\u4e0a\u4e0b\u6587\u7528\u4e8e LLM \u6ce8\u5165\n  - `analyze_and_save()`: \u667a\u80fd\u5224\u65ad\u5e76\u4fdd\u5b58\u8bb0\u5fc6\n  - `cleanup_expired_memories()`: \u6e05\u7406\u8fc7\u671f\u8bb0\u5fc6\n\n- **\u5de5\u4f5c\u6d41\u7a0b**:\n  1. \u7528\u6237\u53d1\u9001\u6d88\u606f\n  2. MemoryService \u68c0\u7d22\u76f8\u5173\u8bb0\u5fc6\uff08top-5\uff09\n  3. \u8bb0\u5fc6\u6ce8\u5165 LLM system prompt\n  4. LLM \u751f\u6210\u4e2a\u6027\u5316\u56de\u590d\n  5. \u901a\u8fc7 qwen-turbo \u5224\u65ad\u5bf9\u8bdd\u662f\u5426\u5305\u542b\u503c\u5f97\u8bb0\u5fc6\u7684\u5185\u5bb9\n  6. \u5982\u9700\u8981\uff0c\u63d0\u53d6\u5173\u952e\u4fe1\u606f\u5e76\u5b58\u50a5 Milvus\n\n- **\u964d\u7ea7\u7b56\u7565**:\n  - \u5982\u679c Milvus \u672a\u914d\u7f6e\u6216\u8fde\u63a5\u5931\u8d25\uff0c\u670d\u52a1\u81ea\u52a8\u8fdb\u5165\u964d\u7ea7\u6a21\u5f0f\n  - \u57fa\u7840\u529f\u80fd\uff08ASR\/LLM\/TTS\uff09\u7167\u5e38\u5de5\u4f5c\n  - \u8bb0\u5fc6\u529f\u80fd\u88ab\u7981\u7528\uff0c\u4e0d\u5f71\u54cd\u4e3b\u6d41\u7a0b\n\n---<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u7528Qoder\u8fdb\u884c\u4e0a\u8ff0\u9700\u6c42\u7684\u4ee3\u7801\u5b9e\u73b0\uff0c\u5b9e\u73b0\u540e\uff0c\u901a\u8fc7\u6307\u4ee4\u6253\u5305\u4e0a\u4f20\u5230\u767e\u70bc\u9ad8\u4ee3\u7801\u5e94\u7528\u4e2d\uff0c\u7528\u4e4b\u524d\u751f\u6210\u7684\u524d\u7aef\u9875\u9762\u786e\u8ba4\u529f\u80fd\u90fd\u53ef\u7528\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u6b64\u65f6\uff0c\u670d\u52a1\u7aef\u65e5\u5fd7\u4f1a\u770b\u5230\u5982\u4e0b\u62a5\u9519\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"964\" height=\"1024\" src=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-4-964x1024.png\" alt=\"\" class=\"wp-image-2234\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-4-964x1024.png 964w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-4-282x300.png 282w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-4-768x816.png 768w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-4.png 1152w\" sizes=\"auto, (max-width: 964px) 100vw, 964px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u56e0\u4e3a\u6b64\u65f6Milvus \u5411\u91cf\u6570\u636e\u5e93\u8fd8\u6ca1\u6709\u521b\u5efa\uff0c\u670d\u52a1\u81ea\u52a8\u964d\u7ea7\u4e3a\u65e0\u8bb0\u5fc6\u529f\u80fd\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e0b\u9762\u6211\u4eec\u521b\u5efaMilvus \u5411\u91cf\u6570\u636e\u5e93\uff0c\u6309\u4ee5\u4e0b\u6b65\u9aa4\u521b\u5efa:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">1. \u767b\u5f55\u963f\u91cc\u4e91\u63a7\u5236\u53f0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">2. \u641c\u7d22\u5e76\u8fdb\u5165 &#8220;Milvus\u5411\u91cf\u6570\u636e\u5e93&#8221; \u670d\u52a1<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">3. \u521b\u5efa\u5b9e\u4f8b\uff0c\u914d\u7f6e\u5982\u4e0b\u56fe\uff1a<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e0b\u56fe\u201c\u7f51\u7edc\u53ca\u53ef\u7528\u533a\u201d\u90e8\u5206\uff0c\u9700\u8981\u63d0\u524d\u521b\u5efa\u597d\u5317\u4eac\u5730\u57df\u7684VPC\u548c\u4ea4\u6362\u673a\uff0c\u8fd9\u91cc\u4e0d\u5c55\u5f00\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"720\" src=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-5-1024x720.png\" alt=\"\" class=\"wp-image-2236\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-5-1024x720.png 1024w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-5-300x211.png 300w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-5-768x540.png 768w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-5-1536x1080.png 1536w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-5.png 1944w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"720\" src=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-6-1024x720.png\" alt=\"\" class=\"wp-image-2237\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-6-1024x720.png 1024w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-6-300x211.png 300w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-6-768x540.png 768w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-6-1536x1080.png 1536w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-6.png 1944w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u521b\u5efa\u540e\uff0c\u6309\u7167\u4e0b\u56fe\u5f00\u542f\u516c\u7f51\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"324\" src=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-7-1024x324.png\" alt=\"\" class=\"wp-image-2239\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-7-1024x324.png 1024w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-7-300x95.png 300w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-7-768x243.png 768w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-7-1536x486.png 1536w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-7.png 1944w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">4. \u521b\u5efa\u5b8c\u6210\u540e,\u83b7\u53d6\u4ee5\u4e0b\u4fe1\u606f:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp; &nbsp;&#8211; Milvus \u7aef\u70b9\u5730\u5740 (MILVUS_HOST)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp; &nbsp;&#8211; \u7aef\u53e3 (\u9ed8\u8ba4 19530)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp; &nbsp;&#8211; \u8bbf\u95ee\u4ee4\u724c (MILVUS_TOKEN)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u8fd9\u91cc\u4e3a\u4e86\u4fdd\u8bc1FC\u8bbf\u95eeMilvus\u53ef\u4ee5\u8d70\u5185\u7f51\u8bbf\u95ee\uff0c\u6211\u4eec\u628a\u9ad8\u4ee3\u7801\u5e94\u7528\u4f7f\u7528\u7684FC\u6307\u5b9a\u5230\u548cMilvus\u76f8\u540c\u7684VPC\uff0c\u914d\u7f6e\u65b9\u6cd5\u5982\u4e0b\u56fe\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"722\" src=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-8-1024x722.png\" alt=\"\" class=\"wp-image-2241\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-8-1024x722.png 1024w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-8-300x211.png 300w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-8-768x541.png 768w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-8.png 1239w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"719\" src=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-9-1024x719.png\" alt=\"\" class=\"wp-image-2242\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-9-1024x719.png 1024w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-9-300x211.png 300w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-9-768x539.png 768w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-9-1536x1078.png 1536w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-9.png 1947w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"719\" src=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-10-1024x719.png\" alt=\"\" class=\"wp-image-2243\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-10-1024x719.png 1024w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-10-300x211.png 300w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-10-768x539.png 768w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-10-1536x1078.png 1536w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-10.png 1947w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u7136\u540e\u628aMilvus\u5982\u4e0b\u53c2\u6570\u52a0\u5165FC\u73af\u5883\u53d8\u91cf\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\"MILVUS_HOST\": \"XXXXX-internal.milvus.aliyuncs.com\",\n\"MILVUS_TOKEN\": \"root:XXXXX\n\"MILVUS_PORT\": \"19530\"<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u518d\u6b21\u8c03\u7528\u524d\u7aef\u6d4b\u8bd5\u9875\u9762\u8fdb\u884c\u5bf9\u8bdd\u6d4b\u8bd5\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u544a\u8bc9\u4ed6\u6211\u7684\u540d\u5b57\uff0c\u5982\u4e0b\u56fe\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"669\" src=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-15.png\" alt=\"\" class=\"wp-image-2252\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-15.png 1024w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-15-300x196.png 300w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-15-768x502.png 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">FC\u670d\u52a1\u7aef\u65e5\u5fd7\u5982\u4e0b\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"94\" src=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-13-1024x94.png\" alt=\"\" class=\"wp-image-2250\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-13-1024x94.png 1024w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-13-300x28.png 300w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-13-768x71.png 768w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-13.png 1238w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u7136\u540e\u65ad\u5f00websocket\uff0c\u91cd\u65b0\u8fde\u63a5\u540e\u8be2\u95ee\u6211\u7684\u540d\u5b57\uff0c\u5927\u6a21\u578b\u6b63\u786e\u56de\u590d\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"850\" src=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-14-1024x850.png\" alt=\"\" class=\"wp-image-2251\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-14-1024x850.png 1024w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-14-300x249.png 300w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-14-768x638.png 768w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-14-1536x1275.png 1536w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/image-14.png 1637w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"4_Demo%E6%BC%94%E7%A4%BA%E8%A7%86%E9%A2%91\"><\/span>4. <strong>Demo\u6f14\u793a\u89c6\u9891<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"41_%E5%89%8D%E7%AB%AF%E9%A1%B5%E9%9D%A2demo%E5%B1%95%E7%A4%BA\"><\/span>4.1 <strong>\u524d\u7aef\u9875\u9762demo\u5c55\u793a<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u901a\u8fc7\u524d\u7aef\u9875\u9762\u8fdb\u884c\u591a\u6a21\u6001\u4ea4\u4e92\uff0c\u5c55\u793a\u80fd\u529b\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u4eba\u8138\u8ffd\u8e2a\uff1b<\/li>\n\n\n\n<li>\u89c6\u89c9\u7406\u89e3\uff08\u53ef\u4ee5\u770b\u5230\u8863\u670d\u548c\u5468\u56f4\u73af\u5883\uff09\uff1b<\/li>\n\n\n\n<li>\u77e5\u8bc6\u5e93\uff08\u95ee\u65e5\u7a0b\u4f1a\u8c03\u7528\u77e5\u8bc6\u5e93\uff09\uff1b<\/li>\n\n\n\n<li>\u957f\u671f\u8bb0\u5fc6\uff08\u57fa\u4e8e\u4e4b\u524d\u7684\u5bf9\u8bdd\uff0c\u5728\u56de\u7b54\u4e2d\u4f53\u73b0\u6211\u6240\u5728\u7684\u57ce\u5e02\uff09\uff1b<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-video\"><video height=\"720\" style=\"aspect-ratio: 1280 \/ 720;\" width=\"1280\" controls src=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/\u6f14\u793a\u6548\u679cdemo\u89c6\u9891-2026\u5e7403\u670829\u65e5-\u524d\u7aef\u9875\u9762-\u8bb0\u5fc6\u77e5\u8bc6\u5e93\u89c6\u89c9\u7406\u89e3\u4eba\u8138\u8ffd\u8e2a.mp4\"><\/video><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"42_%E7%A1%AC%E4%BB%B6%E9%9B%86%E6%88%90demo%E5%B1%95%E7%A4%BA\"><\/span>4.2 <strong>\u786c\u4ef6\u96c6\u6210demo\u5c55\u793a<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u786c\u4ef6\u96c6\u6210\u7684\u95f2\u804a\u529f\u80fd\u5c55\u793aDemo1<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5c55\u793a\u80fd\u529b\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u8bed\u97f3\u5524\u9192\uff1b<\/li>\n\n\n\n<li>\u5b9e\u65f6\u6253\u65ad\uff1b<\/li>\n\n\n\n<li>\u5929\u6c14\u67e5\u8be2\u3001\u65b0\u95fb\u67e5\u8be2\uff1b<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-video\"><video height=\"720\" style=\"aspect-ratio: 1280 \/ 720;\" width=\"1280\" controls src=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/\u6f14\u793a\u6548\u679cdemo\u89c6\u9891-2026\u5e7402\u670820\u65e5.mp4\"><\/video><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u786c\u4ef6\u96c6\u6210\u7684\u95f2\u804a\u529f\u80fd\u5c55\u793aDemo2<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5c55\u793a\u80fd\u529b\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u8bed\u97f3\u5524\u9192\uff1b<\/li>\n\n\n\n<li>\u5b9e\u65f6\u6253\u65ad\uff1b<\/li>\n\n\n\n<li>\u77e5\u8bc6\u5e93\uff08\u95ee\u65e5\u7a0b\u4f1a\u8c03\u7528\u77e5\u8bc6\u5e93\uff09\uff1b<\/li>\n\n\n\n<li>\u957f\u671f\u8bb0\u5fc6\uff08\u77e5\u9053\u6211\u7684\u540d\u5b57\u3001\u751f\u65e5\uff09<\/li>\n\n\n\n<li>\u8054\u7f51\u67e5\u8be2\uff08\u77e5\u9053\u5f53\u524d\u65e5\u671f\uff09\uff1b<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-video\"><video height=\"720\" style=\"aspect-ratio: 1280 \/ 720;\" width=\"1280\" controls src=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/\u6f14\u793a\u6548\u679cdemo\u89c6\u9891-2026\u5e7403\u670829\u65e5-\u591a\u6a21\u6001\u5f00\u53d1\u5957\u4ef6-\u8bb0\u5fc6\u77e5\u8bc6\u5e93\u8054\u7f51\u641c\u7d22\u80fd\u529b.mp4\"><\/video><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"43_AI%E7%94%9F%E6%88%90%E4%BA%A7%E5%93%81%E5%AE%A3%E4%BC%A0%E8%A7%86%E9%A2%91\"><\/span>4.3 AI\u751f\u6210\u4ea7\u54c1\u5ba3\u4f20\u89c6\u9891<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u57fa\u4e8e\u963f\u91cc\u7684\u751f\u56fe\u751f\u89c6\u9891\u6a21\u578b\u3001TTS\u6a21\u578b\uff0c\u751f\u6210\u4ea7\u54c1\u5ba3\u4f20\u89c6\u9891\u5982\u4e0b\u3002<\/p>\n\n\n\n<figure class=\"wp-block-video\"><video height=\"1080\" style=\"aspect-ratio: 1920 \/ 1080;\" width=\"1920\" controls src=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2026\/03\/bk7258-promo-v2.mp4\"><\/video><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"5_%E6%80%BB%E7%BB%93%E4%B8%8E%E5%90%8E%E7%BB%AD%E8%AE%A1%E5%88%92\"><\/span>5. <strong>\u603b\u7ed3\u4e0e\u540e\u7eed\u8ba1\u5212<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"51_%E6%80%BB%E7%BB%93\"><\/span>5.1 <strong>\u603b\u7ed3<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u672c\u9879\u76ee\u505a\u4e86\u5982\u4e0b\u5de5\u4f5c\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u901a\u8fc7\u4e24\u5957\u65b9\u6848\u5b9e\u73b0\u4e86\u591a\u6a21\u6001\u4ea4\u4e92\n<ul class=\"wp-block-list\">\n<li>\u57fa\u4e8e\u767e\u70bc\u6210\u719f\u7684\u591a\u6a21\u6001\u4ea4\u4e92\u5f00\u53d1\u5957\u4ef6SDK\uff0c\u5b9e\u73b0\uff1a\n<ul class=\"wp-block-list\">\n<li>\u5b9e\u65f6\u5168\u53cc\u5de5\u8bed\u97f3\u4ea4\u4e92\uff1b<\/li>\n\n\n\n<li>\u652f\u6301\u968f\u65f6\u6253\u65ad\uff1b<\/li>\n\n\n\n<li>\u53ef\u8c03\u7528\u77e5\u8bc6\u5e93\uff1b<\/li>\n\n\n\n<li>\u53ef\u4e00\u952e\u96c6\u6210\u5929\u6c14\u67e5\u8be2\u3001\u65b0\u95fb\u8d44\u8baf\u7b49\u529f\u80fd\uff1b<\/li>\n\n\n\n<li>\u652f\u6301\u8054\u7f51\u641c\u7d22\uff1b<\/li>\n\n\n\n<li>\u652f\u6301\u5f00\u542f\u957f\u671f\u8bb0\u5fc6\uff1b<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u57fa\u4e8e\u767e\u70bc\u7684ASR+VLM+TTS\u6a21\u578b\uff0c\u642d\u5efa\u5b8c\u6574\u7684\u8bed\u97f3\u4ea4\u4e92\u94fe\u8def\uff0c\u5b9e\u73b0\uff1a\n<ul class=\"wp-block-list\">\n<li>\u57fa\u4e8eVL\u6a21\u578b\u7684\u4eba\u8138\u8ffd\u8e2a\uff08\u7ed9\u51fa\u4eba\u8138\u5750\u6807\u5e76\u5728\u524d\u7aef\u9875\u9762\u5c55\u793a\u7ea2\u70b9\u5b9a\u4f4d\uff09\uff1b<\/li>\n\n\n\n<li>\u57fa\u4e8eVL\u6a21\u578b\u5b9e\u73b0\u5bf9\u8bdd\u73af\u5883\u7684\u7406\u89e3\uff1b<\/li>\n\n\n\n<li>\u5b9e\u65f6\u5168\u53cc\u5de5\u8bed\u97f3\u4ea4\u4e92\uff1b<\/li>\n\n\n\n<li>\u652f\u6301\u968f\u65f6\u6253\u65ad\uff1b<\/li>\n\n\n\n<li>\u53ef\u8c03\u7528\u77e5\u8bc6\u5e93\uff1b<\/li>\n\n\n\n<li>\u53ef\u96c6\u6210\u767e\u70bc\u667a\u80fd\u4f53MCP\uff1b<\/li>\n\n\n\n<li>\u652f\u6301\u8054\u7f51\u641c\u7d22\uff1b<\/li>\n\n\n\n<li>\u901a\u8fc7\u5411\u91cf\u6570\u636e\u5e93\u6784\u5efa\u957f\u671f\u8bb0\u5fc6\uff1b<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u628a\u57fa\u4e8e\u767e\u70bc\u7684ASR+VLM+TTS\u6a21\u578b\u642d\u5efa\u7684\u5b8c\u6574\u670d\u52a1\uff0c\u90e8\u7f72\u5230\u767e\u70bc\u9ad8\u4ee3\u7801\u5e94\u7528\uff08\u80cc\u540e\u662f\u963f\u91cc\u4e91\u51fd\u6570\u8ba1\u7b97FC\u63d0\u4f9b\u7684Serverless\u670d\u52a1\uff09\uff1b<\/li>\n\n\n\n<li>\u6784\u5efa\u4e86\u4e00\u4e2a\u524d\u7aef\u9875\u9762\uff0c\u7528\u6765\u901a\u8fc7Websocket\u957f\u8fde\u63a5\u63a5\u5165\u81ea\u5efa\u7684\u9ad8\u4ee3\u7801Serverless\u670d\u52a1\uff0c\u9a8c\u8bc1\u53ef\u7528\u6027\u548c\u6548\u679c\uff1b<\/li>\n\n\n\n<li>\u57fa\u4e8e\u535a\u901a\uff08Beken\uff09BK7258 AI\u5f00\u53d1\u677f\uff0c\u4f7f\u7528 Armino AIDK SDK\u5f00\u53d1\u6846\u67b6\uff0c\u5bf9\u5b98\u65b9 <code>beken_genie<\/code> \u9879\u76ee\u8fdb\u884c\u529f\u80fd\u5b9a\u5236\u5f00\u53d1\uff0c\u628a\u591a\u6a21\u6001\u4ea4\u4e92\u5f00\u53d1\u5957\u4ef6SDK\u548c\u57fa\u4e8e\u767e\u70bc\u7684ASR+VLM+TTS\u6a21\u578b\u670d\u52a1\uff0c\u8fdb\u884c\u8f6f\u4ef6\u7f16\u8bd1\uff0c\u5e76\u70e7\u5f55\u5230\u786c\u4ef6\u4e2d\uff0c\u5b9e\u73b0\u4e86\u901a\u8fc7\u7269\u7406\u8bbe\u5907\u8fdb\u884c\u5b9e\u65f6\u4ea4\u4e92\u3002<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u672c\u6587\u5927\u90e8\u5206\u4ee3\u7801\u5b9e\u73b0\u90fd\u662f\u901a\u8fc7Qoder\u5b8c\u6210\uff0c\u6ca1\u6709AI\u7f16\u7801\u7684\u5e2e\u52a9\uff0c\u6211\u4e00\u4e2a\u4eba\u5f88\u96be\u77ed\u65f6\u95f4\u5b8c\u6210\u8fd9\u4e48\u591a\u5de5\u4f5c\u3002\u611f\u8c22Qoder\u8ba9\u6211\u7b2c\u4e00\u6b21\u5b8c\u6210\u786c\u4ef6\u5d4c\u5165\u5f0f\u5f00\u53d1\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"52_%E5%90%8E%E7%BB%AD%E8%AE%A1%E5%88%92\"><\/span>5.2 <strong>\u540e\u7eed\u8ba1\u5212<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u672c\u6b21\u63a2\u7d22\u4e5f\u9047\u5230\u4e86\u5f88\u591a\u5c1a\u672a\u5b8c\u5168\u89e3\u51b3\uff0c\u6216\u8005\u6709\u5f88\u5927\u4f18\u5316\u7a7a\u95f4\u7684\u5730\u65b9\uff0c\u6bd4\u5982\uff1a\u786c\u4ef6\u96c6\u6210\u540e\u5bf9\u8bdd\u5ef6\u65f6\u7684\u4f18\u5316\uff0c\u786c\u4ef6TTS\u8bed\u97f3\u64ad\u653e\u7684\u6742\u97f3\u3002\u8fd9\u4e9b\u5185\u5bb9\uff0c\u662f\u9700\u8981\u540e\u7eed\u6301\u7eed\u4f18\u5316\u7684\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u540e\u7eed\u6709\u673a\u4f1a\uff0c\u6211\u8fd8\u60f3\u5c1d\u8bd5\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u5176\u4ed6\u786c\u4ef6\u7684\u96c6\u6210\uff0c\u7d2f\u8ba1\u66f4\u591a\u7684\u786c\u4ef6\u96c6\u6210\u7ecf\u9a8c\uff1b<\/li>\n\n\n\n<li>\u63a2\u7d22\u66f4\u591a\u7684\u6a21\u578b\u8c03\u7528\u573a\u666f\uff1b<\/li>\n\n\n\n<li>\u63a2\u7d22\u786c\u4ef6\u96c6\u6210OpenClaw\uff1b<\/li>\n\n\n\n<li>\u63a2\u7d22\u786c\u4ef6\u90e8\u7f72\u7aef\u4fa7\u5c0f\u6a21\u578b\u89e3\u51b3\u7279\u5b9a\u573a\u666f\u95ee\u9898\uff08YOLO\u89c6\u89c9\u6a21\u578b\u3001ASR\u7aef\u4fa7\u6a21\u578b\uff09\uff1b<\/li>\n\n\n\n<li>\u63a2\u7d22\u58f0\u7eb9\u8bc6\u522b\u3001\u8bed\u97f3\u964d\u566a\u529f\u80fd\u3002<\/li>\n<\/ul>\n\n","protected":false},"excerpt":{"rendered":"<p>1. \u80cc\u666f\u4e0e\u4ef7\u503c \u76ee\u524d\u667a\u80fd\u786c\u4ef6\u884c\u4e1a\u666e\u904d\u90fd\u5728\u5173\u6ce8AI\u73a9\u5177\/AI\u60c5\u611f\u966a\u4f34\u673a\u5668\u4eba\u3002 \u4ece\u5ba2\u6237\u89d2\u5ea6\uff0c\u5f88\u591a\u5ba2\u6237\u90fd\u5173\u5fc3\u6574\u5957\u94fe [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,8],"tags":[],"class_list":["post-2193","post","type-post","status-publish","format-standard","hentry","category-2","category-8"],"_links":{"self":[{"href":"https:\/\/yushuoxin.top\/index.php\/wp-json\/wp\/v2\/posts\/2193","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/yushuoxin.top\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/yushuoxin.top\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/yushuoxin.top\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/yushuoxin.top\/index.php\/wp-json\/wp\/v2\/comments?post=2193"}],"version-history":[{"count":78,"href":"https:\/\/yushuoxin.top\/index.php\/wp-json\/wp\/v2\/posts\/2193\/revisions"}],"predecessor-version":[{"id":2405,"href":"https:\/\/yushuoxin.top\/index.php\/wp-json\/wp\/v2\/posts\/2193\/revisions\/2405"}],"wp:attachment":[{"href":"https:\/\/yushuoxin.top\/index.php\/wp-json\/wp\/v2\/media?parent=2193"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/yushuoxin.top\/index.php\/wp-json\/wp\/v2\/categories?post=2193"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/yushuoxin.top\/index.php\/wp-json\/wp\/v2\/tags?post=2193"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}