亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目錄
>
將當(dāng)前時(shí)間在特定的位置
>使用api.ai?
>我可以使用其他語音識(shí)別API,wpp?
>提高語音識(shí)別的準(zhǔn)確性在您的PHP應(yīng)用程序中,涉及對(duì)您的API.AI代理進(jìn)行更多的短語和響應(yīng)。代理擁有的數(shù)據(jù)越多,它就越能理解和處理語音輸入。您還可以使用代理商的機(jī)器學(xué)習(xí)功能來不斷地提高其性能。因此,您可以訓(xùn)練代理商以理解和響應(yīng)不同語言的語音輸入。在向代理發(fā)送語音數(shù)據(jù)時(shí),您可以在請(qǐng)求中指定語言。然后,代理將根據(jù)指定的語言處理語音輸入。
>我可以將API.AI用于語音控制的移動(dòng)應(yīng)用程序嗎?但是,您需要將API.AI SDK用于特定的移動(dòng)平臺(tái)(Android或iOS)而不是PHP SDK。移動(dòng)SDK提供了用于捕獲用戶語音輸入并將其發(fā)送到API.AI進(jìn)行處理的方法。
首頁 后端開發(fā) php教程 使用API??.AI的語音控制PHP應(yīng)用

使用API??.AI的語音控制PHP應(yīng)用

Feb 17, 2025 am 10:56 AM

使用API??.AI的語音控制PHP應(yīng)用

在本教程中,我們將研究API.AI,這是一種API,它使我們可以構(gòu)建了解自然語言的應(yīng)用程序,就像Siri一樣。它可以接受文本或語音作為輸入,然后將其解析并返回一個(gè)可以通過我們編寫的代碼來解釋的JSON字符串。

我們將在本教程中使用的所有文件都可以在此GitHub存儲(chǔ)庫中使用。

>

使用API??.AI的語音控制PHP應(yīng)用

鑰匙要點(diǎn)

通過處理文本或語音以及以JSON格式返回可行的數(shù)據(jù),
    api.ai允許開發(fā)人員創(chuàng)建與Siri相似的自然語言輸入的PHP應(yīng)用程序。 API.AI中的關(guān)鍵概念包括代理(應(yīng)用程序),實(shí)體(貨幣等自定義概念),意見(基于用戶命令的操作),上下文(用戶表達(dá)式上下文),別名(代碼中的實(shí)體引用)和域(實(shí)體引用)和域(預(yù)定義的知識(shí)包)。
  • >教程展示了構(gòu)建一個(gè)PHP應(yīng)用程序,使用API??.AI,Google的地理編碼API和TimeZone API在任何位置獲取當(dāng)前時(shí)間,說明了如何將API數(shù)據(jù)集成和轉(zhuǎn)換為可用響應(yīng)。
  • > api.ai的域功能(仍處于beta中),通過提供需要最小設(shè)置的內(nèi)置實(shí)體和意圖來簡化集成,從而可以快速創(chuàng)建諸如視頻搜索(YouTube)的應(yīng)用程序。
  • >
  • >該教程還涵蓋了使用API??.AI創(chuàng)建貨幣轉(zhuǎn)換器PHP應(yīng)用程序,展示如何處理用戶輸入,定義意圖和實(shí)體,并與外部API集成,例如用于實(shí)時(shí)數(shù)據(jù)的CurrencyLayer。
  • api.ai支持多個(gè)平臺(tái)和語言,為開發(fā)人員提供了靈活性,可以在網(wǎng)絡(luò)環(huán)境(包括移動(dòng)和桌面應(yīng)用程序)以外創(chuàng)建支持語音的應(yīng)用程序。
  • 概念
  • 在我們繼續(xù)進(jìn)行實(shí)際部分之前,重要的是要首先了解以下概念:>
代理 - 代理是應(yīng)用。我們創(chuàng)建一個(gè)代理作為分組單個(gè)實(shí)體和意圖的一種手段。

>

實(shí)體 - 實(shí)體是我們要將其納入應(yīng)用程序的自定義概念。他們通過添加示例為特定概念提供了一種賦予特定概念的方式。樣本實(shí)體將是“貨幣”。我們通過添加諸如“美元”,“美元”或“美元”之類的同義詞來定義它。然后將每個(gè)同義詞分配給可以在代碼中使用的參考值。這只是一個(gè)可以用來指代該概念的單詞列表。 API.AI已經(jīng)提供了一些基本實(shí)體,例如 @sys.number,該實(shí)體是指任何數(shù)字的實(shí)體,以及 @sys.email,它是指任何電子郵件地址的實(shí)體。我們可以通過將@SYS指定為前綴來使用內(nèi)置實(shí)體。

  • >

    意圖 - 目的允許我們根據(jù)用戶所說的內(nèi)容來定義程序?qū)?zhí)行哪些操作。樣本意圖是“轉(zhuǎn)換貨幣”。然后,我們列出用戶是否要轉(zhuǎn)換貨幣的所有可能的短語或句子。例如,用戶可以說“ @sys.number:number @currency:@currency in @currency:tocurrency:tocurrency?’在此示例中,我們使用了兩個(gè)實(shí)體: @sys.number和@currency。實(shí)體之后使用結(jié)腸允許我們?yōu)樵搶?shí)體定義一個(gè)別名。然后可以在我們的代碼中使用此別名來獲取實(shí)體的價(jià)值。我們需要給相同的實(shí)體一個(gè)不同的別名,以便我們可以在代碼中分別對(duì)待它們。為了使人類理解上述意圖,我們要做的就是替代具有實(shí)際價(jià)值觀的實(shí)體。因此,用戶可能會(huì)說“日元中的900美元是多少?對(duì)于Tocurrency @currency。

  • 上下文 - 上下文表示用戶表達(dá)式的當(dāng)前上下文。例如,用戶可能會(huì)說“日元55美元?”,然后跟隨“在菲律賓比索中怎么辦?”。在這種情況下,API.AI使用用戶以前所說的“多少55美元”作為第二個(gè)表達(dá)式的上下文。
  • >

    別名 - 別名提供了一種指代代碼中特定實(shí)體的方法,正如我們先前在意圖的解釋中所看到的那樣。

    >
  • 域 - 域是預(yù)定義的知識(shí)包。我們可以將它們視為API.AI中的內(nèi)置實(shí)體和意圖的集合。換句話說,它們是API.AI可以執(zhí)行的技巧,幾乎不需要設(shè)置或編碼。例如,用戶可以說:“在YouTube上查找Pikachu的視頻?!?API.AI已經(jīng)知道如何解析并將“ Pikachu”作為搜索詞返回,而“ YouTube”作為服務(wù)。從那里,我們可以使用返回的數(shù)據(jù)導(dǎo)航到Y(jié)ouTube并搜索“ Pikachu”。在JavaScript中,只是設(shè)置位置的問題。
  • >要為代理使用域,請(qǐng)從控制臺(tái)中選擇代理,然后單擊頂部的域菜單。從那里,啟用領(lǐng)域的知識(shí)庫和成就。請(qǐng)注意,域當(dāng)前處于Beta中,但是您始終可以使用API??控制臺(tái)對(duì)其進(jìn)行測(cè)試。
  • >

    <span>window.location.href = "https://www.youtube.com/results?search_query=pikachu";</span>
  • 啟用域知識(shí)庫可以實(shí)現(xiàn)域功能。實(shí)現(xiàn)履行可以使用第三方服務(wù),例如小談話和天氣。這意味著,如果我們需要與API.AI. 集成的服務(wù),我們無需向特定API提出單獨(dú)的請(qǐng)求。

    將當(dāng)前時(shí)間在特定的位置

    >現(xiàn)在我們對(duì)主要概念有了了解,我們可以繼續(xù)構(gòu)建一個(gè)簡單的應(yīng)用程序。我們要構(gòu)建的第一件事是將當(dāng)前時(shí)間置于特定位置的應(yīng)用。>

    如果您尚未這樣做,請(qǐng)?jiān)贏PI.AI網(wǎng)站上注冊(cè)一個(gè)免費(fèi)帳戶,驗(yàn)證您的電子郵件地址,然后登錄 /登錄您的憑據(jù)。

    >

    接下來,轉(zhuǎn)到代理頁面,并單擊“創(chuàng)建代理”按鈕創(chuàng)建新代理。在創(chuàng)建新代理的頁面中,輸入名稱,描述和語言,然后保存。>

    使用API??.AI的語音控制PHP應(yīng)用>這為您提供了訂閱密鑰,開發(fā)人員訪問令牌和客戶端訪問令牌。您可以使用這些來從客戶端(瀏覽器)或服務(wù)器向API提出請(qǐng)求。從服務(wù)器中提出請(qǐng)求的一個(gè)優(yōu)點(diǎn)是將您的憑據(jù)隱藏。

    > 我們創(chuàng)建的代理將使用域。這意味著我們不需要建立實(shí)體和意圖。我們需要的是兩個(gè)Google API的幫助:地理編碼API和TimeZone API。地理編碼API用于將我們從API.AI獲得的位置轉(zhuǎn)換為坐標(biāo)。然后,我們使用這些坐標(biāo)來查詢時(shí)區(qū)API,以獲取該位置的當(dāng)前時(shí)間。轉(zhuǎn)到您的Google控制臺(tái),啟用時(shí)區(qū)API。地理編碼API不需要提供API鍵,因此我們不需要啟用它。

    接下來,安裝guzzle。我們將使用Guzzle 5向API.AI.

    提出請(qǐng)求。

    然后,創(chuàng)建一個(gè)新的php文件(time.php)并添加以下代碼,以便我們可以使用文件中的guzzle。

    之后,定義您的API鍵:

    <span>window.location.href = "https://www.youtube.com/results?search_query=pikachu";</span>
    自然,在真實(shí)的應(yīng)用中,您可能會(huì)在某種本地配置文件中保留憑據(jù)外面的憑據(jù)。

    我們現(xiàn)在可以向API.AI提出請(qǐng)求。為了提出請(qǐng)求,我們需要將開發(fā)人員訪問令牌和訂閱密鑰作為標(biāo)題傳遞。然后,我們將請(qǐng)求的正文作為JSON傳遞。請(qǐng)求主體應(yīng)包含查詢和lang鍵。查詢通過郵政請(qǐng)求從客戶端提交。該應(yīng)用程序查詢的一個(gè)示例是“西班牙巴塞羅那幾點(diǎn)鐘?”或“目前在日本伊克布庫羅的時(shí)間是多少?”。返回的響應(yīng)是一個(gè)JSON字符串,因此我們通過調(diào)用$響應(yīng)的JSON方法將其轉(zhuǎn)換為數(shù)組。
    <span>composer require guzzlehttp/guzzle:~5.0</span>

    >這是我們?cè)谏鲜稣?qǐng)求時(shí)得到的示例響應(yīng):>
    <span><?php
    </span><span>require 'vendor/autoload.php';
    </span><span>
    </span><span>use GuzzleHttp\Client;
    </span><span>
    </span><span>$client = new Client();</span>

    如果我們獲得200個(gè)狀態(tài)代碼,則意味著請(qǐng)求成功。我們需要的數(shù)據(jù)存儲(chǔ)在結(jié)果項(xiàng)目中。在這種情況下,我們只需要從參數(shù)提取位置。如果未返回位置,那么我們只會(huì)告訴用戶找不到位置。

    <span>window.location.href = "https://www.youtube.com/results?search_query=pikachu";</span>

    如果找到位置,我們向Google Geocoding API提出請(qǐng)求,以將位置轉(zhuǎn)換為坐標(biāo)。如果狀態(tài)可以,這意味著我們得到了結(jié)果。因此,我們只從第一個(gè)結(jié)果提取緯度和經(jīng)度值。

    >
    <span>composer require guzzlehttp/guzzle:~5.0</span>
    接下來,我們將獲得當(dāng)前的UNIX時(shí)間戳。我們將此值與緯度和經(jīng)度一起傳遞,以查詢我們向Google TimeZone API的請(qǐng)求。然后,我們提取可以使用date_default_timezone_set方法臨時(shí)設(shè)置時(shí)區(qū)的TimeZoneID。最后,我們只是將格式的時(shí)間輸出給用戶。

    >

    <span><?php
    </span><span>require 'vendor/autoload.php';
    </span><span>
    </span><span>use GuzzleHttp\Client;
    </span><span>
    </span><span>$client = new Client();</span>
    >讓我們繼續(xù)前往客戶端。創(chuàng)建一個(gè)帶有以下代碼的index.html文件:

    >

    <span>$google_api_key = 'YOUR_GOOGLE_API_KEY';
    </span><span>$apiai_key = 'YOUR_API_AI_AGENT_DEVELOPER_ACCESS_TOKEN';
    </span><span>$apiai_subscription_key = 'YOUR_API_AI_SUBSCRIPTION_KEY';</span>
    我們正在使用jQuery(用于事件處理)和響應(yīng)式voice.js。響應(yīng)式聲音庫使我們能夠?qū)⑽谋巨D(zhuǎn)換為語音。我們用它來說明我們從服務(wù)器獲得的結(jié)果。

    >我們也有語音識(shí)別。JS,我們用于將語音轉(zhuǎn)換為文本。這使用網(wǎng)絡(luò)語音API??杀氖?,在寫作時(shí),它仍然僅在一些瀏覽器上得到部分支持,因此本教程將假定您使用Chrome(確實(shí)支持它)。

    >讓我們解釋以上文件。首先是我們將用來存儲(chǔ)當(dāng)前語音識(shí)別對(duì)象的全局變量。>

    接下來是StarTreagnition方法。這是創(chuàng)建一個(gè)新的語音識(shí)別對(duì)象。這將要求用戶使用麥克風(fēng)。接下來,我們將語言設(shè)置為英語并開始語音識(shí)別。然后,我們聆聽Onstart活動(dòng)。當(dāng)觸發(fā)此事件時(shí),這意味著語音識(shí)別已經(jīng)開始。發(fā)生這種情況時(shí),我們調(diào)用Updaterec方法,該方法更改了按鈕的文本,以啟動(dòng)和停止語音識(shí)別。我們還聆聽on Result事件,當(dāng)用戶停止講話幾秒鐘時(shí),該事件會(huì)觸發(fā)。這包含語音識(shí)別的結(jié)果。我們必須循環(huán)瀏覽結(jié)果,并在每個(gè)結(jié)果中使用成績單項(xiàng)來獲取所需的文本。完成此操作后,我們調(diào)用SETINPUT方法,該方法更改查詢文本字段的值,并調(diào)用將查詢提交到服務(wù)器的發(fā)送方法。接下來,我們稱之為停止語音識(shí)別并更新UI的停止認(rèn)知方法。我們還需要在ONEND事件中進(jìn)行同樣的事情。

    >
    <span>$query = $_POST['query']; //the users query
    </span><span>
    </span><span>$response = $client->post('https://api.api.ai/v1/query', array(
    </span><span>    'headers' => array(
    </span><span>        'Authorization' => "Bearer {$apiai_key}",
    </span><span>        'ocp-apim-subscription-key' => $apiai_subscription_key,
    </span><span>        'Content-Type' => 'application/json; charset=utf-8'
    </span><span>    ),
    </span><span>    'json' => array(
    </span><span>        "query" => $query,
    </span><span>        "lang" => "en"
    </span><span>    )
    </span><span>));
    </span><span>
    </span><span>$result = $response->json();</span>

    這是Updaterec方法。

    >
    Array
    (
        [id] => eb69f468-6e1a-41c9-883d-6ac7c71cd187
        1739117986 => 2015-05-16T09:19:47.519Z
        [result] => Array
            (
                [source] => domains
                [resolvedQuery] => What's the current time in Barcelona Spain?
                [speech] => 
                [action] => clock.time
                [parameters] => Array
                    (
                        [location] => Barcelona Spain
                    )
    
                [metadata] => Array
                    (
                        [inputContexts] => Array
                            (
                            )
    
                        [outputContexts] => Array
                            (
                            )
    
                        [contexts] => Array
                            (
                            )
    
                    )
    
            )
    
        [status] => Array
            (
                [code] => 200
                [errorType] => success
            )
    
    )

    setInput方法。

    <span>if(!empty($result['result']) && !empty($result['result']['parameters']['location'])){
    </span><span>    $location = $result['result']['parameters']['location'];
    </span><span>
    </span><span>}else{
    </span><span>    echo "Sorry, I could not find that location.";
    </span><span>}</span>

    >停止認(rèn)知方法。

    <span>$place_response = $client->get("http://maps.googleapis.com/maps/api/geocode/json?address={$location}&sensor=false");
    </span><span>
    </span><span>$place_result = $place_response->json();
    </span><span>
    </span><span>if($place_result['status'] == 'OK'){
    </span><span>
    </span><span>    $lat = $place_result['results'][0]['geometry']['location']['lat'];
    </span><span>    $lng = $place_result['results'][0]['geometry']['location']['lng'];
    </span><span>}</span>
    除此之外,我們還擁有SwitchRevention方法,每當(dāng)用戶單擊按鈕以觸發(fā)語音識(shí)別以開始或停止時(shí)。

    用戶按查詢字段上的Enter鍵時(shí),這也觸發(fā)要發(fā)送到服務(wù)器的查詢。
    <span>$timestamp = time(); //get the current unix timestamp
    </span><span>
    </span><span>$time_response = $client->get("https://maps.googleapis.com/maps/api/timezone/json?location={$lat},{$lng}&timestamp={$timestamp}&key={$google_api_key}");
    </span><span>
    </span><span>$time_result = $time_response->json();
    </span><span>
    </span><span>if($time_result['status'] == 'OK'){
    </span><span>    $timezone = $time_result['timeZoneId'];
    </span><span>
    </span><span>    date_default_timezone_set($timezone);
    </span><span>
    </span><span>    echo 'It's currently ' . date('l, F j, Y g:i A') . ' in ' . $location;
    </span><span>}</span>
    >
    <span>window.location.href = "https://www.youtube.com/results?search_query=pikachu";</span>

    語音cognition.js文件中的大多數(shù)代碼來自該要旨,該要點(diǎn)顯示了如何在客戶端上使用api.ai的示例。

    下一步是我們向服務(wù)器提交查詢的main.js文件。一旦得到響應(yīng),我們就會(huì)使用響應(yīng)式聲音將其說出來,并將其輸出在響應(yīng)容器中。這樣,我們可以從視覺上檢查響應(yīng)。
    <span>composer require guzzlehttp/guzzle:~5.0</span>
    >

    貨幣轉(zhuǎn)換器

    我們將要構(gòu)建的下一個(gè)應(yīng)用程序允許用戶將特定金額從一種貨幣轉(zhuǎn)換為另一種貨幣。

    首先,創(chuàng)建一個(gè)新代理并稱其為貨幣轉(zhuǎn)換器。

    使用API??.AI的語音控制PHP應(yīng)用

    在該代理下,創(chuàng)建一個(gè)新實(shí)體并將其稱為貨幣。這將代表我們可以轉(zhuǎn)換的不同貨幣。定義一些我們可以用于測(cè)試的貨幣,然后單擊“保存”。

    >

    使用API??.AI的語音控制PHP應(yīng)用

    接下來創(chuàng)建一個(gè)新意圖并將其稱為ConvertMoney。

    使用API??.AI的語音控制PHP應(yīng)用

    從上面的屏幕截圖中,您可以看到我們?cè)凇坝脩粽f”部分下添加了以下內(nèi)容:

    >

    <span><?php
    </span><span>require 'vendor/autoload.php';
    </span><span>
    </span><span>use GuzzleHttp\Client;
    </span><span>
    </span><span>$client = new Client();</span>
    “用戶說”部分是我們定義用戶所說的示例以觸發(fā)此特定意圖的示例。我們?cè)谶@里做的是將實(shí)體用作用戶可能使用的實(shí)際值的替代。 @sys.number可以參考任何數(shù)字。 @Currency可以指我們創(chuàng)建貨幣實(shí)體時(shí)先前添加的任何貨幣。實(shí)體后使用結(jié)腸使我們可以為其分配一個(gè)別名。然后可以使用此別名來獲取用戶在代碼中使用的值。

    >。

    “動(dòng)作”部分是我們定義要執(zhí)行此特定意圖的操作或方法的地方。在這種情況下,我們不會(huì)定義任何內(nèi)容,因?yàn)槲覀冎皇莿?chuàng)建一個(gè)只能做一件事的應(yīng)用程序。

    >

    >“履行”部分是我們?cè)谑褂靡鈭D后要輸出的語音模板定義模板。例如,我們可以說以下內(nèi)容:

    <span>$google_api_key = 'YOUR_GOOGLE_API_KEY';
    </span><span>$apiai_key = 'YOUR_API_AI_AGENT_DEVELOPER_ACCESS_TOKEN';
    </span><span>$apiai_subscription_key = 'YOUR_API_AI_SUBSCRIPTION_KEY';</span>
    >在我們獲得的結(jié)果中,這將在語音項(xiàng)目上可用。從那里,我們可以執(zhí)行替換字符串,以將這些變量替換為我們獲得的實(shí)際值。但是,讓我們把它作為空白的這個(gè)應(yīng)用程序。

    >完成后,單擊“保存”按鈕以保存意圖。

    >

    >現(xiàn)在我們準(zhǔn)備繼續(xù)進(jìn)行代碼。然后,在工作目錄中創(chuàng)建一個(gè)Exchange-rate.php文件,添加以下代碼:>
    <span>window.location.href = "https://www.youtube.com/results?search_query=pikachu";</span>
    從上面的代碼中可以看到

    >,它基本上與我們?cè)谏弦粋€(gè)應(yīng)用程序中的早期相同。只有這一次,我們添加了$ CurrencyLayer_Apikey變量。這將存儲(chǔ)我們從CurrencyLayer.com獲得的API密鑰,這是一種API,它使我們能夠從一種貨幣到另一種貨幣獲得當(dāng)前的匯率。如果您想跟進(jìn),請(qǐng)繼續(xù)注冊(cè)API鍵。

    > 接下來,我們檢查是否有任何結(jié)果,并提取所需的數(shù)據(jù)。在這種情況下,我們需要獲取用戶希望轉(zhuǎn)換的貨幣,將其轉(zhuǎn)換為金額的貨幣。

    然后,我們向API提出請(qǐng)求,然后從結(jié)果中提取匯率:>
    <span>composer require guzzlehttp/guzzle:~5.0</span>

    我們從API中獲得的結(jié)果如下:

    <span><?php
    </span><span>require 'vendor/autoload.php';
    </span><span>
    </span><span>use GuzzleHttp\Client;
    </span><span>
    </span><span>$client = new Client();</span>

    >現(xiàn)在我們有了當(dāng)前的匯率,我們現(xiàn)在要做的就是將速率乘以用戶提供的數(shù)量,然后輸出結(jié)果。>

    <span>$google_api_key = 'YOUR_GOOGLE_API_KEY';
    </span><span>$apiai_key = 'YOUR_API_AI_AGENT_DEVELOPER_ACCESS_TOKEN';
    </span><span>$apiai_subscription_key = 'YOUR_API_AI_SUBSCRIPTION_KEY';</span>
    在客戶端,我們?nèi)匀皇褂门c第一個(gè)應(yīng)用程序上早期使用的相同的HTML和文件。如果您關(guān)注的話,您可以繼續(xù)將相同的文件放入工作目錄中。

    >

    <span>$query = $_POST['query']; //the users query
    </span><span>
    </span><span>$response = $client->post('https://api.api.ai/v1/query', array(
    </span><span>    'headers' => array(
    </span><span>        'Authorization' => "Bearer {$apiai_key}",
    </span><span>        'ocp-apim-subscription-key' => $apiai_subscription_key,
    </span><span>        'Content-Type' => 'application/json; charset=utf-8'
    </span><span>    ),
    </span><span>    'json' => array(
    </span><span>        "query" => $query,
    </span><span>        "lang" => "en"
    </span><span>    )
    </span><span>));
    </span><span>
    </span><span>$result = $response->json();</span>
    >唯一的區(qū)別是我們發(fā)送請(qǐng)求的URL。將其指向您的Exchange-rate.php的位置:

    >

    Array
    (
        [id] => eb69f468-6e1a-41c9-883d-6ac7c71cd187
        1739117986 => 2015-05-16T09:19:47.519Z
        [result] => Array
            (
                [source] => domains
                [resolvedQuery] => What's the current time in Barcelona Spain?
                [speech] => 
                [action] => clock.time
                [parameters] => Array
                    (
                        [location] => Barcelona Spain
                    )
    
                [metadata] => Array
                    (
                        [inputContexts] => Array
                            (
                            )
    
                        [outputContexts] => Array
                            (
                            )
    
                        [contexts] => Array
                            (
                            )
    
                    )
    
            )
    
        [status] => Array
            (
                [code] => 200
                [errorType] => success
            )
    
    )
    結(jié)論

    在本教程中,我們學(xué)會(huì)了如何使用API??.AI來創(chuàng)建啟用語音的PHP應(yīng)用程序。瀏覽器支持仍然非常有限,因?yàn)榫W(wǎng)絡(luò)語音API仍未得到廣泛實(shí)現(xiàn)。但是API.AI支持除Web之外的其他平臺(tái)。 Android,Cordova,.net,iOS就是幾個(gè)例子。這意味著我們可以使用API??.AI,而不必?fù)?dān)心這些平臺(tái)上的支持。如果您想了解更多信息,請(qǐng)務(wù)必查看他們的文檔。我們?cè)诒窘坛讨惺褂玫奈募稍诖薌itHub存儲(chǔ)庫中可用。>

    <span>if(!empty($result['result']) && !empty($result['result']['parameters']['location'])){
    </span><span>    $location = $result['result']['parameters']['location'];
    </span><span>
    </span><span>}else{
    </span><span>    echo "Sorry, I could not find that location.";
    </span><span>}</span>
    在語音控制的php應(yīng)用程序上的常見問題(常見問題解答)api.ai

    >

    >如何將API.AI與PHP集成以進(jìn)行語音識(shí)別?

    >將API.AI與PHP集成以進(jìn)行語音識(shí)別涉及幾個(gè)步驟。首先,您需要在API.AI中創(chuàng)建一個(gè)新代理。該代理將負(fù)責(zé)了解用戶的語音輸入并將其轉(zhuǎn)換為可行的數(shù)據(jù)。創(chuàng)建代理后,您需要用短語和響應(yīng)來訓(xùn)練它。培訓(xùn)代理后,您可以使用API??.AI PHP SDK將代理集成到您的PHP應(yīng)用程序中。 SDK提供了將語音數(shù)據(jù)發(fā)送給代理并接收處理后數(shù)據(jù)的方法。>

    >使用api.ai?

    構(gòu)建語音控制的PHP應(yīng)用程序的先決條件是什么,使用API??.AI構(gòu)建語音控制的PHP應(yīng)用 - 面向編程。您還需要對(duì)API.AI及其工作方式有工作知識(shí)。此外,您需要擁有可以托管PHP應(yīng)用程序的服務(wù)器。最后,您需要在服務(wù)器上安裝API.AI php SDK。

    >我可以使用其他語音識(shí)別API,wpp?

    是的,您可以使用帶有PHP的其他語音識(shí)別API 。 API.AI的一些流行替代方案包括IBM Watson,Microsoft Azure認(rèn)知服務(wù)和Google Cloud語音到文本。這些API還提供了可以用來將其集成到PHP應(yīng)用程序中的PHP SDK。

    >

    >如何在PHP應(yīng)用程序中提高語音識(shí)別的準(zhǔn)確性?

    >提高語音識(shí)別的準(zhǔn)確性在您的PHP應(yīng)用程序中,涉及對(duì)您的API.AI代理進(jìn)行更多的短語和響應(yīng)。代理擁有的數(shù)據(jù)越多,它就越能理解和處理語音輸入。您還可以使用代理商的機(jī)器學(xué)習(xí)功能來不斷地提高其性能。因此,您可以訓(xùn)練代理商以理解和響應(yīng)不同語言的語音輸入。在向代理發(fā)送語音數(shù)據(jù)時(shí),您可以在請(qǐng)求中指定語言。然后,代理將根據(jù)指定的語言處理語音輸入。

    >我可以在我的php應(yīng)用程序中使用api.ai進(jìn)行文本到語音嗎? AI用于PHP應(yīng)用程序中的文本到語音。 API.AI提供了將文本轉(zhuǎn)換為語音的方法。您可以使用這些方法使您的應(yīng)用程序向用戶說出響應(yīng)或說明。

    >如何在PHP應(yīng)用程序中保護(hù)語音數(shù)據(jù)?

    >在PHP應(yīng)用中保護(hù)語音數(shù)據(jù)在將數(shù)據(jù)發(fā)送到API.AI之前,涉及對(duì)數(shù)據(jù)進(jìn)行加密。您可以使用PHP的內(nèi)置加密功能來加密數(shù)據(jù)。此外,您應(yīng)該將https用于應(yīng)用程序和api.ai之間的所有通信以防止數(shù)據(jù)截距。

    >

    >我可以將api.ai用于語音控制的Web應(yīng)用程序嗎?使用API??.AI進(jìn)行語音控制的Web應(yīng)用程序。 API.AI PHP SDK可用于任何PHP應(yīng)用程序,包括Web應(yīng)用程序。您可以使用JavaScript在瀏覽器中捕獲用戶的語音輸入,然后將其發(fā)送到您的PHP后端進(jìn)行處理。

    >

    >如何測(cè)試我的PHP應(yīng)用程序的語音識(shí)別功能?可以通過創(chuàng)建一組測(cè)試短語和響應(yīng)來測(cè)試PHP應(yīng)用程序的語音識(shí)別功能。然后,您可以使用這些測(cè)試來檢查應(yīng)用程序是否正確理解和處理語音輸入。

    >我可以將API.AI用于語音控制的移動(dòng)應(yīng)用程序嗎?但是,您需要將API.AI SDK用于特定的移動(dòng)平臺(tái)(Android或iOS)而不是PHP SDK。移動(dòng)SDK提供了用于捕獲用戶語音輸入并將其發(fā)送到API.AI進(jìn)行處理的方法。

    以上是使用API??.AI的語音控制PHP應(yīng)用的詳細(xì)內(nèi)容。更多信息請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

    本站聲明
    本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請(qǐng)聯(lián)系admin@php.cn

    熱AI工具

    Undress AI Tool

    Undress AI Tool

    免費(fèi)脫衣服圖片

    Undresser.AI Undress

    Undresser.AI Undress

    人工智能驅(qū)動(dòng)的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

    AI Clothes Remover

    AI Clothes Remover

    用于從照片中去除衣服的在線人工智能工具。

    Clothoff.io

    Clothoff.io

    AI脫衣機(jī)

    Video Face Swap

    Video Face Swap

    使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

    熱工具

    記事本++7.3.1

    記事本++7.3.1

    好用且免費(fèi)的代碼編輯器

    SublimeText3漢化版

    SublimeText3漢化版

    中文版,非常好用

    禪工作室 13.0.1

    禪工作室 13.0.1

    功能強(qiáng)大的PHP集成開發(fā)環(huán)境

    Dreamweaver CS6

    Dreamweaver CS6

    視覺化網(wǎng)頁開發(fā)工具

    SublimeText3 Mac版

    SublimeText3 Mac版

    神級(jí)代碼編輯軟件(SublimeText3)

    PHP變量范圍解釋了 PHP變量范圍解釋了 Jul 17, 2025 am 04:16 AM

    PHP變量作用域常見問題及解決方法包括:1.函數(shù)內(nèi)部無法訪問全局變量,需使用global關(guān)鍵字或參數(shù)傳入;2.靜態(tài)變量用static聲明,只初始化一次并在多次調(diào)用間保持值;3.超全局變量如$_GET、$_POST可在任何作用域直接使用,但需注意安全過濾;4.匿名函數(shù)需通過use關(guān)鍵字引入父作用域變量,修改外部變量則需傳遞引用。掌握這些規(guī)則有助于避免錯(cuò)誤并提升代碼穩(wěn)定性。

    如何在PHP中牢固地處理文件上傳? 如何在PHP中牢固地處理文件上傳? Jul 08, 2025 am 02:37 AM

    要安全處理PHP文件上傳需驗(yàn)證來源與類型、控制文件名與路徑、設(shè)置服務(wù)器限制并二次處理媒體文件。1.驗(yàn)證上傳來源通過token防止CSRF并通過finfo_file檢測(cè)真實(shí)MIME類型使用白名單控制;2.重命名文件為隨機(jī)字符串并根據(jù)檢測(cè)類型決定擴(kuò)展名存儲(chǔ)至非Web目錄;3.PHP配置限制上傳大小及臨時(shí)目錄Nginx/Apache禁止訪問上傳目錄;4.GD庫重新保存圖片清除潛在惡意數(shù)據(jù)。

    在PHP中評(píng)論代碼 在PHP中評(píng)論代碼 Jul 18, 2025 am 04:57 AM

    PHP注釋代碼常用方法有三種:1.單行注釋用//或#屏蔽一行代碼,推薦使用//;2.多行注釋用/.../包裹代碼塊,不可嵌套但可跨行;3.組合技巧注釋如用/if(){}/控制邏輯塊,或配合編輯器快捷鍵提升效率,使用時(shí)需注意閉合符號(hào)和避免嵌套。

    發(fā)電機(jī)如何在PHP中工作? 發(fā)電機(jī)如何在PHP中工作? Jul 11, 2025 am 03:12 AM

    AgeneratorinPHPisamemory-efficientwaytoiterateoverlargedatasetsbyyieldingvaluesoneatatimeinsteadofreturningthemallatonce.1.Generatorsusetheyieldkeywordtoproducevaluesondemand,reducingmemoryusage.2.Theyareusefulforhandlingbigloops,readinglargefiles,or

    撰寫PHP評(píng)論的提示 撰寫PHP評(píng)論的提示 Jul 18, 2025 am 04:51 AM

    寫好PHP注釋的關(guān)鍵在于明確目的與規(guī)范,注釋應(yīng)解釋“為什么”而非“做了什么”,避免冗余或過于簡單。1.使用統(tǒng)一格式,如docblock(/*/)用于類、方法說明,提升可讀性與工具兼容性;2.強(qiáng)調(diào)邏輯背后的原因,如說明為何需手動(dòng)輸出JS跳轉(zhuǎn);3.在復(fù)雜代碼前添加總覽性說明,分步驟描述流程,幫助理解整體思路;4.合理使用TODO和FIXME標(biāo)記待辦事項(xiàng)與問題,便于后續(xù)追蹤與協(xié)作。好的注釋能降低溝通成本,提升代碼維護(hù)效率。

    快速PHP安裝教程 快速PHP安裝教程 Jul 18, 2025 am 04:52 AM

    ToinstallPHPquickly,useXAMPPonWindowsorHomebrewonmacOS.1.OnWindows,downloadandinstallXAMPP,selectcomponents,startApache,andplacefilesinhtdocs.2.Alternatively,manuallyinstallPHPfromphp.netandsetupaserverlikeApache.3.OnmacOS,installHomebrew,thenrun'bre

    如何通過php中的索引訪問字符串中的字符 如何通過php中的索引訪問字符串中的字符 Jul 12, 2025 am 03:15 AM

    在PHP中獲取字符串特定索引字符可用方括號(hào)或花括號(hào),但推薦方括號(hào);索引從0開始,超出范圍訪問返回空值,不可賦值;處理多字節(jié)字符需用mb_substr。例如:$str="hello";echo$str[0];輸出h;而中文等字符需用mb_substr($str,1,1)獲取正確結(jié)果;實(shí)際應(yīng)用中循環(huán)訪問前應(yīng)檢查字符串長度,動(dòng)態(tài)字符串需驗(yàn)證有效性,多語言項(xiàng)目建議統(tǒng)一使用多字節(jié)安全函數(shù)。

    學(xué)習(xí)PHP:初學(xué)者指南 學(xué)習(xí)PHP:初學(xué)者指南 Jul 18, 2025 am 04:54 AM

    易于效率,啟動(dòng)啟動(dòng)tingupalocalserverenverenvirestoolslikexamppandacodeeditorlikevscode.1)installxamppforapache,mysql,andphp.2)uscodeeditorforsyntaxssupport.3)

    See all articles