一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>語音控制界面實驗開源分享

語音控制界面實驗開源分享

2022-12-14 | zip | 0.05 MB | 次下載 | 免費

資料介紹

描述

介紹和動機

語音識別和語音界面在這方面發(fā)揮了重要作用,并將在我們未來的計算體驗中發(fā)揮重要作用。長期以來一直是科幻小說的主要內(nèi)容,現(xiàn)在可以成為每個人的科學(xué)現(xiàn)實。

我的第一個語音控制界面實驗,“借給我你的耳朵!”:網(wǎng)絡(luò)藍(lán)牙和語音識別,是一個令人興奮的實驗。當(dāng)它成為Hackster.io live 的主題并啟發(fā)了我自己、VoiceBot101和其他人的許多新穎和衍生項目時,我感到非常高興,例如:

此處為 Alexa 和 Google Assistant 發(fā)布的眾多項目和技能也可以看出語音的流行和興奮,例如:

  • GooglePi - Raspberry Pi 上的 Google 助理

幾周前,我發(fā)現(xiàn)了一個開源語音識別和人工智能平臺Mycroft.ai ,這聽起來非常令人興奮,我決定是時候?qū)φZ音界面進(jìn)行更多試驗了。

這個項目描述將主要集中在我如何學(xué)會為 Mycroft 平臺編寫技能。我也會分享我的一些理解、困惑和總體印象。

Mycroft.ai網(wǎng)站和github 頁面有很多你應(yīng)該閱讀的信息。此外,還有一些關(guān)于該平臺的優(yōu)秀書面評論和評論,例如:

我探索 Mycroft 并編寫此技能和其他技能的最終目標(biāo)是回答以下問題:

  • 什么是好的語音界面設(shè)計?
  • Mycroft.al平臺是否允許我創(chuàng)建出色的語音設(shè)計?

Mycroft.ai/Picroft

Mycroft.ai是一個人工智能和語音識別系統(tǒng)。它類似于 Alexa、Google Assistant 或 Siri 等平臺,但它是完全開源的,并且是用 Python 編寫的。它有 3 個不同的版本:

  • Mycroft Mark 1 - 基于 Raspberry Pi 2 的開放硬件平臺
  • Linux Ubuntu 上運行桌面包
  • 用于在 Raspberry Pi 3 上運行Picroft 0.8

我一直在尋找一個很好的理由來開始認(rèn)真地嘗試 Raspberry Pi 3,因此 Picroft 0.8 選項對我來說是一個自然的選擇。還有非常詳盡的安裝說明和兼容硬件指南也很吸引人。

從現(xiàn)在開始,我將交替使用 Mycroft 和 Picroft,但我專門為這個項目使用了 Picroft 0.8 版本。我也可以稱他或他為 Mycroft/Picroft,但在此我遵循 Manuel “Mannie” Garcia O'Kelly 的約定。

Picroft 安裝說明

對于這個項目,我使用了安裝在 Pi Top Ceed 外殼中的 Raspberry Pi 3。我使用它是因為建議使用鍵盤和屏幕可以更輕松地與 Picroft 交互和安裝。不過不要太興奮,我沒有在 Pi Top OS 上運行 Picroft,我只是覆蓋了 SD 卡。這是我感興趣的鍵盤和屏幕!

我還購買了兼容硬件列表中推薦的麥克風(fēng)/揚聲器組合之一。

在 Raspberry Pi 3 上安裝 Mycroft 之前,有 2 套安裝說明和提示需要查看:

執(zhí)行和完成這些步驟不到 1 小時,令人驚訝的是,這一切都奏效了!直到我告訴Mycroft去睡覺。當(dāng)我試圖用喚醒詞喚醒他時,他拒絕這樣做。無奈之下,我重啟了。然后他會認(rèn)出喚醒詞,我可以看到屏幕上顯示的文本響應(yīng),但聽不到任何音頻。所以我回到了安裝說明。. .

在上面第一個鏈接的安裝說明和提示的底部,是有關(guān)如何配置 USB 麥克風(fēng)的提示:

使用 USB 音頻作為輸出
通常,USB 音頻應(yīng)連接到 hwplug:1,0 但要驗證運行以下命令:
aplay -L
找到您要使用的設(shè)備的 hwplug 輸出,使用它并相應(yīng)地更新 /etc/mycroft/mycroft.conf 文件:
"play_wav_cmdline": "aplay -Dhw:0,0 %1" 這行現(xiàn)在變成了 "play_wav_cmdline": "aplay -Dplughw:1,0 %1"
您現(xiàn)在可以運行 ./auto_run.sh 來啟動程序備份和測試,并確保輸出來自 USB 揚聲器。

按照這些說明使用nano作為文本編輯器并重新啟動,解決了麥克風(fēng)問題。然而,讓他入睡仍然需要完全重啟才能讓他對喚醒詞做出反應(yīng)。希望通過更多的工作,我將能夠解決這個問題。

這帶來了使用 Picroft 版本的重要一點。您應(yīng)該對 Linux 中的基本命令行技能充滿信心。到目前為止,它只是簡單的東西,例如在目錄中移動、安全刪除文件和使用 nano。

技能的想法

我想創(chuàng)建一種比“Hello, World”示例更復(fù)雜的技能(他們已經(jīng)有一個),但又不會復(fù)雜到阻止我完成它。

經(jīng)過一番思考,我想出讓 Mycroft 告訴我國際空間站 (ISS) 相對于其地球經(jīng)緯度坐標(biāo)的當(dāng)前軌道位置。由于這兩個數(shù)字對我沒有太多意義,我還希望 Mycroft 告訴我這些坐標(biāo)對應(yīng)于地圖上的什么。

好的,所以這不是最有用的技能,但它很有趣,并且有機會學(xué)習(xí)。以下兩個部分是特定領(lǐng)域的信息,雖然對于編寫技能不是必需的,但很有趣并且與技能的“輸出”相關(guān)。

國際空間站(ISS)

國際空間站是一個巨大的太空科學(xué)實驗室。它已經(jīng)建成到目前的規(guī)模,航天飛機的許多最后任務(wù)都用于建造它。有趣的是,航天飛機的最初概念是讓它與軌道空間實驗室協(xié)同工作。它每 90 分鐘繞地球一圈,平均高度為 240 英里。通過計算,它在一天內(nèi)繞地球運行 16 次(24*60/90)。它的速度為每小時 17,500 英里。意味著從洛杉磯到紐約的旅行只需不到 9 分鐘!這與我們的技能相關(guān),因為通過如此快速的移動,它賦予了技能一些多樣性和對其響應(yīng)的興趣,這是語音設(shè)計的一個重要特征。

反向地理編碼

我找到了兩個免費的開源 API,它們提供實時 ISS 坐標(biāo)Open-Notifywheretheiss.at 我選擇為這個項目使用 Open-Notify。

這兩個 API 都以 JSON 有效載荷的形式提供相對于地球的 ISS 軌道位置,以及 ISS 最新的經(jīng)緯度。我們可以簡單地訪問其中之一,解碼 JSON 有效載荷以獲取緯度和經(jīng)度,并讓 Mycroft 報告這兩個數(shù)字。但是,“緯度 5.218 經(jīng)度 115.008”(南海上空)或“緯度 44.590 經(jīng)度 -104.715”(美國懷俄明州魔鬼塔上空)的報告對普通用戶意味著什么?讓技能提供地圖坐標(biāo)和有意義的地理特征名稱(又名地名)提供了上下文,甚至可能與技能建立個人聯(lián)系。因此,我們付出更多的努力將獲得更好的用戶體驗。

當(dāng)我們與地圖服務(wù)(例如谷歌地圖)交互時,我們會在地圖上給它一個地址或 2 個已知點并詢問方向,或者我們可能會使用 Uber 等乘車服務(wù)應(yīng)用程序讓我們的司機知道我們在哪里,并且我們想去的地方。這就是地理編碼:我們識別地圖上的點,然后應(yīng)用程序?qū)⑦@些點轉(zhuǎn)換為可計算的坐標(biāo)。然而,我們的技能要求我們做相反的事情,我們給它一組坐標(biāo),它為我們提供了一個可識別的地理特征。這就是所謂的反向地理編碼。許多映射 API 會將其作為功能提供到其服務(wù)中。

所以我們都準(zhǔn)備好了,只需使用我們最喜歡的(和免費的)地圖服務(wù)的反向地理編碼功能,并解碼生成的 JSON 有效負(fù)載!但是,有一個問題!您會發(fā)現(xiàn),這些服務(wù)中的大多數(shù)都不涵蓋主要水域,例如海洋!嘗試使用大西洋和太平洋等要素的坐標(biāo),“未找到結(jié)果”是報告!我想這與將服務(wù)貨幣化有關(guān)。你真的找不到人去珊瑚海中央最近的星巴克!

幸運的是,GeoNames.org提供了一個 Web 服務(wù),它確實在主要水域返回了有意義的有效載荷!我找不到另一個這樣做的免費服務(wù)。如果你這樣做,請告訴我!

訪問 GeoNames.org 網(wǎng)站,申請用戶名/帳戶,每天最多可獲得 30,000 次訪問!請記住為您的用戶名/帳戶激活網(wǎng)絡(luò)服務(wù)!問題解決了。

寫作技巧

Mycroft 核心文檔包含一個關(guān)于創(chuàng)建技能的優(yōu)秀教程,并且在Mycroft github 頁面上有許多技能可供學(xué)習(xí)。我不會在這里重復(fù)該教程,但會指出我在創(chuàng)建此技能時使用的要點。

創(chuàng)建技能需要具有特定結(jié)構(gòu)的多個不同文件,并具有特定的文件名約定:

?
poYBAGOYPp-AVkMjAACubWTHfN8579.png
來自 Mycroft 的 github 頁面,可以使用一個空白技能模板。
?

/dialog文件夾包含基于語言的文件,這些文件告訴 Mycroft 在執(zhí)行技能時要說什么。這是來自 Mycroft.ai 的 github 存儲庫的Skill-hello-world/dialog/en-us/hello.world.dialog :

Hello world
Hello
Hi to you too

在回應(yīng)你說“Hey Mycroft,Hello world”時,Mycroft 會從上面的 3 個回應(yīng)中選擇一個說出來。“Hey Mycroft”或只是“Mycroft”這些詞是指示 Mycroft 應(yīng)該開始聆聽的喚醒詞或觸發(fā)詞。

他怎么知道要聽什么才能執(zhí)行這項技能?這就是 /vocab 文件夾的來源。從教程中,

  • vocab 文件夾包含支持的每種語言的子文件夾,例如 en-us。在每個語言文件夾中,我們放置 .voc 文件,其中包含確定 Mycroft 將聽什么來觸發(fā)技能的短語或關(guān)鍵字。

我的技能的對話和 voc 文件有點復(fù)雜。這是Skill-iss-location/dialog/en-us/location.current.dialog

{{latitude}} latitude {{longitude}} longitude which corresponds to {{toponym}}
The space station is at {{latitude}} latitude {{longitude}} longitude over {{toponym}}
It's at {{latitude}} latitude {{longitude}} longitude, {{toponym}}
The ISS is now over {{toponym}} at {{latitude}} latitude {{longitude}} longitude
{{toponym}} at {{latitude}} latitude and {{longitude}} longitude

術(shù)語{{latitude}}、{{longitude}}{{toponym}}是在執(zhí)行與此技能關(guān)聯(lián)的__init__.py文件期間填充的值的鍵。您在 python 代碼中獲得的值與這些鍵之間存在一對一的關(guān)系,這使得提供交互式體驗變得非常容易。這些鍵周圍的文本是自由形式的,您可以在此處放置任何內(nèi)容,Mycroft 會在這些選項中進(jìn)行選擇以進(jìn)行響應(yīng)。

技能的核心在于__init__.py文件。我是這樣看的:用python寫的任何東西,都可以融入技能!有了可用的 Python 庫的數(shù)量和種類,這里沒有限制!該文件有一個特定的結(jié)構(gòu),我建議閱讀教程并查看Mycroft.al github 站點中的技能,以了解如何從這里開始。我將在這里詳細(xì)介紹我的代碼??磥磉@一切都在 Python 2.7 中)。

/test/intent文件夾是什么?我花了一段時間才開始理解這個文件夾的用途,我還在學(xué)習(xí)它。為了理解它,這些用 JSON 編寫的文件允許 Mycroft 確保您的技能意圖和您創(chuàng)建的文件中定義的聲音表達(dá)都可以正常工作。他們沒有定義聲音交互,而是測試它,因此得名。在我比較了來自維基百科的測試/意圖文件hello-world技能之前,我并不清楚這一點:

來自 hello-world測試/意圖文件之一:

{
 "utterance": "Hello world",
 "intent_type": "HelloWorldIntent",
 "intent": {
   "HelloWorldKeyword": "hello world"
 }
}

這是來自維基百科的技能:

{
 "utterance": "tell me about the first world war",
 "intent_type": "WikipediaIntent",
 "intent": {
   "WikipediaKeyword": "tell me about",
   "ArticleTitle": "the first world war"
 }
}

比較這些文件,幫助我理解了這些文件的作用。該話語是 Mycroft 可能會聽到的內(nèi)容的示例,其中包含關(guān)鍵字和細(xì)節(jié)。intent_type對應(yīng)于您的__init__.py文件中定義的意圖處理程序,當(dāng)您比較 JSON 文件的“intent:”鍵時可以看到,該鍵包含來自您的 vocab 文件的關(guān)鍵字,并且在 wiki 技能的情況下是鍵:值對通過。

所以這些文件并沒有定義你可能的交互,而是特定的測試用例,以確保你的技能文件一起工作。

上面沒有顯示可選的/regex文件夾,它包含正則表達(dá)式,幫助 Mycroft 響應(yīng)并解析它所聽到的信息!這是非常令人興奮的,但不是這個項目的主題。

使用安裝了 Picroft 0.8 的 Raspberry PI 3 編寫技能,需要您熟悉使用 linux 命令行。為了方便編寫這項技能,我在我的 Windows 10 筆記本電腦上使用 atom 編寫了所有需要的文件,然后將所有內(nèi)容上傳到 Github。

為了安裝這項技能,我從我的 github 頁面克隆了存儲庫并從那里開始工作。這不是處理軟件的理想方式。但是,既然我對這個過程感到滿意,我可能會提取模板技能并直接從那里使用nano作為我的編輯器,并正確地將更改推送/合并到我自己的存儲庫中。

該技能必須放在/opt/mycroft/skills 技能文件夾中。使用sudo reboot 重新啟動系統(tǒng)后,我可以使用該技能。MSM(Mycroft Skill Manager)提供了一個工具,但我沒有在這個項目中使用它。我還有很多東西要學(xué)!

Python 代碼亮點

我發(fā)現(xiàn)通過命令行/納米/語音界面進(jìn)行調(diào)試的過程有點挑戰(zhàn)。因此,我編寫了一個測試腳本issTest006.py來調(diào)試__init__.py 意圖函數(shù)處理程序的基本功能,以便在我的桌面上運行。

通過確保將非 Mycroft 相關(guān)功能與我的代碼中與 Mycroft 平臺相關(guān)的錯誤分開,這有助于簡化我的調(diào)試過程。

?
pYYBAGOYPqGAMKeGAADyfsPwA-0325.jpg
使用測試腳本驗證 python 代碼。
?

我們實際上只是在這里編寫一個 Python 腳本。該技能在 Python 中被創(chuàng)建為一個類。要在 Mycroft 環(huán)境中工作,該類必須包含它的功能。這些在教程和模板技能中都有概述:

class HelloWorldSkill(MycroftSkill): 
   def __init__(self): 
   def initialize(self): 
   def handle_thank_you_intent(self, message): 
   ... 
   def stop(self): 
def create_skill(): 
   return HelloWorldSkill() 

就我而言,我修改了這個模板以適應(yīng) ISS 定位技能:

__init__(self)函數(shù)用于創(chuàng)建 Skill 的實例

class ISSLocationSkill(MycroftSkill):
   def __init__(self):
       super(ISSLocationSkill, self).__init__(name="ISSLocationSkill")
   ...

這與任何其他 Python 類的__init__(self)構(gòu)造函數(shù)沒有什么不同。我沒有要在這里設(shè)置的實例變量,所以這就是這里所需要的。

def initialize(self)是我們構(gòu)建意圖和注冊意圖處理程序的地方。就我而言,只有一個。

您還可以在此處看到傳遞給函數(shù)的值匹配文件名、關(guān)鍵字 .voc 或我們之前編碼中的 JSON 鍵。這是關(guān)鍵字、意圖測試和意圖處理程序之間建立聯(lián)系的地方。因此,遵守 Mycroft 平臺的命名約定很重要。

def initialize(self):
       iss_location_intent = IntentBuilder("ISSLocationIntent").require("ISSKeyword").build()
       self.register_intent(iss_location_intent, self.handle_intent)
...

我的技能只有一個意圖,但您可以從Hello World Skill 中看到注冊多個意圖處理程序的樣子:

def initialize(self):
       thank_you_intent = IntentBuilder("ThankYouIntent"). \
           require("ThankYouKeyword").build()
       self.register_intent(thank_you_intent, self.handle_thank_you_intent)
       how_are_you_intent = IntentBuilder("HowAreYouIntent"). \
           require("HowAreYouKeyword").build()
       self.register_intent(how_are_you_intent,
                            self.handle_how_are_you_intent)
       hello_world_intent = IntentBuilder("HelloWorldIntent"). \
           require("HelloWorldKeyword").build()
       self.register_intent(hello_world_intent,
                            self.handle_hello_world_intent)

我的技能的大部分代碼都包含在意圖處理程序中,這與稀疏的Hello World Skill 意圖處理程序形成對比。他們只需將 Mycroft 指向?qū)υ捒蛭募纯稍L問:

def handle_how_are_you_intent(self, message):
       self.speak_dialog("how.are.you")

需要注意的是,傳遞的值是執(zhí)行技能時要訪問的對話文件的名稱,而不是您希望 Mycroft 說出的實際文本!傳遞的值是不帶.dialog擴展名的文件名。

讓我們深入了解我的意圖處理程序,并嘗試關(guān)注來自意圖處理程序的信息是如何傳遞回 Mycroft 的。

我們要做的第一件事是從 open-notify 獲取當(dāng)前 ISS 位置。我們使用urllib2庫發(fā)出請求,然后使用json解析 JSON 有效負(fù)載響應(yīng)(請注意,urllib2 不是 Python3 中的單個庫)。

 def handle_intent(self, message):
       # get the 'current' latitude and longitude of the ISS from open-notify.org in JSON
       reqISSLocation = urllib2.Request("http://api.open-notify.org/iss-now.json")
       resISSLocation = urllib2.urlopen(reqISSLocation)
       issObj = json.loads(resISSLocation.read()) # JSON payload of ISS location data
       latISS = issObj['iss_position']['latitude']
       lngISS = issObj['iss_position']['longitude']

你能看出上面的代碼有問題嗎?我可以并且經(jīng)歷過。如果 Open-Notify 的服務(wù)器已關(guān)閉或連接出現(xiàn)問題,會發(fā)生什么情況?這將導(dǎo)致程序崩潰。它不會使 Mycroft 崩潰,它只是不會為這種“錯誤”情況提供可接受的語音響應(yīng),讓用戶(像我一樣)想知道到底發(fā)生了什么。為了糾正這個問題,在未來的版本中,我將使用 Python 中最棒的異常處理機制,就像我在后面的代碼中所做的那樣。

接下來,我們將使用從 Open-Notify 中解析出的 JSON 有效負(fù)載中的緯度和經(jīng)度來創(chuàng)建 URL 請求字符串以訪問GeoNames.org Web 服務(wù)。我們在這里創(chuàng)建 2 個字符串,因為對陸地和海洋/水特征有不同的反向地理編碼 api 調(diào)用:

...
oceanGeoNamesReq = "http://api.geonames.org/oceanJSON?lat="+ latISS +"&lng="+ lngISS +"&username=YourUserName"
landGeoNamesReq  = "http://api.geonames.org/countryCodeJSON?formatted=true&lat=" + latISS + "&lng=" + lngISS +"&username=YourUserName&style=full"
...

不要忘記將您的用戶名插入到上面的字符串中!

盡管國際空間站的軌道旨在一次覆蓋全球 90% 的人口,但地球是 3/4 的水,每當(dāng)我看時,大部分軌道似乎都在一片水域之上。因此,正如下面代碼中的注釋所示,我們首先檢查坐標(biāo)是否將地理編碼反向到海洋位置。再次在這里我應(yīng)該把它放在異常處理塊中。未來的東西。. .

# Since the Earth is 3/4 water, we'll chek to see if the ISS is over water first;
       # in the case where this is not so, we handle the exception by  searching for a country it is
       # over, and is this is not coded for on GenNames, we just we say we don't know
       oceanGeoNamesRes = urllib2.urlopen(oceanGeoNamesReq)
       toponymObj = json.loads(oceanGeoNamesRes.read())

在下一段代碼中,我們絕對必須將其包裝在異常處理塊中。當(dāng)我們嘗試從海洋位置解析從GeoNames.org返回的 JSON 有效負(fù)載時,如果國際空間站位于陸地上方,則會產(chǎn)生錯誤,因為有效負(fù)載中不存在海洋名稱密鑰。

如果我們得到這個錯誤,我們的第一個假設(shè)將是我們在陸地上。因此,我們將嘗試訪問土地的反向地理編碼服務(wù)。實際上,我們可以通過檢查返回的狀態(tài)/錯誤代碼來使這更復(fù)雜,但是這個假設(shè),陸地與水體,似乎工作得很好:

try:
           toponym = "the " + toponymObj['ocean']['name']
       except KeyError:
           landGeoNamesRes = urllib2.urlopen(landGeoNamesReq)
           toponymObj = json.loads(landGeoNamesRes.read())
           toponym = toponymObj['countryName']
       except:
           toponym = "unknown"

因此,在這里,如果出現(xiàn) KeyError,我們會嘗試從有效負(fù)載中解析海洋名稱鍵,然后我們通過對陸地特征進(jìn)行反向地理編碼來處理此錯誤,并從中獲取國家名稱。在訪問此 Web 服務(wù)產(chǎn)生錯誤的情況下,我們通過將其稱為未知位置來處理此問題。也許不是最好的,但它是開始處理海洋和陸地坐標(biāo)都不能正確反轉(zhuǎn)地理編碼的情況的好方法。如果您從 GeoNames.org 探索許多反向地理編碼 Web 服務(wù),您可能會發(fā)現(xiàn)來自 Mycroft 的其他有用的 JSON 有效負(fù)載項。看看,讓我知道或自己修改!

到目前為止,為 intent_handler 描述的所有代碼都只是 Python。我們還沒有與 Mycroft 互動!您可以通過將此代碼與我編寫的 Python 測試腳本進(jìn)行比較來看到這一點。我想展示這一點,因為不僅再次用 Python 編寫很有趣,而且還證明在我看來,如果你可以用 Python 編寫它,你就可以讓 Mycroft 在語音控制下運行它!這是非常強大的東西!

現(xiàn)在讓我們看看我們?nèi)绾螌⑽覀冃掳l(fā)現(xiàn)的關(guān)于 ISS 在哪里的知識傳遞給 Mycroft:

if toponym == "unknown":
           self.speak_dialog("location.unknown",{"latitude": latISS, "longitude": lngISS})
      else:
           self.speak_dialog("location.current",{"toponym":toponym, latitude": latISS, "longitude": lngISS})

就在這里!還記得我們討論過location.current.dialog文件中的{{latitude}}鍵嗎?好吧,這是我們將值傳遞給這些鍵的地方!

正如您在此處看到的,如果我們找到了陸地或水的地名,我們會將緯度、經(jīng)度和地名傳回對話文件以供 Mycroft 發(fā)言。如果兩者都失敗了,并且我們?yōu)榻o定的緯度和經(jīng)度生成了一個未知的地名,我們選擇location.unknown.dialog文件并讓 Mycroft 從那里執(zhí)行一個短語!

很酷,對吧?

如您所知,為 Mycroft 編寫代碼比記錄所有這些更容易!

示威

讓我們看看幾種不同情況下的技能:

需要改進(jìn)

完美是完整的敵人。所以我選擇了代碼,因為我得到了很多我想嘗試的想法,但我也想把它拿出來,這樣人們就可以看到在這個平臺上構(gòu)建語音應(yīng)用程序是多么容易和有趣.

話雖如此,正如您將在下面的演示中看到的那樣,我仍然沒有弄清楚如何讓 Mycroft 在識別方面正確處理首字母縮寫詞或首字母縮寫詞,如 ISS。

在語音方面,從請求到響應(yīng)也有一點延遲。這可能是由于我的設(shè)置、編碼或此時平臺固有的。我知道所有這些都可能會隨著時間的推移而改善。

我們還依賴 2 個 Web 服務(wù),Open-Notify 和 GeoNames。如您所見,我真的沒有嘗試處理服務(wù)器錯誤。一個簡單的修復(fù),但仍然需要做一個來提高這個技能!

結(jié)論/一些觀察

我已經(jīng)讓 Mycroft(Picroft 0.8) 在 Raspberry Pi 3 上運行了一周多一點,并為此編寫了我的第一個技能。這個平臺激勵我的一件事是我對它的參與感。我覺得我想要進(jìn)行的不僅僅是“單回合”事件或技能。一旦我習(xí)慣了在命令行上并再次使用 nano,就很容易編寫該技能,我真的很喜歡一切都在 Python 中。我最近沒有機會用 Python 編寫代碼,所以這是一個再次這樣做的好機會,也開始夢想 Mycroft 和 Python 可以在 Raspberry Pi 3 上組合完成的所有事情。

到目前為止,對于 Mycroft 是否允許我創(chuàng)建一個好的聲音設(shè)計這個問題的答案是肯定的。dialog、vocab__init__.py文件之間的相互聯(lián)系清晰且易于使用。

沿消息總線傳遞信息的意圖和意圖處理程序的概念對我來說很有意義。我期待在我的語音詢問中探索正則表達(dá)式,然后嘗試創(chuàng)建多輪技能。

什么是好的聲音設(shè)計?我希望通過這個平臺更多地探索這個問題并提高我的能力。如果你有一個 Raspberry Pi 3 和 Ubuntu 盒子可以使用,或者即使你可以購買 Mycroft Mark 1,我認(rèn)為在這個平臺上進(jìn)行實驗是非常值得的!


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應(yīng)用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關(guān)電源設(shè)計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅(qū)動電路設(shè)計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學(xué)會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費