日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

PHP Demo

更新時(shí)間:

本文介紹如何使用阿里云智能語(yǔ)音服務(wù)提供的PHP SDK,包括SDK的安裝方法及SDK代碼示例。

前提條件

  • 使用SDK前,請(qǐng)先閱讀接口說(shuō)明,詳情請(qǐng)參見(jiàn)接口說(shuō)明

  • 已開(kāi)通智能語(yǔ)音交互并獲取AccessKey ID和AccessKey Secret,詳情請(qǐng)參見(jiàn)從這里開(kāi)始

說(shuō)明
  • 本文PHP示例基于阿里云新版PHP SDK(Alibaba Cloud SDK for PHP)開(kāi)發(fā)。如果您已接入阿里云舊版PHP SDK(aliyun-openapi-php-sdk),仍然可以繼續(xù)使用或者更新到新版SDK(推薦)。

  • 后續(xù)錄音文件識(shí)別的PHP示例更新將基于新版PHP SDK。

SDK說(shuō)明

  • 錄音文件識(shí)別的PHP示例使用了阿里云的PHP SDK提交錄音文件識(shí)別請(qǐng)求和查詢識(shí)別結(jié)果,采用RPC風(fēng)格的POP API調(diào)用方式。

  • 關(guān)于阿里云PHP SDK的詳細(xì)介紹,請(qǐng)參見(jiàn)PHP SDK

重要

阿里云PHP SDK適用于PHP的5.5.0或更高版本

安裝PHP SDK

閱讀PHP SDK的安裝方式,詳情請(qǐng)參見(jiàn)安裝Alibaba Cloud SDK for PHP

調(diào)用步驟

  1. 創(chuàng)建一個(gè)全局客戶端。

  2. 設(shè)置請(qǐng)求參數(shù),提交錄音文件識(shí)別請(qǐng)求;處理服務(wù)端返回的響應(yīng),獲取任務(wù)ID,用于后續(xù)的識(shí)別結(jié)果輪詢。

  3. 根據(jù)任務(wù)ID,輪詢識(shí)別結(jié)果。

代碼示例

  • 下載nls-sample-16k.wav。該錄音文件為PCM編碼格式16000Hz采樣率,管控臺(tái)設(shè)置的模型為通用模型;如果使用其他錄音文件,請(qǐng)?zhí)钊雽?duì)應(yīng)的編碼格式和采樣率,并在管控臺(tái)設(shè)置對(duì)應(yīng)的模型,模型設(shè)置請(qǐng)參見(jiàn)管理項(xiàng)目

  • 調(diào)用接口前,需配置環(huán)境變量,通過(guò)環(huán)境變量讀取訪問(wèn)憑證。智能語(yǔ)音交互的AccessKey ID、AccessKey Secret和AppKey的環(huán)境變量名:ALIYUN_AK_IDALIYUN_AK_SECRETNLS_APP_KEY

<?php
require __DIR__ . '/vendor/autoload.php';
use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Client\Exception\ClientException;
use AlibabaCloud\Client\Exception\ServerException;
class NLSFileTrans {
    // 請(qǐng)求參數(shù)
    private const KEY_APP_KEY = "appkey";
    private const KEY_FILE_LINK = "file_link";
    private const KEY_VERSION = "version";
    private const KEY_ENABLE_WORDS = "enable_words";
    // 響應(yīng)參數(shù)
    private const KEY_TASK_ID = "TaskId";
    private const KEY_STATUS_TEXT = "StatusText";
    private const KEY_RESULT = "Result";
    // 狀態(tài)值
    private const STATUS_SUCCESS = "SUCCESS";
    private const STATUS_RUNNING = "RUNNING";
    private const STATUS_QUEUEING = "QUEUEING";
    function submitFileTransRequest($appKey, $fileLink) {
        // 獲取task JSON字符串,包含appkey和file_link參數(shù)等。
        // 新接入請(qǐng)使用4.0版本,已接入(默認(rèn)2.0)如需維持現(xiàn)狀,請(qǐng)注釋掉該參數(shù)設(shè)置。
        // 設(shè)置是否輸出詞信息,默認(rèn)為false,開(kāi)啟時(shí)需要設(shè)置version為4.0。
        $taskArr = array(self::KEY_APP_KEY => $appKey, self::KEY_FILE_LINK => $fileLink, self::KEY_VERSION => "4.0", self::KEY_ENABLE_WORDS => FALSE);
        $task = json_encode($taskArr);
        print $task . "\n";
        try {
            // 提交請(qǐng)求,返回服務(wù)端的響應(yīng)。
            $submitTaskResponse = AlibabaCloud::nlsFiletrans()
                                              ->v20180817()
                                              ->submitTask()
                                              ->withTask($task)
                                              ->request();
            print $submitTaskResponse . "\n";
            // 獲取錄音文件識(shí)別請(qǐng)求任務(wù)的ID,以供識(shí)別結(jié)果查詢使用。
            $taskId = NULL;
            $statusText = $submitTaskResponse[self::KEY_STATUS_TEXT];
            if (strcmp(self::STATUS_SUCCESS, $statusText) == 0) {
                $taskId = $submitTaskResponse[self::KEY_TASK_ID];
            }
            return $taskId;
        } catch (ClientException $exception) {
            // 獲取錯(cuò)誤消息
            print_r($exception->getErrorMessage());
        } catch (ServerException $exception) {
            // 獲取錯(cuò)誤消息
            print_r($exception->getErrorMessage());
        }
    }
    function getFileTransResult($taskId) {
        $result = NULL;
        while (TRUE) {
            try {
                $getResultResponse = AlibabaCloud::nlsFiletrans()
                                                 ->v20180817()
                                                 ->getTaskResult()
                                                 ->withTaskId($taskId)
                                                 ->request();
                print "識(shí)別查詢結(jié)果: " . $getResultResponse . "\n";
                $statusText = $getResultResponse[self::KEY_STATUS_TEXT];
                if (strcmp(self::STATUS_RUNNING, $statusText) == 0 || strcmp(self::STATUS_QUEUEING, $statusText) == 0) {
                    // 繼續(xù)輪詢
                    sleep(10);
                }
                else {
                    if (strcmp(self::STATUS_SUCCESS, $statusText) == 0) {
                        $result = $getResultResponse;
                    }
                    // 退出輪詢
                    break;
                }
            } catch (ClientException $exception) {
                // 獲取錯(cuò)誤消息
                print_r($exception->getErrorMessage());
            } catch (ServerException $exception) {
                // 獲取錯(cuò)誤消息
                print_r($exception->getErrorMessage());
            }
        }
        return $result;
    }
}
$accessKeyId = getenv('ALIYUN_AK_ID');
$accessKeySecret = getenv('ALIYUN_AK_SECRET');
$appKey = getenv('NLS_APP_KEY');
$fileLink = "https://gw.alipayobjects.com/os/bmw-prod/0574ee2e-f494-45a5-820f-63aee583045a.wav";
/**
  * 第一步:設(shè)置一個(gè)全局客戶端。
  * 使用阿里云RAM賬號(hào)的AccessKey ID和AccessKey Secret進(jìn)行鑒權(quán)。
 */
AlibabaCloud::accessKeyClient($accessKeyId, $accessKeySecret)
            ->regionId("cn-shanghai")
            ->asGlobalClient();
$fileTrans = new NLSFileTrans();
/**
  *  第二步:提交錄音文件識(shí)別請(qǐng)求,獲取任務(wù)ID,用于后續(xù)的識(shí)別結(jié)果輪詢。
 */
$taskId = $fileTrans->submitFileTransRequest($appKey, $fileLink);
if ($taskId != NULL) {
    print "錄音文件識(shí)別請(qǐng)求成功,task_id: " . $taskId . "\n";
}
else {
    print "錄音文件識(shí)別請(qǐng)求失敗!";
    return ;
}
/**
  * 第三步:根據(jù)任務(wù)ID輪詢識(shí)別結(jié)果。
 */
$result = $fileTrans->getFileTransResult($taskId);
if ($result != NULL) {
    print "錄音文件識(shí)別結(jié)果查詢成功: " . $result . "\n";
}
else {
    print "錄音文件識(shí)別結(jié)果查詢失敗!";
}