摘要:的架構跟類似,從下至上,由系統(tǒng)服務和應用框架組成。依托于提供的運行時,從到現(xiàn)在的和,在構建工具領域,社區(qū)也不斷涌現(xiàn)出非常卓越的開源項目來。
大家好,很開心在這里宣布 YodaOS 開源了。他將承載 Rokid 4年以來對于人工智能和語音交互領域的沉淀,并選擇 Node.js 作為操作系統(tǒng)的一等開發(fā)公民,全部開放給社區(qū)。
YodaOS 的架構跟 Android 類似,從下至上,由 Linux Kernel、系統(tǒng)服務和應用框架組成。不過 YodaOS 有以下不同:
開發(fā)者可以直接使用 JavaScript / Node.js 來開發(fā)本地應用(技能);
封裝了 AI 抽象層,可以通過 JavaScript 直接調用到諸如語音激活、語音識別、人臉識別等接口;
除了支持默認的 Node.js API 外,YodaOS 還提供:
內置的語音激活和語音識別 API,真正做到了開箱即用(開發(fā))的語音交互系統(tǒng);
對音量控制、電源管理、藍牙、多媒體播放、LED 燈效和 OTA 等都進行了接口封裝;
對物聯(lián)網開發(fā)者來說,內置了標準化的 WebSocket、MQTT 等物聯(lián)網協(xié)議的客戶端實現(xiàn);
YodaOS 也支持 npm 倉庫,開發(fā)者可以根據(jù)自己的需要在 OS 中運行所需的模塊,不過并不推薦使用一些實現(xiàn)起來很重的模塊,因為 YodaOS 需要支持中低端設備,所以有時候也需要考慮到性能方面的因素。
如果遇到一些 npm 倉庫確實實現(xiàn)很重,但又不得不用的時候,在 YodaOS 上,我們一般的做法是使用 N-API 橋接 C/C++ 模塊,然后保證 JavaScript API 與對應的 npm 包一致。
同時借助于 N-API,開發(fā)者可以將任何 Linux 的庫移植到 YodaOS 上,并通過 N-API 以 JavaScript API 方式使用,可以這么理解,N-API 之于 YodaOS,就像 JNI 之于 Android。
為什么是 Node.js
前面提到了 YodaOS 選擇擁抱 Node.js 和 Node.js 開發(fā)者,最大的一個原因就是在過去將近10年的時間,從最開始 Ryan Dahl 定義的,一個輕量級的 Web 服務器框架,到如今的 Express、Loopback、Koajs、Midway 和 Egg Framework,在 Web 服務器框架領域已經漸漸成熟。
依托于 Node.js 提供的運行時,從 Grunt、Gulp 到現(xiàn)在的 Webpack 和 Parcel,在構建工具領域,社區(qū)也不斷涌現(xiàn)出非常卓越的開源項目來。Node.js 正在發(fā)揮每位開發(fā)者的想象力,社區(qū)中幾乎有你需要的一切,甚至于在社區(qū)中,有一句流傳已久的名言:
“any application that?can?be written in JavaScript,?will eventually be
written in JavaScript”——Atwood’s Law
意思就是說,只要能被 JavaScript 來編寫的程序,終將使用 JavaScript 實現(xiàn)。那為什么不用 JavaScript 來寫一個操作系統(tǒng)呢?
當然上面的只是一個有趣的引子,Rokid 真正想做的是讓 Node.js 開發(fā)者能夠以更低的門檻進入語音交互和嵌入式領域。
Node.js 與 ShadowNode
YodaOS 雖然跟 Android 的架構相似,不過解決的問題,及目標設備并不盡然相同,對于現(xiàn)在越來越便宜的手機,Android 開發(fā)者幾乎不用擔心系統(tǒng)性能的問題。然而對于像智能音響、IoT 終端以及其他嵌入式設備,通常硬件資源都是非常緊缺的,在這種情況下,OS 就要解決開發(fā)者“既要節(jié)省資源、又要便于開發(fā)”的問題。
于是針對中低端硬件產品(內存介于 128MB 到 256MB 之間),我們創(chuàng)造了 ShadowNode 來解決這個問題,它是 Rokid 基于三星 IoT.js 二次開發(fā)的一款 Node.js 運行時,它具備更快的啟動速度和更低的資源占用,相比 IoT.js,它:
提供了更好的錯誤棧信息和性能調試工具;
支持了基于 N-API 的跨運行時模塊執(zhí)行;
針對特定芯片的性能優(yōu)化,比如 AmLogic A113 和 Kamino18;
借助于 N-API 的 ABI 兼容特性,我們實現(xiàn)了 OS 上層框架和應用的運行時兼容性。比如開發(fā)者完全可以選擇在更高級的設備上運行 YodaOS,此時內存和 Flash 不再是瓶頸,開發(fā)者只需要更換系統(tǒng)中的 Node.js 運行時,即可獲得更快的執(zhí)行速度,不需要修改一行上層代碼。
最后
我們希望借助 YodaOS,為 Node.js 社區(qū)補全終端開發(fā)這一版圖,讓我們用這門親切的語言,再次回到我們熟悉的“端”的開發(fā)。
如果想一起加入 YodaOS,可以在 GitHub 上關注我們,項目地址:https://github.com/yodaos-pro...。
關于 YodaOS:
YodaOS 是 Rokid 研發(fā)的首個全棧開源 AI 操作系統(tǒng),由 Linux 內核、硬件抽象層、AI 抽象層和 JavaScript 框架組成,專為下一代人機交互設備開發(fā),可用于智能音箱、智能家居、智能穿戴和車載等多種設備和場景。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://www.ezyhdfw.cn/yun/108926.html
摘要:為了能讓感興趣的開發(fā)者小伙伴第一時間體驗到,聯(lián)合社區(qū)趕在春節(jié)前發(fā)起開發(fā)套件試用征集活動,該套件是基于自研語音解決方案平臺打造而成。與此同時,我們也同樣提供高度定制化模塊化的整體架構,開發(fā)者亦可方便地選擇想要集成的模塊對整個操作系統(tǒng)重新組裝。 1月28日,Rokid為人機交互設備開發(fā)的開源人工智能操作系統(tǒng)——YodaOS正式上線,可用于智能音箱、智能家居、智能穿戴和車載等多種設備和場景。...
摘要:為了能讓感興趣的開發(fā)者小伙伴第一時間體驗到,聯(lián)合社區(qū)趕在春節(jié)前發(fā)起開發(fā)套件試用征集活動,該套件是基于自研語音解決方案平臺打造而成。與此同時,我們也同樣提供高度定制化模塊化的整體架構,開發(fā)者亦可方便地選擇想要集成的模塊對整個操作系統(tǒng)重新組裝。 1月28日,Rokid為人機交互設備開發(fā)的開源人工智能操作系統(tǒng)——YodaOS正式上線,可用于智能音箱、智能家居、智能穿戴和車載等多種設備和場景。...
摘要:月號,杭州和聯(lián)合主辦的第八期技術分享會,在公司如期舉行。張偉林,宋小菜資深前端開發(fā)工程師,年,霹靂迷,已手殘的紙牌魔術師,喜歡神奇的東西,技術棧從上向下不斷橫向縱向貫穿,目前在尋找前后端大一統(tǒng)思想的路上越走越偏。 showImg(https://segmentfault.com/img/bVbkWN4?w=3000&h=1686); 12 月 9 號,杭州 NodeParty 和 Ro...
摘要:系統(tǒng)在初始化時,會加載所有,然后分別在和生成對應的。那么在中,又是如何將上述的生成為開發(fā)者直接使用的接口的呢下面就為大家介紹我們引入的。它接受一個對象,然后會遍歷原型鏈中的對象,并且分別按照和去生成一個叫的對象,最后將這個對象返回給開發(fā)者。 在 Node.js 社區(qū)中,其實不乏通過 Markdown 生成 RESTful API 的框架,按照一定的格式約定好 API 所需要的數(shù)據(jù),然后...
摘要:接下來,由會通過上傳音頻數(shù)據(jù),云端通過一系列算法最終將語音數(shù)據(jù)轉換為兩部分結果純文本,表示這段音頻數(shù)據(jù)中用戶所說的話,比如若琪今天的天氣。 本文是面向 Web 開發(fā)者所寫,介紹關于語音交互的一篇科普性質的文章,希望借助這篇文章,讓開發(fā)者了解到什么是語音交互,以及在 YodaOS 中的技術實現(xiàn)。不了解YodaOS是什么?點擊這里回顧。 作為 Web 開發(fā)者,相信在面試時常會被問到瀏覽器輸...
閱讀 594·2019-08-30 15:55
閱讀 1012·2019-08-29 15:35
閱讀 1268·2019-08-29 13:48
閱讀 1999·2019-08-26 13:29
閱讀 3012·2019-08-23 18:26
閱讀 1310·2019-08-23 18:20
閱讀 2889·2019-08-23 16:43
閱讀 2760·2019-08-23 15:58