网络赚钱平台

    科大訊飛開放性服務平臺 AIKit HarmonyOS SDK 應用方案

    SDK Version: 1.0.0-beta1 Updated: 2020.10.15

    # 1. 概述

    尊敬的開發者朋友,歡迎您選擇科大訊飛開放平臺。本文檔旨在幫助HarmonyOS 應用開發者在程序中快速接入AIKit HarmonyOS SDK。作為開發者,您只需要進行簡單配置,就可以在您的應用中使用AIKit提供的各種AI能力。
    關于SDK的具體使用方法,請仔細閱讀下面的文檔。

    # 2. 集成說明

    # 2.1 術語介紹

    • APPID:應用 ID,請在http://teknisi-computer.com/中注冊成為開發者并創建一款應用,您將獲得標識您應用的唯一ID。
    • APIKey:訪問网络赚钱平台端能力需要提供的參數。
    • APISercet:訪問网络赚钱平台端能力需要提供的參數。

    # 2.2 導入SDK依賴包

    • aikit.har 復制到Module的libs文件夾(沒有的話須手動創建), 并將以下代碼添加到您Module的build.gradle中:
    depedencies {
        implementation fileTree(dir: 'libs', include: ['*.jar', '*.har'])
    }
    

    # 2.3 權限聲明

    權限 用途
    INTERNET 允許程序聯網的權限
    MICROPHONE 允許應用檢測網絡連接狀態
    限權系統配置請選取HarmonyOS 關于幼兒園限權的用具體指導,編碼實例:
    "reqPermissions": [
          {
            "name": "harmonyos.permission.INTERNET",
            "reason": "the app need internet"
          },
          {
            "name": "harmonyos.permission.MICROPHONE",
            "reason": "the app need microphone",
            "usedScene": {
              "ability": [
                "ccom.iflytek.aiaa.MainAbility"
              ],
              "when": "always"
            }
          }
        ]
    

    # 2.4 SDK初始化

    # 2.4.1 初始化SDK

    默認化即加入語音系統硬件配置項目,就默認化后才可不可以適用AIKit的四項產品。默認化編碼有以下幾點:
    // 初始值化時 將 appid、apikey 和 apisecret 傳到
      SpeechUtility.getInstance().init(getContext(),
                    "xxxxx", // appid
                    "xxxxx", // apikey
                    "xxxxx" // apisecret
                    );
    

    # 2.4.2 參數設置

    默認化參數設置說方式表
    參數Key 名稱 是否必傳
    context 鴻蒙系統的 Context Y
    APPID 應用id Y
    APIKEY API Key Y
    APISERCET API密鑰 Y

    # 2.5 語音聽寫

    表達聽寫,是源于肯定表達治理,將肯定表達音頻切換為文本格式傷害的技術應用。

    # 2.5.1 音頻文件語音識別

    使用SpeechUtility.getInstance().voiceRecognize()方法,參考代碼如下:

       /**
         * 音頻視頻文書轉文案 將開放包中的mp3轉成文
         */
        private void audioFiles2String() {
            try {
                // 獲取一個工程中的 檢驗的音頻軟件
                String mp3Path = "resources/rawfile/test.mp3";
                RawFileEntry rawFileEntry = getContext().getResourceManager().getRawFileEntry(mp3Path);
                Resource resource = rawFileEntry.openRawFile();
                // 組建微信語音聽寫基本參數類:IatParam
                IatParam iatParam = new IatParam();
                // 設定雙聲道文件目錄的格式文件 
                iatParam.setEncoding(IatParam.Encoding.lame);           
                SpeechUtility instance = SpeechUtility.getInstance();
                // 開使語音說話自動識別
                 instance.voiceRecognize(iatParam, resource, new ResultCallBack<IatResult>() {
                    @Override
                    public void onResult(IatResult result) {
                      // 得到 數據資料回掉 需要注意 選股在子線程制定
                      handler.postTask(() -> {
                          String s = CommonResultParser.parseIatResult(result.getData());
                          textField.append(s);
                        });
                    }
                });
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    

    # 2.5.2 錄音并識別

    使用錄音功能需要先在Ability類中動態申請"harmonyos.permission.MICROPHONE"權限,參考代碼如下:

    if (verifySelfPermission("harmonyos.permission.MICROPHONE") != IBundleManager.PERMISSION_GRANTED) {
        // 廣泛應用未被獲取管理員權限
        if (canRequestPermission("harmonyos.permission.MICROPHONE")) {
            // 能不能需要申批彈框代理權(第一次 申批并且用戶賬戶未選擇阻止且不需要顯示系統)
            requestPermissionsFromUser(new String[]{"harmonyos.permission.MICROPHONE"},
                    REQUEST_MICROPHONE);
        } else {
            // 顯視軟件應用都要權限管理的緣由,顯示信息用戶名進去設備權限
        }
    } else {
        // 授權已被發放
    }
    
    通話錄音識別圖片可以參考代碼怎么用以下:
       /**
         * 逐漸開始錄音功能
         */
        private void startRecord() {
            // 使用語音說話聽寫性能類:IatParam
            IatParam iatParam = new IatParam();
            iatParam.setEncoding(IatParam.Encoding.raw);
            SpeechUtility.getInstance().startRecord(iatParam, new ResultCallBack<IatResult>() {
                @Override
                public void onResult(IatResult result) {
                   // 添加資料回掉 還要注意 乖離率指標在子線程制定
                      handler.postTask(() -> {
                          String s = CommonResultParser.parseIatResult(result.getData());
                          textField.append(s);
                        });
                }
            });
        }
    
        /**
         * 終止通話錄音
         */
        private void stopRecord() {
            SpeechUtility.getInstance().stopRecord();
        }
    

    # 2.5.3 參數設置

    語音聽寫參數類 IatParam 支持設置的參數見下表:

    參數名稱 數據類型 名稱 是否必須 說明
    encoding string 音頻格式 Y 目前僅支持“ lame” 、“raw ”,mp3文件請使用“ lame”,pcm輸入時使用 “raw ”
    ptt int 是否開啟標點識別 N 0:不開啟標點識別, 1:開啟標點識別,默認不開啟
    nunum int 是否把中文數字轉換成阿拉伯數字 N 0:關閉, 1:開啟 默認關閉
    dwa string pgs N 最小長度:0, 最大長度:10
    evl int engine vad link N 0:關, 1:開啟
    proc int 是否使用后處理 N 0:關, 1:開
    nbest int 句子級別多候選個數 N 最小值:0, 最大值:5
    wbest int 詞級別多候選個數 N 最小值:0, 最大值:5
    pvinfo int 在 pgs 結果中展示vad信息 N 0:關, 1:開
    aqc int aqc N 0:關, 1:開
    ltc int 中英文篩選功能 N 最小值:0, 最大值:3
    vad_enable bool 使能VAD N true/false
    vad_eos int 后端點 N 最小值:0, 最大值:60000,當vad_enable為true時有效
    vrto int vad前置端點超時時間 N 最小值:0, 最大值:60000

    # 2.5.4 結果解析

    JSON字段 英文全稱 類型 說明
    sn sentence number 第幾句
    ls last sentence boolean 是否最后一句
    bg begin number 保留字段,無需關注
    ed end number 保留字段,無需關注
    ws words array
    cw chinese word array 中文分詞
    w word string 單字
    sc score number 分數
    {
        "sn": 1,
        "ls": true,
        "bg": 0,
        "ed": 0,
        "ws": [
            {
                "bg": 0,
                "cw": [
                    {
                        "w": "這里",
                        "sc": 0
                    }
                ]
            },
            {
                "bg": 0,
                "cw": [
                    {
                        "w": "的",
                        "sc": 0
                    }
                ]
            },
            {
                "bg": 0,
                "cw": [
                    {
                        "w": "氣溫",
                        "sc": 0
                    }
                ]
            },
            {
                "bg": 0,
                "cw": [
                    {
                        "w": "咋個樣",
                        "sc": 0
                    }
                ]
            },
            {
                "bg": 0,
                "cw": [
                    {
                        "w": "。",
                        "sc": 0
                    }
                ]
            }
        ]
    }
    

    # 2.6 語音合成

    與語音聽寫相反,語音合成是將一段文字轉換為語音,可根據需要合成出不同音色、語速和語調的聲音,讓機器像人一樣開口說話。文字格式為“utf8”。

    # 2.6.1 接口說明

    語音合成使用SpeechSynthesizer接口,示例代碼如下

       /**
         * 就開始制成
         */
        private void startTts() {
           
            String stringSource = "那段話將被分解為語音聊天";
            // 保持個臨時檔案檔案保持分解的信息
            File externalCacheDir = getContext().getExternalCacheDir();
            File file = new File(externalCacheDir, "tts_test.mp3");
            if (file.exists()) {
                file.delete();
            }
            SpeechUtility instance = SpeechUtility.getInstance();
            TtsParam ttsParam = new TtsParam();
            instance.voiceSynthesise(ttsParam, stringSource, new ResultCallBack<TtsResult>() {
                        @Override
                        public void onResult(TtsResult result) {
                            // 提高數據資料回掉 要留意 乖離率指標在子線程審理
                            // result.getData() 為提煉的語音聊天數值
                            FileUtil.append(file, result.getData());
                            // 合并之后
                            if (result.getStatus() == SpeechUtility.StatusCode.END) {
                                handler.postTask(() -> showToast("合并之后"));
                                // 已經錄制
                                playMp3(file);
                            }
                        }
                    }
            );
        }
    
        /**
         * 播放軟件音視頻
         *
         * @param file 源zip文件
         */
        private void playMp3(File file) {
            try {
                Player player = new Player(getContext());
                FileInputStream in = new FileInputStream(file);
                // 從設置流調用FD的對象
                FileDescriptor fd = in.getFD();
                Source source = new Source(fd);
                player.setSource(source);
                player.prepare();
                player.play();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
    

    # 2.6.2 參數設置

    語音合成參數類 TtsParam支持設置的參數見下表:

    參數名稱 數據類型 名稱 是否必須 說明
    encoding string 輸出音頻格式 N 目前僅支持“ lame” (mp3文件)
    speed int 合成語速 N 默認50,取值范圍:[0-100]
    volume int 合成音量 N 默認50,取值范圍:[0-100]
    pitch int 合成語調 N 默認50,取值范圍:[0-100]
    sample_rate int 采樣率 N 暫時只支持16000
    channels int 聲道數 N 可選值1,2.默認值1
    bit_depth int 位深 N 8,16默認值16
    vcn string 發音人 N 可選值x2_lzy:x2_lzy, x2_chongchong:x2_chongchong, x2_yifei:x2_yifei, x2_xiaopei:x2_xiaopei, x2_xiaoyuan:x2_xiaoyuan

    # 2.6.3 結果解析

    SDK跳轉轉化成然而為轉化成音頻文件參數,可內存到File中,如果用Player觀看器觀看。

    # 3. 接口說明:

    # 3.1 SpeechUtility類

    絕對路徑 com.iflytek.cloud
    • # getInstance

      public static SpeechUtility getInstance()
      
      有個選配單例
      • 返回:

        SpeechUtility
    • # init

      public void init(harmonyos.app.Context context,
                       java.lang.String appId,
                       java.lang.String apiKey,
                       java.lang.String apiSecret)
      
      初期化
      • 參數:

        context - context

        appId - appId

        apiKey - apiKey

        apiSecret - apiSecret

    • # voiceRecognize

      public void voiceRecognize(com.iflytek.cloud.param.IatParam param,
                                 com.iflytek.cloud.result.ResultCallBack<com.iflytek.cloud.result.IatResult> callBack)
      
      聲音識別系統
      • 參數:

        param - 語音識別入參

        callBack - ResultCallBack

    • # voiceRecognize

      public void voiceRecognize(com.iflytek.cloud.param.IatParam param,
                                 java.io.InputStream resource,
                                 com.iflytek.cloud.result.ResultCallBack<com.iflytek.cloud.result.IatResult> callBack)
      
      語音聊天轉寫
      • 參數:

        param - 語音轉寫的參數

        resource - 語音流

        callBack - 回調

    • # startRecord

      public void startRecord(com.iflytek.cloud.param.IatParam iatParam,
                              com.iflytek.cloud.result.ResultCallBack<com.iflytek.cloud.result.IatResult> callBack)
      
      進行通話錄音,并將辨認后果確認callBack載入
      • 參數:

        iatParam - IatParam

        callBack - ResultCallBack

    • # isRecording

      public boolean isRecording()
      
      評判是都要通話錄音中
      • 返回:

        boolean
    • # stopRecord

      public void stopRecord()
      
      開始錄音功能
    • # voiceSynthesise

      public void voiceSynthesise(com.iflytek.cloud.param.TtsParam param,
                                  java.lang.String stringSource,
                                  com.iflytek.cloud.result.ResultCallBack<com.iflytek.cloud.result.TtsResult> callBack)
      
      發音合成視頻
      • 參數:

        param - TtsParam 參數

        stringSource - 待合成的內容

        callBack - 合成回調

    • # writeData

      public void writeData(java.io.InputStream resource)
      
      讀取數據庫數據庫到組件
      • 參數:

        resource - 數據源

    • # writeData

      public void writeData(java.io.File file)
                     throws java.io.FileNotFoundException
      
      讀入大數據
      • 參數:

        file - 數據源

      • 拋出:

        java.io.FileNotFoundException - FileNotFoundException

    • # writeData

      public void writeData(byte[] inData)
      
      寫入,數據文件
      • 參數:

        inData - 數據源

    • # writeData

      public void writeData(byte[] inData,
                            int dataStatus)
      
      注入數據分析
      • 參數:

        inData - 數據源

        dataStatus - 寫入的狀態碼

    • # writeDataEnd

      public void writeDataEnd()
      
      開始和結束輸入數據報告
    • # destroy

      public destroy()
    
    查扣單例喜歡的人

    # 3.2 IatParam類

    包文件目錄 com.iflytek.cloud.param;

    說明:語音轉寫的入參封裝類, 可通過該類的set方法設置參數,也可以通過put(key,value)方式設置參數。

    # 3.3 TtsParam類

    包相對路徑 com.iflytek.cloud.param;

    說明:語音合成的入參封裝類, 可通過該類的set方法設置參數,也可以通過put(key,value)方式設置參數。

    # 4. 常見問題:

    # SDK 都支持哪些 HarmonyOS 版本?

    答:的標準應用 HarmonyOS 1.0的華為手機版本的。

    # 如何查看SDK版本?

    答:巧用 Version.getVersion()可有 SDK 型號號。

    # SDK是否支持同一業務同時開啟多路會話?

    答:SDK不不認多路請求。
    日赚300的网络兼职 趣闲赚app persistentfrontiers.comambrosiachocolatemaker.comweb20office.com