import config from "../../config";

const axios = require('axios');

class AliyunTTS {
  constructor(options) {
    //配置项
    this.appkey = config.aliyun.APPKEY;
    this.token = config.aliyun.TOKEN;
    this.url = config.aliyun.URL;

  }

  async textToVoice(text,params) {
    var url = this.url;
    /**
     * 请求参数，以JSON格式字符串填入HTTPS POST请求的Body中。
    */
    var task = {
      appkey: this.appkey,
      token: this.token,
      text: text,
      format: "pcm",
      sample_rate: 16000
      // voice 发音人，可选，默认是xiaoyun。
      // voice : 'xiaoyun',
      // volume 音量，范围是0~100，可选，默认50。
      // volume : 50,
      // speech_rate 语速，范围是-500~500，可选，默认是0。
      // speech_rate : 0,
      // pitch_rate 语调，范围是-500~500，可选，默认是0。
      // pitch_rate : 0
    };
    var bodyContent = JSON.stringify(task);
    console.log('The POST request body content: ' + bodyContent);
    /**
     * 设置HTTPS POST请求头部。
     */
    var httpHeaders = {
      'Content-type': 'application/json'
    }
    /**
     * 设置HTTPS POST请求。
     * encoding必须设置为null，HTTPS响应的Body为二进制Buffer类型。
     */
    var options = {
      url: url,
      method: 'POST',
      headers: httpHeaders,
      data: bodyContent
    };
    var result = {};
    try {
      result = await axios(options)
      result.status = 200;
    } catch (e) {
      console.error("【Aliyun TTS】初始化接口内部错误");
      result.statusText = e;
      result.status = 500;
    }
    return result;
  }
}

export default AliyunTTS;