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

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

3天內(nèi)不再提示

基于Syntiant TinyML board的語(yǔ)音助手設(shè)計(jì)

電子森林 ? 來(lái)源:電子森林 ? 作者:電子森林 ? 2022-07-20 09:25 ? 次閱讀

Funpack第二季第一期已圓滿(mǎn)結(jié)束,參加活動(dòng)的有89人之多,上線(xiàn)第一天就有四十多朋友下單,成功打破了去年Funpack第一季第十二期的記錄,也感謝大家對(duì)Funpack活動(dòng)和硬禾的信任和支持。

本次共有44位朋友提交項(xiàng)目并全部審核通過(guò),也恭喜這些上進(jìn)的崽。第二期也已經(jīng)上線(xiàn),歡迎新老朋友前來(lái)參加,參加的期數(shù)越多,項(xiàng)目審核通過(guò)的越多,結(jié)束時(shí)可獲得的獎(jiǎng)品越豐厚??靵?lái)參加吧!

從那么多優(yōu)秀的項(xiàng)目中選擇出更優(yōu)秀的項(xiàng)目也是很苦惱的事情。今天先欣賞來(lái)自杭州的Argon朋友做的基于Syntiant TinyML board 設(shè)計(jì)一款可以和Raspberry 4進(jìn)行聯(lián)動(dòng)控制小米和涂鴉設(shè)備的語(yǔ)音助手,成功控制了家用的空氣凈化器。


任務(wù)目標(biāo)

基于Syntiant TinyML board 設(shè)計(jì)一款可以和Raspberry 4進(jìn)行聯(lián)動(dòng)控制小米和涂鴉設(shè)備的語(yǔ)音助手。

設(shè)計(jì)思路系統(tǒng)拓?fù)?/strong>

ce7d8dfc-076a-11ed-ba43-dac502259ad0.png

詳細(xì)描述

不管是tuya云還是米家云都是私有的,我們無(wú)法直接將自定義設(shè)備進(jìn)行接入并進(jìn)行交互。因此我們需要借助一個(gè)工具----Home Assistant來(lái)進(jìn)行消息的轉(zhuǎn)發(fā)。并且將樹(shù)莓派作為其軟件運(yùn)行的載體。當(dāng)TinyML開(kāi)發(fā)板識(shí)別到對(duì)應(yīng)語(yǔ)音指令之后通過(guò)IO狀態(tài)上報(bào)給ESP8266芯片,ESP8266通過(guò)局域網(wǎng)MQTT服務(wù)上報(bào)給樹(shù)莓派上的EMQ服務(wù)器,HASS去自動(dòng)解析MQTT報(bào)文并且將相應(yīng)指令上報(bào)給不同的云平臺(tái)。

詳細(xì)實(shí)施

1. Docker安裝

為了便于管理樹(shù)莓派上的軟件包我們統(tǒng)一使用docker進(jìn)行軟件的安裝,這樣可以保證每個(gè)軟件都是獨(dú)立運(yùn)行在虛擬環(huán)境中的不會(huì)因?yàn)檫\(yùn)行出錯(cuò)或者錯(cuò)刪文件導(dǎo)致系統(tǒng)無(wú)法啟動(dòng)。

下面提供兩種安裝方式:

  • 腳本安裝方式

只需要輸入命令就可以安裝好(省事 方便,初次學(xué)習(xí)可以試試第二種方法)


	
sudo curl -sSL https://get.docker.com | sh

ceb48780-076a-11ed-ba43-dac502259ad0.png

  • apt 安裝方式

由于 Raspbian 基于 Debian,我們還可以使用 apt安裝(其他發(fā)行版可做參考)

1.添加使用 https 傳輸?shù)能浖约?CA 證書(shū)。由于 apt 源使用 https 以確保軟件下載過(guò)程中不被篡改。因此,我們首先需要添加使用 https 傳輸?shù)能浖约?CA 證書(shū)。


	
 $ sudo apt-get install       apt-transport-https       ca-certificates       curl       gnupg2       lsb-release       software-properties-common

1)添加 Docker 的 GPG key

為了確認(rèn)所下載軟件包的合法性,需要添加軟件源的 GPG 密鑰。


	
 curl -fsSL https://yum.dockerproject.org/gpg | sudo apt-key add -  # 官方源 # $ curl -fsSL https://download.docker.com/linux/raspbian/gpg | sudo apt-key add -

2)設(shè)置穩(wěn)定的 repository


	
 sudo add-apt-repository        "deb https://apt.dockerproject.org/repo/        raspbian-$(lsb_release -cs)        stable"   # 官方源 #$ sudo add-apt-repository  #"deb [arch=armhf] https://download.docker.com/linux/raspbian  #$(lsb_release -cs)  #stable"

3)安裝 Docker

更新 apt 軟件包緩存,并安裝 docker


	
 $ sudo apt-get update $ sudo apt-get -y install docker-engine

4)測(cè)試 Docker 是否安裝正確


	
sudodockerrunhello-world

2. HomeAssisatant 的安裝

整個(gè)安裝過(guò)程十分的簡(jiǎn)單這里不再贅述可以直接參考此貼:

樹(shù)莓派4+ docker+ homeassistant停止測(cè)試的博客-CSDN博客樹(shù)莓派跑docker:https://blog.csdn.net/weixin_43990954/article/details/107330798

3. tuya設(shè)備接入

首先登陸涂鴉 IoT 平臺(tái) (tuya.com)官網(wǎng),在云開(kāi)發(fā)->云管理->我的云項(xiàng)目中 創(chuàng)建一個(gè)新的云項(xiàng)目。在創(chuàng)建過(guò)程中開(kāi)放方式選擇自定義開(kāi)發(fā)即可。

cec7b33c-076a-11ed-ba43-dac502259ad0.png

ced5ecb8-076a-11ed-ba43-dac502259ad0.png

在HASS的配置->設(shè)備與服務(wù)中添加新的集成,在搜索框搜索涂鴉即可。

ceea6d64-076a-11ed-ba43-dac502259ad0.png

在配置框中的名稱(chēng)和tuya云平臺(tái)上的名稱(chēng)對(duì)應(yīng)關(guān)系如下圖所示:

編號(hào)云平臺(tái)名HASS配置名1Access ID/Client ID涂鴉物聯(lián)網(wǎng)設(shè)備接入ID2Access Secret/Client Secret:涂鴉物聯(lián)網(wǎng)設(shè)備接入密碼

其中的用戶(hù)名和密碼對(duì)應(yīng)Tuya 手機(jī)APP上登陸的用戶(hù)名和密碼,不是IOT平臺(tái)這里不要混淆。

cf009440-076a-11ed-ba43-dac502259ad0.png

注:Access ID和Secret可以在概況中查詢(xún)到。

cf2027d8-076a-11ed-ba43-dac502259ad0.png

在手機(jī)APP上根據(jù)提示將設(shè)備添加到關(guān)聯(lián),之后在云平臺(tái)的設(shè)備中手動(dòng)去關(guān)聯(lián)APP賬戶(hù)并且添加關(guān)聯(lián)的設(shè)備到此云服務(wù),對(duì)于設(shè)備較多的用戶(hù)建議手動(dòng)添加所需設(shè)備,不要全部導(dǎo)入否則云平臺(tái)在檢索設(shè)備時(shí)會(huì)非常卡。

cf45a454-076a-11ed-ba43-dac502259ad0.png

cf9c08f8-076a-11ed-ba43-dac502259ad0.png

添加成功狗手動(dòng)刷新HASS面板即可看到新添加的設(shè)備

cfcce748-076a-11ed-ba43-dac502259ad0.png

4. 米家設(shè)備接入

可以直接參考此篇博客:

米家設(shè)備接入 Home Assistant:https://zhuanlan.zhihu.com/p/400997679

5. EMQ安裝和關(guān)聯(lián)HASS

EMQ是個(gè)輕量級(jí)的MQTT服務(wù)器,將其直接運(yùn)行在樹(shù)莓派上可以作為ESP8266和HASS溝通的橋梁

1) 安裝

詳細(xì)的安裝教程可以參考我的博文:

樹(shù)莓派安裝配置使用EMQ教程_Argon_Ghost的博客:https://blog.csdn.net/Argon_Ghost/article/details/106033912

2) 集成

直接在集成選項(xiàng)中添加MQTT組件即可,然后輸入對(duì)應(yīng)的IP和端口(一般情況下MQTT EMQ 的端口為1883)

cfde2ff8-076a-11ed-ba43-dac502259ad0.png

6. 數(shù)據(jù)轉(zhuǎn)發(fā)

為使ESP8266可以控制米家設(shè)備和涂鴉設(shè)備,可以通過(guò)HASS平臺(tái)的自動(dòng)化功能來(lái)完成,自動(dòng)化類(lèi)似于Iphone上的自動(dòng)化功能,用戶(hù)可以自定義觸發(fā)源觸發(fā)信號(hào),在觸發(fā)信號(hào)到來(lái)的時(shí)候?qū)⒂|發(fā)信號(hào)觸發(fā)起到控制硬件的目的,這里以ESP8266通過(guò)MQTT觸發(fā)米家空氣凈化器開(kāi)機(jī)為例來(lái)做講解,其余設(shè)備類(lèi)似:

1) 配置

配置->場(chǎng)景自動(dòng)化->新建自動(dòng)化來(lái)創(chuàng)建一個(gè)新的BluePrint自動(dòng)化場(chǎng)景

2) 配置觸發(fā)條件

因?yàn)槲覀冃枰谑盏組QTT特定報(bào)文時(shí)候進(jìn)行觸發(fā),我配套代碼中的觸發(fā)條件配置為如下圖所示即可:

cff0d41e-076a-11ed-ba43-dac502259ad0.png

3) 配置動(dòng)作

配置動(dòng)作就是在條件觸發(fā)后的相應(yīng),這里我們需要相應(yīng)的是開(kāi)機(jī),相應(yīng)配置如下圖所示:

d003eb9e-076a-11ed-ba43-dac502259ad0.png

4) 注

配套代碼實(shí)現(xiàn)中的其他觸發(fā)條件均通過(guò)office/sensor1 topic進(jìn)行,詳細(xì)的匹配關(guān)系參數(shù)如下表所示:

編號(hào)觸發(fā)目的參數(shù)1關(guān)機(jī)02開(kāi)機(jī)13自動(dòng)模式24睡眠模式3

7. 語(yǔ)音數(shù)據(jù)訓(xùn)練

syntiant 提供了完整的從訓(xùn)練到部署的一站式支持,可以通過(guò)如下鏈接打開(kāi)此平臺(tái):

[在線(xiàn)訓(xùn)練平臺(tái)] https://studio.edgeimpulse.com

d01addfe-076a-11ed-ba43-dac502259ad0.png

整個(gè)訓(xùn)練過(guò)程分為以下幾個(gè)部分,詳細(xì)的使用方法可以在EDGE IMPULSE網(wǎng)站的wiki上查看。

  1. 通過(guò)麥克風(fēng)將數(shù)據(jù)集錄入

  2. 新建識(shí)別內(nèi)容和工程

  3. 設(shè)置采用方式、采樣率、采樣窗口等參數(shù)

  4. 配置數(shù)據(jù)分類(lèi)方式(這邊我們直接使用NN 經(jīng)典模型)

  5. 數(shù)據(jù)訓(xùn)練

訓(xùn)練完畢之后直接點(diǎn)擊Deployment即可對(duì)數(shù)據(jù)進(jìn)行導(dǎo)出,我項(xiàng)目中訓(xùn)練的模型如下圖所示:

d0471612-076a-11ed-ba43-dac502259ad0.png

8. 模型下載

對(duì)于音頻模型可以直接將模型燒錄在板卡的內(nèi)置Flash中,在官方提供的Demo程序中已經(jīng)集成了Flash的燒錄功能,通過(guò)tool中的

flash_windows.bat工具即可將模型和程序燒錄到板卡中。

9. 程序編譯

在生成好的模型中可以得到如下三個(gè)文件,model-parameters是我們新生成模型的參數(shù)和匹配關(guān)鍵字名稱(chēng)的C函數(shù),需要替換代碼工程src目錄下的model-parameters,ei_model.bin就是NDP101芯片所需要的模型數(shù)據(jù)了。

d05f4764-076a-11ed-ba43-dac502259ad0.png

在替換完成之后使用Arduino IDE從新編譯工程并且在on_classification_changed函數(shù)中填充自己的應(yīng)用代碼即可,如下所示。


	
/* Generated by Edge Impulse * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */
#ifndef _EI_CLASSIFIER_MODEL_VARIABLES_H_#define _EI_CLASSIFIER_MODEL_VARIABLES_H_
#include #include "model_metadata.h"// #include "edge-impulse-sdk/classifier/ei_model_types.h"
const char* ei_classifier_inferencing_categories[] = { "source_auto", "source_close", "source_open", "source_sleep", "z_openset" };
uint8_t ei_dsp_config_66_axes[] = { 0 };const uint32_t ei_dsp_config_66_axes_size = 1;ei_dsp_config_audio_syntiant_t ei_dsp_config_66 = {    1,    1,    0.032f,    0.024f,    40,    512,    0,    0,    0.96875f};// const ei_model_performance_calibration_t ei_calibration = {//     1, /* integer version number *///     (int32_t)(EI_CLASSIFIER_RAW_SAMPLE_COUNT / ((EI_CLASSIFIER_FREQUENCY > 0) ? EI_CLASSIFIER_FREQUENCY : 1)) * 1000, /* Model window *///     0.8f, /* Default threshold *///     (int32_t)(EI_CLASSIFIER_RAW_SAMPLE_COUNT / ((EI_CLASSIFIER_FREQUENCY > 0) ? EI_CLASSIFIER_FREQUENCY : 1)) * 500, /* Half of model window *///     0   /* Don't use flags */// };
#endif // _EI_CLASSIFIER_MODEL_METADATA_H_
?

10. 板卡下載過(guò)程分析

官方Demo中模型下載是個(gè)十分有意思的過(guò)程,我特地分析了他的代碼并且繪制了下面的流程圖。整個(gè)流程分為了兩個(gè)部分,通過(guò)串口RST板子讓板子引導(dǎo)進(jìn)入程序下載模式下載我們的代碼程序,在程序下載成功并且成功運(yùn)行之后延時(shí)一段時(shí)間并且發(fā)送模型下載串口指令,串口相應(yīng)之后就開(kāi)始分塊去搬移模型數(shù)據(jù)(每次搬移1K),在搬移的過(guò)程中不斷的通過(guò)SPI將數(shù)據(jù)寫(xiě)入Flash中。搬移成功之后通過(guò)串口回復(fù)給上位機(jī),上位機(jī)即顯示下載成功。如果有有興趣可以自己去了解下syntiant.cpp文件中的runManagementCommand()函數(shù),系統(tǒng)就是調(diào)用這個(gè)函數(shù)完成了模型的下載。

d07142e8-076a-11ed-ba43-dac502259ad0.png

11. ESP8266 部分代碼

ESP82666 主要是MQTT通信功能的代碼,這里直接將代碼副出:


	
#include <Arduino.h>/*WIFI*/#include <ESP8266WiFi.h>#include <Adafruit_MQTT.h>#include <Adafruit_MQTT_Client.h>/*WIFI參數(shù)*/#define WLAN_SSID "JDCxxxxx89E"#define WLAN_PASS "199xxxxx614"/*服務(wù)器參數(shù)*/#define AIO_SERVER "192.168.68.210"#define AIO_SERVERPORT 1883#define AIO_USERNAME ""#define AIO_KEY ""#define AIO_CID "ESP"WiFiClient client;/*實(shí)例化mqtt設(shè)備*/Adafruit_MQTT_Client mqtt(&client, AIO_SERVER, AIO_SERVERPORT, AIO_CID, AIO_USERNAME, AIO_KEY);/*發(fā)布topic報(bào)文*/Adafruit_MQTT_Publish mqtt_pub1 = Adafruit_MQTT_Publish(&mqtt, "office/sensor1");/*訂閱topic報(bào)文*/Adafruit_MQTT_Subscribe mqtt_sub1 = Adafruit_MQTT_Subscribe(&mqtt, "/feeds", MQTT_QOS_0);static void mqttcallback(char *data, uint16_t len);static void wifi_connect();static void mqtt_init();static void MQTT_connect();void setup(){    Serial.begin(115200);       // 設(shè)置串口波特率為115200    wifi_connect();             //wifi連接    //smartConfig();    mqtt_init();                //mqtt連接初始化}void loop(){    /*MQTT 連接*/    MQTT_connect();    mqtt.processPackets(1000); //獲取主題

    if(digitalRead(14) == LOW)      /*關(guān)閉模式*/    {      mqtt_pub1.publish("0");      Serial.println("0");    }
    if(digitalRead(16) == LOW)      /*開(kāi)啟模式*/    {      mqtt_pub1.publish("1");      Serial.println("1");    }    
    if(digitalRead(15) == LOW)      /*微風(fēng)模式*/    {      mqtt_pub1.publish("2");      Serial.println("2");    }
    if(digitalRead(13) == LOW)      /*大風(fēng)模式*/    {      mqtt_pub1.publish("3");      Serial.println("3");    }
    delay(200);}void smartConfig(){  WiFi.mode(WIFI_STA);  Serial.println("
Wait for Smartconfig");  delay(2000);  // 等待配網(wǎng)  WiFi.beginSmartConfig();  while (1)  {    Serial.print(".");    delay(500);    if (WiFi.smartConfigDone())    {      Serial.println("SmartConfig Success");      Serial.printf("SSID:%s
", WiFi.SSID().c_str());      Serial.printf("PSW:%s
", WiFi.psk().c_str());      WiFi.setAutoConnect(true);  // 設(shè)置自動(dòng)連接      break;    }  }   Serial.println("");  Serial.println("WiFi connected");    Serial.println("IP address: ");  Serial.println(WiFi.localIP());}void wifi_connect(){  Serial.println(F("Adafruit MQTT demo"));  // Connect to WiFi access point.  Serial.println();  Serial.println();  Serial.print("Connecting to ");  Serial.println(WLAN_SSID);
  WiFi.begin(WLAN_SSID, WLAN_PASS);  while (WiFi.status() != WL_CONNECTED)  {    delay(500);    Serial.print(".");  }  Serial.println();  Serial.println("WiFi connected");  Serial.println("IP address: ");  Serial.println(WiFi.localIP());}// Function to connect and reconnect as necessary to the MQTT server.// Should be called in the loop function and it will take care if connecting.void MQTT_connect(){  int8_t ret;
  // Stop if already connected.  if (mqtt.connected())  {    return;  }
  Serial.print("Connecting to MQTT... ");
  uint8_t retries = 3;  while ((ret = mqtt.connect()) != 0)  { // connect will return 0 for connected    Serial.println(mqtt.connectErrorString(ret));    Serial.println("Retrying MQTT connection in 10 seconds...");    mqtt.disconnect();    delay(10000); // wait 10 seconds    retries--;    if (retries == 0)    {      // basically die and wait for WDT to reset me      while (1)        ;    }  }  Serial.println("MQTT Connected!");}void mqtt_init(){  mqtt_sub1.setCallback(mqttcallback);  // Setup MQTT subscription for time feed.  mqtt.subscribe(&mqtt_sub1);  // function definition further below.  MQTT_connect();  mqtt.processPackets(1000);}/** * @brief mqtt接收回調(diào) *  * @param data  * @param len  */void mqttcallback(char *data, uint16_t len){  Serial.print("Hey we're in a onoff callback, the button value is: ");  Serial.println(data);}

總結(jié)

之前一直覺(jué)得TinyML是一個(gè)神秘莫測(cè)十分高大上的東西,通過(guò)這次活動(dòng)對(duì)深度學(xué)習(xí)、TinyML等有了更深刻的了解。恰巧最近公司項(xiàng)目中有一個(gè)需要場(chǎng)景識(shí)別的需求,后續(xù)我也將采用ESP32作為主控嘗試引入TinyML。syntiant NDP101 板卡雖然功能強(qiáng)大,但是受限于資料不完全開(kāi)源,目前我們還是不能了解到其完整的使用方法。希望后續(xù)能開(kāi)放其低層資料,讓大家來(lái)學(xué)習(xí)和使用,畢竟這么強(qiáng)一塊板卡讓更多Geek用起來(lái)才能發(fā)揮其強(qiáng)勁的性能。目前來(lái)看syntiant 的Arduino Demo程序僅僅是一個(gè)框架性質(zhì)的Demo,沒(méi)有辦法真的用于項(xiàng)目,math匹配函數(shù)在實(shí)際運(yùn)行時(shí)候,作為死循環(huán)運(yùn)行在低層,這點(diǎn)對(duì)新手來(lái)說(shuō)十分的不友好,希望后續(xù)官方更進(jìn)一步優(yōu)化Arduino下的代碼框架。

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 空氣凈化器
    +關(guān)注

    關(guān)注

    5

    文章

    414

    瀏覽量

    21518
  • 小米
    +關(guān)注

    關(guān)注

    69

    文章

    14275

    瀏覽量

    142988
  • 語(yǔ)音助手
    +關(guān)注

    關(guān)注

    7

    文章

    235

    瀏覽量

    26761

原文標(biāo)題:Funpack2-1項(xiàng)目分享(1): Syntiant TinyML語(yǔ)音控制空氣凈化器

文章出處:【微信號(hào):xiaojiaoyafpga,微信公眾號(hào):電子森林】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Syntiant TinyML板搭建Edge Impulse模型實(shí)現(xiàn)語(yǔ)音識(shí)別效果

    本次項(xiàng)目用 Syntiant TinyML 開(kāi)發(fā)板自帶的麥克風(fēng),通過(guò) Edge Impulse 搭建機(jī)器學(xué)習(xí)模型,使板卡上的 LED 燈根據(jù)中文語(yǔ)音指令呈現(xiàn)出不同效果。
    發(fā)表于 07-22 09:36 ?1126次閱讀

    語(yǔ)音助手的常見(jiàn)問(wèn)題有哪些?

    語(yǔ)音助手語(yǔ)音識(shí)別、自然語(yǔ)音處理的完美結(jié)合,目前已被廣泛應(yīng)用于生活中,滿(mǎn)足人們對(duì)遠(yuǎn)端操控的需求。語(yǔ)音助手
    發(fā)表于 08-06 08:25

    Pytorch AI語(yǔ)音助手

    想做一個(gè)Pytorch AI語(yǔ)音助手,有沒(méi)有好的思路呀?
    發(fā)表于 03-06 13:00

    什么是TinyML?微型機(jī)器學(xué)習(xí)

    語(yǔ)音檢測(cè)機(jī)器學(xué)習(xí)模型,該模型運(yùn)行在 DSP 上。同樣的情況也適用于其他的虛擬助手。圖2. 喚醒詞應(yīng)用程序的組件來(lái)自哈佛大學(xué)學(xué)生的 TinyML 應(yīng)用程序還包括汽車(chē)高速公路鹿檢測(cè)(目標(biāo)檢測(cè)的一個(gè)例
    發(fā)表于 04-12 10:20

    語(yǔ)音助手哪家強(qiáng)?各家語(yǔ)音助手對(duì)比評(píng)測(cè)

    有媒體稱(chēng),今年的CES其實(shí)就是谷歌與亞馬遜語(yǔ)音助手的競(jìng)爭(zhēng)戰(zhàn)場(chǎng)。這樣的觀點(diǎn)顯然讓其他的“助手們”有點(diǎn)尷尬,那么,真實(shí)的語(yǔ)音助手市場(chǎng)是怎樣的呢?
    發(fā)表于 02-16 03:00 ?2.2w次閱讀

    三大類(lèi)語(yǔ)音助手齊聚手機(jī),語(yǔ)音助手已成為巨頭的較量之地

    通過(guò)觀察2017年手機(jī)出貨量全球前十的公司以及國(guó)內(nèi)的一些手機(jī)廠(chǎng)商,我們發(fā)現(xiàn)手機(jī)助手背后的語(yǔ)音技術(shù)這塊,只有少數(shù)的互聯(lián)網(wǎng)巨頭做的手機(jī)會(huì)自研語(yǔ)音技術(shù),更多的手機(jī)廠(chǎng)商會(huì)采取合作的模式,使用第三方的語(yǔ)
    的頭像 發(fā)表于 04-16 14:21 ?1.4w次閱讀
    三大類(lèi)<b class='flag-5'>語(yǔ)音</b><b class='flag-5'>助手</b>齊聚手機(jī),<b class='flag-5'>語(yǔ)音</b><b class='flag-5'>助手</b>已成為巨頭的較量之地

    語(yǔ)音助手哪個(gè)好用點(diǎn)?五款好用的手機(jī)語(yǔ)音助手評(píng)測(cè)

    語(yǔ)音助手哪個(gè)好用點(diǎn)?小編給大家評(píng)測(cè)一下最常用的五大語(yǔ)音助手,我們來(lái)看看蘋(píng)果/谷歌/微軟/三星/亞馬遜誰(shuí)更厲害?五款語(yǔ)音
    的頭像 發(fā)表于 08-28 11:57 ?13w次閱讀

    語(yǔ)音助手打電話(huà)訂餐廳

    語(yǔ)音助手是一款智能型的手機(jī)應(yīng)用,通過(guò)智能對(duì)話(huà)與即時(shí)問(wèn)答的智能交互,實(shí)現(xiàn)幫忙用戶(hù)解決問(wèn)題,其主要是幫忙用戶(hù)解決生活類(lèi)問(wèn)題。蘋(píng)果手機(jī)中siri開(kāi)創(chuàng)智能語(yǔ)音助手的先河,當(dāng)然中文
    的頭像 發(fā)表于 06-03 06:01 ?2200次閱讀

    OPPOFindX小歐語(yǔ)音助手體驗(yàn) 非常有潛力的交互方式

    很多年前,手機(jī)語(yǔ)音控制就已經(jīng)出現(xiàn)。但由于技術(shù)的缺乏,以往的語(yǔ)音助手還非常“傻”。這兩年,AI和語(yǔ)音識(shí)別技術(shù)發(fā)展迅速,各種語(yǔ)音
    的頭像 發(fā)表于 06-05 14:43 ?5716次閱讀

    Dexter獨(dú)立語(yǔ)音助手開(kāi)源分享

    電子發(fā)燒友網(wǎng)站提供《Dexter獨(dú)立語(yǔ)音助手開(kāi)源分享.zip》資料免費(fèi)下載
    發(fā)表于 06-25 11:08 ?0次下載
    Dexter獨(dú)立<b class='flag-5'>語(yǔ)音</b><b class='flag-5'>助手</b>開(kāi)源分享

    語(yǔ)音數(shù)據(jù)集在智能語(yǔ)音助手中的應(yīng)用與挑戰(zhàn)

    一、引言 隨著智能設(shè)備的普及和人工智能技術(shù)的不斷發(fā)展,智能語(yǔ)音助手已經(jīng)成為人們?nèi)粘I钪胁豢苫蛉钡囊徊糠帧?b class='flag-5'>語(yǔ)音數(shù)據(jù)集在智能語(yǔ)音助手中發(fā)揮著重
    的頭像 發(fā)表于 12-14 15:07 ?637次閱讀

    語(yǔ)音數(shù)據(jù)集在智能語(yǔ)音助手中的應(yīng)用與挑戰(zhàn)

    一、引言 隨著人工智能技術(shù)的不斷發(fā)展,智能語(yǔ)音助手已經(jīng)成為了人們?nèi)粘I钪胁豢苫蛉钡囊徊糠帧?b class='flag-5'>語(yǔ)音數(shù)據(jù)集在智能語(yǔ)音助手中發(fā)揮著重要作用,為系統(tǒng)
    的頭像 發(fā)表于 01-18 15:46 ?287次閱讀

    智能語(yǔ)音助手在醫(yī)療行業(yè)的應(yīng)用與挑戰(zhàn)

    一、引言 隨著人工智能技術(shù)的不斷發(fā)展,智能語(yǔ)音助手在醫(yī)療行業(yè)的應(yīng)用越來(lái)越廣泛。語(yǔ)音數(shù)據(jù)集在醫(yī)療智能語(yǔ)音助手中發(fā)揮著重要作用,為系統(tǒng)提供了豐富
    的頭像 發(fā)表于 01-18 16:41 ?396次閱讀

    智能語(yǔ)音助手在教育行業(yè)的應(yīng)用與挑戰(zhàn)

    一、引言 隨著人工智能技術(shù)的不斷發(fā)展,智能語(yǔ)音助手在教育行業(yè)的應(yīng)用越來(lái)越廣泛。語(yǔ)音數(shù)據(jù)集在教育智能語(yǔ)音助手中發(fā)揮著重要作用,為系統(tǒng)提供了豐富
    的頭像 發(fā)表于 01-19 17:21 ?553次閱讀

    智能語(yǔ)音助手在醫(yī)療行業(yè)的應(yīng)用與挑戰(zhàn)

    一、引言 隨著人工智能技術(shù)的不斷發(fā)展,智能語(yǔ)音助手在醫(yī)療行業(yè)的應(yīng)用越來(lái)越廣泛。語(yǔ)音數(shù)據(jù)集在醫(yī)療智能語(yǔ)音助手中發(fā)揮著重要作用,為系統(tǒng)提供了豐富
    的頭像 發(fā)表于 01-19 17:37 ?453次閱讀