料金体系 
テキスト翻訳料金

ダーク

ライト

システムメンテナンスのお知らせ(8/13更新)

SPEECH TO TEXT
音声認識
音声ファイルを認識し、テキストを出力します。
Endpoint
Request details
POST
https://translate.classiii.info/api/v1/translate/stt
Header
Header
Description
Content-Type
multipart/form-data
accessKey, nonce, signature
「認証方法」を参照してください。
Body
Key
Require
Description
sourceLang
O
音声ファイルの言語。 対応の言語は:アラビア語(ar)、ドイツ語(de)、英語(en)、スペイン語(es)、フランス語(fr)、日本語(ja)、韓国語(ko)、ロシア語(ru)、タイ語(th)、簡体中国語(zh-CN)、繁体中国語(zh-TW)、広東語(zh-HK)、ブルガリア語(bg)、ベトナム語(vi)、ネパール語(ne)、インドネシア語(id)、ポルトガル語(pt)、イタリア語(it)
audioFile
O
翻訳用の音声ファイル。 音源は60秒以内のWAVファイルを利用し、ビットレート(bps)とサンプリングレートはそれぞれ16bpsと16kHzにしてください。
contractId
契約のID。 契約が一つのみ保有する場合、指定する必要はございません。 複数保有する場合は、契約IDの指定が必要です。 (利用するAPIが跨がる場合も含めます。例:テキスト翻訳と音声翻訳の契約をそれぞれ保有している場合は、指定が必要。)
Request例
curl -X POST -H "nonce: Your Nonce" -H "accessKey: Your Access Key" -H "signature: Your Signature" -H "Content-Type: multipart/form-data" -F "audioFile=@Your File Path" -F "sourceLang=ja" https://translate.classiii.info/api/v1/translate/stt
Response
Key
Description
result
音声認識の結果。
Response例
{
  "status": "success",
  "data": {
    "result": "そこに着いたらもう一度誰かに尋ねてください"
  }
}

api/v1/translate/stt
音声データをアップロードして、音声認識をします。
const FormData = require('form-data');

const fs = require('fs');
const crypto = require('crypto');
const authUtils = require('./utils/auth-utils');

const serverConfig = {
 protocol: 'https:',
 hostname: 'translate.classiii.info',
 port: 443
};
const authConfig = {
 accessKey: 'ACCESS_KEY',
 secretKey: 'SECRET_KEY',
 nonce: Date.now().toString()
};
const speechConfig = {
 lang: 'ja',
 audioFile: 'speech.wav',
 contractId: 'your contractId'
};

const sendRequest = (serverConfig, authConfig, speechConfig) => {
 const form = new FormData();
 form.append('sourceLang', speechConfig.lang);
 form.append('audioFile', fs.createReadStream(speechConfig.audioFile));
 form.append('contractId', speechConfig.contractId);

 const path = '/api/v1/translate/stt';
 const signature = authUtils.generateSignature(
  path,
  authConfig.secretKey,
  authConfig.nonce
);
 return new Promise((resolve, reject) => {
   form.submit(
     {
       protocol: serverConfig.protocol,
       host: serverConfig.hostname,
       port: serverConfig.port,
       path,
       headers: {
         accessKey: authConfig.accessKey,
         signature,
         nonce: authConfig.nonce
       }
     },
     (error, response) => {
       if (error !== null) {
         reject(error);
         return;
       }
       response.setEncoding('utf8');
       let data = '';
       response.on('data', (chunk) => {
         data += chunk;
       });
       response.on('end', () => {
         resolve(data);
       });
     }
   );
 });
};

const main = async () => {
 try {
   const response = await sendRequest(
     serverConfig,
     authConfig,
     speechConfig
   );
   console.log('Server response:');
   console.log(response);
 } catch (error) {
   console.error(error);
 }
};

main();
認証については、「認証方法」をご参照ください。