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

通過API/SDK上傳語音文件

您可以通過調用API或使用SDK進行文件上傳。只支持上傳專屬模式外呼。語音文件上傳完成后會進入審核階段,預計2小時內會完成審核。

說明
  • 請選擇WAV或MP3格式且小于2 MB的語音文件。

  • URL:http://dysmsapi-custom.cn-shanghai.aliyuncs.com/dyvms/upload?filename=test.wav

  • 建議使用語音服務控制臺中的語音文件上傳功能。具體操作,請參見通過控制臺上傳語音文件

請求參數

參數

含義

示例

參數位置

備注

filename

語??件名稱

test.wav

path

文件名稱(包含擴展名),必填。

authorization

權限校驗參數

ZmY4MDgwODEzYzM****

header

調用GetToken接口獲取的Token值即是authorization的值。

請求示例

POST http://dysmsapi-custom.cn-shanghai.aliyuncs.com/dyvms/upload?filename=test.wavHTTP/1.1
 Host:192.168.0.1:8883
 content-length: 1390
 Accept:application/json;
 Content-Type:application/octet-stream;charset=utf-8;
authorization:ZmY4MDgwODEzYzM3ZGE1MzAxM2M4MDRmODA3MjAwN2M6MjAxMzAyMDExN****zA=

返回示例

{
 "code": "OK",
 "msg": "success",
 "data": {
 "voiceCode": "語音文件ID,可用于語音通知外呼"
 }
}

操作步驟

  1. 云資源訪問授權。

    1. 使用阿里云賬號(主賬號)登錄語音服務控制臺

    2. 為RAM用戶進行授權。具體操作請參見為RAM用戶授權

    3. 拷貝鏈接https://ram.console.aliyun.com/#/role/authorize?request=%7B%22Requests%22%3A%7B%22request1%22%3A%7B%22RoleName%22%3A%22AliyunDyvmsCustomAPIRole%22%2C%22TemplateId%22%3A%22AliyunDyvmsCustomAPIRole%22%7D%7D%2C%22ReturnUrl%22%3A%22https%3A%2F%2Fdyvms.console.aliyun.com%22%2C%22Service%22%3A%22Dyvms%22%7D至瀏覽器中。在云資源訪問授權頁面,單擊同意授權8

  2. 獲取Token。

    調用GetToken接口或在OpenAPI開發者門戶獲取Token。

    說明
    • Token的有效期是半個小時。

    • TokenType的默認值為dyvms。

    返回結果:

    {
        "Message": "OK",
        "RequestId": "D9CB3933-9FE3-4870-BA8E-2BEE91B69DDD",
        "Token": "eyJhbGciOiJSUzI1NiIsImtpZCI6ImFjY2Vzc190ZXN0In0.eyJqdGkiOiJUTjhfRzFCaEpETTJ3LWVoeGJZZXRnIiwiaWF0IjoxNjIzMzk0NTI3LCJleHAiOjE2MjMzOTYzMjcsIm5iZiI6MTYyMzM5NDQ2Nywic3ViIjoiWU****",
        "Code": "OK",
        "Success": "true"
    }
  3. 確認文件目錄。

    使用以下代碼生成文件目錄名稱,入參aliyunUid為主賬號aliyunUid。

     private String convertASCII(String aliyunUid){
            StringBuilder stringBuilder = new StringBuilder();
            for (int i = 0; i < aliyunUid.length(); i++) {
                stringBuilder.append((char)(aliyunUid.charAt(i)+ 51 ));
            }
            return stringBuilder.toString() ;
     }
  4. 上傳語音文件。

    方式一:使用PostMan工具上傳語音文件

    1. API鏈接。

      filename為示例

      http://dysmsapi-custom.cn-shanghai.aliyuncs.com/dyvms/upload?filename=asdewqasaaa/測試文件_aaaa3.wav
    2. 添加參數。

      添加Header參數:authorization請填入步驟2中已獲取的Token。如:eyJhbGciOiJSUzI1NiIsImtpZCI6ImFjY2Vzc190ZXN0In0.eyJqdGkiOiJUTjhfRzFCaEpETTJ3LWVoeGJZZXRnIiwiaWF0IjoxNjIzMzk0NTI3LCJleHAiOjE2MjMzOTYzMjcsIm5iZiI6MTYyMzM5NDQ2Nywic3ViIjoiWU****

      12

      添加Params參數:filename請填入步驟3中已獲取的文件目錄/文件名(包含格式)。如:asdewqasaaa/測試文件_aaaa3.wav11

    3. 選擇文件。

      Body下選擇binary,選擇本地文件并上傳。13

    4. 返回結果。14

    方式二:調用接口上傳語音文件

    調用HTTP服務地址http://dysmsapi-custom.cn-shanghai.aliyuncs.com/dyvms/upload上傳語音文件。

    代碼示例

    說明

    調用接口前,需配置環境變量,通過環境變量讀取訪問憑證。AccessKey ID和AccessKey Secret的環境變量名:VMS_AK_ENV 、VMS_SK_ENV。配置詳情請參見在Linux、macOS和Windows系統配置環境變量

    獲取Token需要的依賴

    <dependency>
      <groupId>com.aliyun</groupId>
      <artifactId>dysmsapi20170525</artifactId>
      <version>2.1.4</version>
    </dependency>

    HTTP上傳文件需要的Jar包

    <dependency>
      <groupId>org.apache.httpcomponents</groupId>
      <artifactId>httpclient</artifactId>
      <version>4.5.13</version>
     </dependency>
    package com.aliyun.sample;
    
    import com.aliyun.dysmsapi20170525.models.GetTokenResponse;
    import com.aliyun.tea.TeaException;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.IOException;
    import java.net.URLEncoder;
    import org.apache.http.HttpResponse;
    import org.apache.http.client.HttpClient;
    import org.apache.http.client.methods.HttpPost;
    import org.apache.http.entity.InputStreamEntity;
    import org.apache.http.impl.client.DefaultHttpClient;
    import org.apache.http.util.EntityUtils;
    
    public class Sample {
    
      /**
       * 使用AK&SK初始化賬號Client
       *
       * @param accessKey Id
       * @param accessKey Secret
       * @return Client
       * @throws Exception
       */
      public static com.aliyun.dysmsapi20170525.Client createClient(
        String accessKeyId,
        String accessKeySecret
      ) throws Exception {
        com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
          //TODO 您的 AccessKey ID
          .setAccessKeyId(accessKeyId)
          //TODO 您的 AccessKey Secret
          .setAccessKeySecret(accessKeySecret);
        // 訪問的域名
        config.endpoint = "dysmsapi.aliyuncs.com";
        return new com.aliyun.dysmsapi20170525.Client(config);
      }
    
      public static void main(String[] args_) throws Exception {
        String token = null;
        java.util.List<String> args = java.util.Arrays.asList(args_);
        // 阿里云賬號AccessKey ID擁有所有API的訪問權限,風險很高。強烈建議您創建并使用RAM用戶進行API訪問或日常運維,請登錄RAM控制臺創建RAM用戶
        // 此處以把AccessKey ID和AccessKey Secret保存在環境變量為例說明。 您也可以根據業務需要,保存到配置文件里
        // 強烈建議不要把AccessKey ID和AccessKey Secret保存到代碼里,會存在密鑰泄漏風險
        com.aliyun.dyvmsapi20170525.Client client = Sample.createClient(
          System.getenv("VMS_AK_ENV"),
          System.getenv("VMS_SK_ENV")
        );
        com.aliyun.dysmsapi20170525.models.GetTokenRequest getTokenRequest = new com.aliyun.dysmsapi20170525.models.GetTokenRequest()
          .setTokenType("dyvms"); // 語音業務tokenType固定dyvms
        com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
    
        // 獲取token(可直接使用步驟2中已獲取的Token)
        try {
          // 復制代碼運行請自行打印API的返回值
          GetTokenResponse response = client.getTokenWithOptions(
            getTokenRequest,
            runtime
          );
          if (response != null && "OK".equals(response.getBody().getCode())) {
            token = response.getBody().getToken();
          }
        } catch (TeaException error) {
          // 如有需要,請打印 error
          com.aliyun.teautil.Common.assertAsString(error.message);
          throw error;
        } catch (Exception _error) {
          TeaException error = new TeaException(_error.getMessage(), _error);
          // 如有需要,請打印 error
          com.aliyun.teautil.Common.assertAsString(error.message);
          throw _error;
        }
        String dir = convertASCII("aliyunUid"); //TODO輸入自己主賬號的aliyunUid
        String fileName = dir + "/" + "測試文件_aaaa17.wav"; //TODO 輸入自己上傳后需要展示的文件名和后綴
        fileName = URLEncoder.encode(fileName, "UTF-8");
        @SuppressWarnings("deprecation")
        HttpClient ht = new DefaultHttpClient();
        HttpPost post = new HttpPost(
          "http://dysmsapi-custom.cn-shanghai.aliyuncs.com/dyvms/upload?filename=" +
          fileName
        );
        HttpResponse rs = null;
        try {
          File file = new File(// C:\\Users\\...\\測試文件.wav); //TODO自己本地文件路徑
          //System.out.println(file.exists());
          //文件流包裝到FileBody
          post.setEntity(
            new InputStreamEntity(new FileInputStream(file), file.length())
          );
          //設置請求內容類型(若不顯示設置,默認text/plain;不同的類型服務端解析格式不同,可能導致參請求參數解析不到的情況)
          post.addHeader("Content-Type", "application/octet-stream");
    
          post.addHeader("authorization", token);
          //發送請求
          rs = ht.execute(post);
          System.out.println(
            "" +
            rs.getStatusLine().getStatusCode() +
            " " +
            EntityUtils.toString(rs.getEntity(), "utf-8")
          );
        } catch (Exception e) {
          e.printStackTrace();
        } finally {
          // 銷毀
          if (rs != null) {
            try {
              EntityUtils.consume(rs.getEntity());
            } catch (IOException e) {
              e.printStackTrace();
            }
          }
        }
      }
    
      private static String convertASCII(String aliyunUid) {
        StringBuilder stringBuilder = new StringBuilder();
        for (int i = 0; i < aliyunUid.length(); i++) {
          stringBuilder.append((char) (aliyunUid.charAt(i) + 51));
        }
        return stringBuilder.toString();
      }
    }