【WEB前端2024】3D智體編程:喬布斯3D紀念館-第53課-語音指令跳舞

【WEB前端2024】3D智體編程:喬布斯3D紀念館-第53課-語音指令跳舞

使用dtns.network德塔世界(開源的智體世界引擎),策劃和設計《喬布斯超大型的開源3D紀念館》的系列教程。dtns.network是一款主要由JavaScript編寫的智體世界引擎(內嵌了three.js編輯器的定制版-支持以第一視角游覽3D場館),可以在瀏覽器和node.js、deno、electron上運行,它是一個跨平臺的軟件,支持多個操作系統使用!并且支持使用內置的poplang智體編程語言實現3D組件的智能化編程——語法超簡單,一句話語法,人人輕松上手!

下面分為幾步介紹,如何基于dtns.network智體世界引擎實現語音指令機器人跳舞。通過將現代的瀏覽器打造成接收語音指令的agent,將語音翻譯成中文指令傳遞給3d輕應用,以便3D輕應用執行跳舞指令。從而實現了復雜的語音指令控制機器人的目標——更接近真實的場景對機器人的語音控制,后續拓展可以根據大語言模型,實時語音指令機器人實現包含跳舞的任意功能。從而將行者機器人底盤打造成真正具備場景應用能力的強大機器人底盤平臺。

為了實現機器人的語音指令編程,通過瀏覽器使用artyom.js庫實現語音識別并通過dtns-api的實時頻道通知到3d輕應用中(onRobotEvent接收實時頻道傳遞過來的消費)。從而根據指令判斷是否是跳舞、還是執行旋風舞步。亦或是執行其它的機器人實時動作。

第一步:打開頭榜頁面,找到3D紀念館xverse輕應用

1.png

注:找到標題為“機器人控制-接收語音指令-跳舞”的xverse輕應用。

第二步:點擊右上角…進入頭榜編輯器

2.png

注:因為每一個xverse輕應用均是以xverse.json的方式進行源碼級應用的分享的。故每一個社區用戶均可通過編輯xverse輕應用源碼來實現DIY和定制。

第三步:點擊正面的“編輯xverse輕應用源碼”,進入3D場館編輯器

3.png

注:點擊3D場景中間的avatar的3D對象,在右側的屬性面板中找到腳本-編輯。

第四步:編輯墻體avatar玩家3D組件的poplang代碼

4.png

注:首先使用了ib3.event.bus.on rtrobot-channel onRobotEvent實現了實時語音指令的接收(在onRobotEvent中完成了語音指令的判斷,是dance跳舞還是dance_xf,亦或是其它機器人動作指令)。在使用該訂閱事件總線指令之前,使用dtns-api:/rtchannel/create和/rtchannel/focus完成rtrobot-channel機器人實時信號頻道的創建和訂閱。并在3d_stop的3D輕應用退出事件中,進行unfocus和ib3.event.bus.remove刪除事件訂閱(避免退出后依然接收實時數據,浪費內存和cpu資源)。

第五步:點擊頂部菜單“文件”推送頭榜(作品),將此3D紀念館以xverse輕應用方式分享給其他用戶

5.png

第六步:將新的頭榜標題設置為“機器人控制–接收語音指令-跳舞(2個舞步)”,點擊右上角確認完成頭榜發布

6.png

注:標題為xmsg,不能誤刪除“”雙引號,否則會發布失敗——僅修改xmsg屬性的文字內容即可。

第七步:找到剛發布的xverse輕應用頭榜,點擊進入3D場景游覽器

7.png

注:輕輕一點擊,即可進入體驗剛發布好的xverse-3D輕應用(智體應用),我們相當于可以無限地分享和裂變這個開源的3D輕應用(智體應用)。這樣大家便可以按自己的需求,輕松的修改和定制這些動畫的源碼模板了。可以形成自己的故事、自己的動畫、自己的3D場館、自己的3D互動劇情等等。隨心所欲地發揮,所以智體世界、智體OS也相當于【元宇宙】【開放世界】!

第八步:進入3D輕應用后,我們首先開始與機器人實現視頻的實時連接(然后通過打開的audio_cmd.html進行實時的語音識別控制——agent)

8.png

下發語音指令:跳舞或旋風舞步(如下圖所示),會發現機器人正在執行相應的舞步指令。

9.png

繼續執行舞步指令(如下圖)

10.png

我們回顧一下audio_cmd.html的代碼

11.png

注:從上圖可看到,有跳舞和旋風舞步的兩個中文語音指令,通過調用dtns-api:dtns://web3:svrdev/rtchanne/send實現了對指令的實時派發。從而在3d輕應用中接收到指令之后,再執行相應的舞步指令。

通過上8步,我們成功完成了通過3D輕應用中實現了跳舞的語音指令控制,這大大增強了在真實場景下的復雜機器人控制功能。并有機會結合AGI通用人工智能和大語言模型,實現復雜多樣的真實場景的人與機器人的配合工作。從而為人類增加上強大的智體agent助手!

我們也看到了poplang智體編程語言的強大能量,一兩行簡單的指令,即可完成復雜的3D互動的交互效果、音效效果的開發。并且通過xverse-json源文件(3D輕應用)的方式進行社區分享,使得開源開放、公開透明的3D場館的設計,能被大家更多的學習和繼承,達到互動學習、互動成長的目的。這也是智體OS、智體互動式教育-學習的目標。

注:dtns.network德塔世界(開源的智體世界引擎)是在github和gitee上開源的項目!

附錄(poplang智體代碼——實現語音指令機器人跳舞):


pop.func.define 3d_move= event 3d_move_eventobject.get event.turn turnobject.get event.forward forward$.Math.abs turn= aturn $ret$.Math.abs forward= aforward $ret< aforward aturn turnflagpop.ifelse turnflag turnNow goNowpop.func.endpop.func.define turnNowset z 0> turn z leftFlagpop.ifelse leftFlag left rightpop.func.endpop.func.define goNowset z 0> forward z goFlagpop.ifelse goFlag move backpop.func.endpop.func.define left/rtphone/robot/action?action=leftset tips 左轉#$.g_2d_voice_play tipspop.func.endpop.func.define right/rtphone/robot/action?action=rightset tips 右轉#$.g_2d_voice_play tipspop.func.endpop.func.define move/rtphone/robot/action?action=moveset tips 前進#$.g_2d_voice_play tipspop.func.endpop.func.define back/rtphone/robot/action?action=backset tips 后退#$.g_2d_voice_play tipspop.func.endset chatid msg_chat02G7TLu59Tzs$.g_3d_show_rtcchat chatid#訂閱capture事件pop.func.define onEvent= data $event_dataobject.get data.base64 base64$.g_2d_pose_find base64= cret $retobject.get cret.w wobject.get cret.h hobject.get cret.pose.keypoints pointsobject.get cret.pose.score scoreset i 0+ i i iset iw 9+ iw i iwarray.get points i nosearray.get points iw leftWristset leftr 0.33set rightr 0.66set scoreMin 0.2* w leftr leftw* w rightr rightw* h leftr tophobject.get nose.position.x npxobject.get nose.position.y npyobject.get leftWrist.position.y wpyobject.get leftWrist.score ws< wpy npy backok< npx leftw leftok> npx rightw rightok< npy h moveok> score scoreMin sok> ws scoreMin wsok&& backok wsok backok! backok notbackpop.ifelse backok back&& sok notback sok&& leftok sok leftok&& rightok sok rightok&& moveok sok moveokpop.ifelse leftok right donothingpop.ifelse rightok left donothing|| leftok rightok turnok! turnok notturn&& notturn moveok moveok&& moveok sok moveokpop.ifelse moveok move donothingpop.func.endib3.event.bus.on rtcchat_capture onEvent$.g_2d_rtcchat_capture_startpop.func.define 3d_stopib3.event.bus.remove rtcchat_capture$.g_2d_rtcchat_capture_stop#機器人頻道/rtchannel/unfocus?channel=rtrobot-channelib3.event.bus.remove rtrobot-channelpop.func.end/rtchannel/create?channel=rtrobot-channel/rtchannel/focus?channel=rtrobot-channelpop.func.define onRobotEvent= data $event_dataobject.get data.notify_type notify_typeset xtype dance== notify_type xtype xflagpop.ifelse xflag dance doNoset xtype dance_xf== notify_type xtype xflagpop.ifelse xflag dance_xf doNopop.func.endib3.event.bus.on rtrobot-channel onRobotEventpop.func.define danceset step 500movepop.sleep stepmovepop.sleep stepbackpop.sleep stepbackpop.sleep stepleftpop.sleep stepleftpop.sleep steprightpop.sleep steprightpop.sleep steprightpop.sleep steprightpop.sleep stepleftpop.sleep stepleftpop.sleep stepmovepop.sleep stepleftpop.sleep stepleftpop.sleep stepleftpop.sleep stepleftpop.sleep stepleftpop.sleep stepleftpop.sleep stepleftpop.sleep stepleftpop.sleep stepleftpop.sleep stepleftpop.sleep stepleftpop.sleep stepleftpop.sleep stepleftpop.sleep stepleftpop.sleep stepleftpop.sleep stepleftpop.sleep stepleftpop.sleep stepleftpop.sleep stepleftpop.sleep stepleftpop.sleep stepleftpop.sleep stepleftpop.sleep stepleftpop.sleep stepleftpop.sleep stepleftpop.sleep stepleftpop.sleep stepleftpop.sleep stepleftpop.sleep stepleftpop.sleep stepleftpop.sleep stepleftpop.sleep stepleftpop.sleep stepleftpop.sleep stepleftpop.sleep stepleftpop.sleep stepleftpop.sleep stepleftpop.sleep stepleftpop.sleep stepleftpop.sleep stepleftpop.sleep stepleftpop.sleep stepleftpop.sleep stepleftpop.sleep stepleftpop.sleep stepleftpop.sleep stepleftpop.sleep stepleftpop.sleep stepleftpop.sleep stepleftpop.sleep stepleftpop.sleep stepleftpop.sleep stepleftpop.sleep stepleftpop.sleep stepleftpop.sleep stepleftpop.sleep stepleftpop.sleep stepleftpop.sleep stepleftpop.sleep stepleftpop.sleep stepleftpop.sleep steprightpop.sleep steprightpop.sleep steprightpop.sleep steprightpop.sleep steprightpop.sleep steprightpop.sleep steprightpop.sleep stepleftpop.sleep stepmovepop.sleep stepmovepop.sleep stepbackpop.func.endpop.func.define dance_xfset stepmovepop.sleep stepmovepop.sleep stepbackpop.sleep stepbackpop.sleep stepleftpop.sleep stepleftpop.sleep steprightpop.sleep steprightpop.sleep steprightpop.sleep steprightpop.sleep stepleftpop.sleep stepleftpop.sleep stepmovepop.sleep stepleftpop.sleep stepleftpop.sleep stepleftpop.sleep stepleftpop.sleep stepleftpop.sleep stepleftpop.sleep steprightpop.sleep steprightpop.sleep steprightpop.sleep steprightpop.sleep steprightpop.sleep steprightpop.sleep steprightpop.sleep stepleftpop.sleep stepmovepop.sleep stepmovepop.sleep stepbackpop.func.end

poplang的人臉識別并認主的控制代碼到此結束!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/39745.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/39745.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/39745.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

可信計算的完整專用名詞列表

可信計算的完整專用名詞列表 Trusted Computing - 可信計算Trusted Platform Module (TPM) - 可信平臺模塊Hardware Root of Trust - 硬件根信任Secure Boot - 安全啟動Remote Attestation - 遠程證明Integrity Measurement - 完整性度量Measurement Log - 度量日志Attestatio…

Android 圖像效果的奧秘

在當今數字化時代&#xff0c;圖像已經成為人們生活和工作中不可或缺的一部分。而在 Android 系統中&#xff0c;圖像效果的應用更是豐富多彩&#xff0c;為用戶帶來了更加出色的視覺體驗。本文將深入探討 Android 圖像效果的原理、實現方法以及應用場景&#xff0c;幫助讀者更…

面試題springboot面試

文章目錄 Spring的依賴注入構造器注入stetter注入屬性注入 springboot的優勢第一開箱即用約定大于配置內嵌tomcat服務器 javaweb的三大組件springboot的自動配置原理SpringIoc的實現機制springmvcspring如何簡化開發 Spring的依賴注入 構造器注入 stetter注入 屬性注入 使用…

按位異或^

在 Python 中&#xff0c;a ^ b 表示按位異或運算符。按位異或運算符對整數的每一位進行運算&#xff0c;如果對應位上的兩個二進制數字不同&#xff0c;則結果為 1&#xff0c;否則為 0。 示例 a 5 # 二進制: 0101 b 3 # 二進制: 0011result a ^ b print(result) # 輸…

私域流量:塑造企業數字營銷的未來

在當今數字化的時代&#xff0c;流量成為了商業世界中的新貨幣&#xff0c;而“私域流量”更是其中的黃金。但“私域流量”究竟是什么&#xff1f;它如何成為企業數字化轉型和營銷策略中不可或缺的一部分&#xff1f;本文將探討私域流量的概念&#xff0c;并通過案例分析其運營…

前端進階:Vue.js

目錄 框架&#xff1a; 助解&#xff1a; 框架&#xff1a; VUE 什么是Vue.js? Vue.js優點 Vue安裝 方式一&#xff1a;直接用<script>引入 方式二&#xff1a;命令行工具 第一個Vue程序 代碼 代碼解釋&#xff1a; 運行 Vue指令 v-text v-html v-tex…

Mysql和ES使用匯總

一、mysql和ES在業務上的配合使用 一般使用時使用ES 中存儲全文檢索的關鍵字與獲取的商品詳情的id&#xff0c;通過ES查詢獲取查詢商品的列表中展示的數據&#xff0c;通過展示id 操作去獲取展示商品的所有信息。mysql根據id去查詢數據庫數據是很快的&#xff1b; 為什么ES一般…

JavaScript如何聲明json對象

在JavaScript中&#xff0c;JSON&#xff08;JavaScript Object Notation&#xff09;對象實際上是以JavaScript對象的形式表示的。JSON是一種輕量級的數據交換格式&#xff0c;它基于ECMAScript&#xff08;歐洲計算機協會制定的js規范&#xff09;的一個子集&#xff0c;采用…

10 - Python文件編程和異常

文件和異常 在實際開發中&#xff0c;常常需要對程序中的數據進行持久化操作&#xff0c;而實現數據持久化最直接簡單的方式就是將數據保存到文件中。說到“文件”這個詞&#xff0c;可能需要先科普一下關于文件系統的知識&#xff0c;對于這個概念&#xff0c;維基百科上給出…

【CSharp】在class中申明public const int常量的應用

【CSharp】在class中申明public const int常量的應用 1.背景2.代碼3.運行1.背景 常量本身是靜態的,即常量屬于class本身與其實例化對象無關,且常量不可更改。 以上兩種特性在許多應用場景中都有其優勢和應用場合。 1.在定義定義固定值的場景,例如狀態碼、事件類型、配置參…

亞馬遜云科技AWS免費大熱AI應用開發證書(含題庫、開卷)

亞馬遜云科技AWS官方生成式AI免費證書來了&#xff01;內含免費AI基礎課程&#xff01;快速掌握AWS的前沿AI技術&#xff0c;后端開發程序員也可以速成AI專家&#xff0c;了解當下最&#x1f525;的AWS AI架構解決方案&#xff01; 本證書內容包括AWS上的AI基礎知識&#xff0c…

解析Kotlin中的Unit【筆記摘要】

1. Kotlin的Unit 和 Java的void 的區別 // Java public void sayHello() {System.out.println("Hello!") }// Kotlin fun sayHello(): Unit {println("Hello!") }Unit 和 Java 的 void 真正的區別在于&#xff0c;void 是真的表示什么都不返回&#xff0c…

剖析DeFi交易產品之UniswapV4:Swap

文章首發于公眾號&#xff1a;Keegan小鋼 Swap 可分為兩種場景&#xff1a;單池交易和跨池交易。在 PoolManager 合約里&#xff0c;要完成交易流程&#xff0c;會涉及到 lock()、swap()、settle()、take() 四個函數。單池交易時只需要調一次 swap() 函數&#xff0c;而跨池交易…

【面向就業的Linux基礎】從入門到熟練,探索Linux的秘密(七)-shell語法(5)

shell語法的一些知識和練習&#xff0c;可以當作筆記收藏一下&#xff01;&#xff01; 文章目錄 前言 一、shell 二、shell語法 1.文件重定向 2.引入外部腳本 3.作業 總結 前言 shell語法的一些知識和練習&#xff0c;可以當作筆記收藏一下&#xff01;&#xff01; 提示&…

七種大模型微調方法:讓你的Offer拿到爽

在當今的人工智能和機器學習領域&#xff0c;大型預訓練模型&#xff08;如GPT、BERT等&#xff09;已成為解決自然語言處理&#xff08;NLP&#xff09;任務的強大工具。然而&#xff0c;要讓這些模型更好地適應特定任務或領域&#xff0c;往往需要進行微調。本文將詳細介紹七…

手把手教你:如何在51建模網免費下載3D模型?

作為國內領先的3D互動展示平臺&#xff0c;51建模網不僅匯聚了龐大的3D模型資源庫&#xff0c;供用戶免費下載&#xff0c;更集成了在線編輯、格式轉換、內嵌展示及互動體驗等一站式功能&#xff0c;為3D創作者及愛好者搭建起夢想與現實的橋梁。 如何在51建模網免費下載3D模型…

鴻蒙認證值得考嗎?

鴻蒙認證值得考嗎&#xff1f; 鴻蒙認證&#xff08;HarmonyOS Certification&#xff09;是華為為了培養和認證開發者在鴻蒙操作系統&#xff08;HarmonyOS&#xff09;領域的專業技能而設立的一系列認證項目。這些認證旨在幫助開發者和企業工程師提升在鴻蒙生態中的專業技能…

linux——IPC 進程間通信

IPC 進程間通信 interprocess communicate IPC&#xff08;Inter-Process Communication&#xff09;&#xff0c;即進程間通信&#xff0c;其產生的原因主要可以歸納為以下幾點&#xff1a; 進程空間的獨立性 資源隔離&#xff1a;在現代操作系統中&#xff0c;每個進程都…

圖解 Kafka 架構

寫在前面 Kafka 是一個可橫向擴展&#xff0c;高可靠的實時消息中間件&#xff0c;常用于服務解耦、流量削峰。 好像是 LinkedIn 團隊開發的&#xff0c;后面捐贈給apache基金會了。 kafka 總體架構圖 Producer&#xff1a;生產者&#xff0c;消息的產生者&#xff0c;是消息的…

【高考志愿】測繪科學與技術

目錄 一、專業介紹 1.1 專業概述 1.2 專業方向 1.3 課程內容 二、就業前景 三、報考注意事項 四、測繪科學與技術專業排名 五、職業規劃與未來發展 高考志愿選擇測繪科學與技術專業&#xff0c;對于許多有志于空間信息技術領域發展的學生來說&#xff0c;無疑是一個極具…