這套 API 包含 語音轉換文字
與文字轉換語音
功能,雖然 Chrome 本身就提供了一套 SpeechRecognition,不過我們今天還是來試一下 Azure 的 Speech to Text
API。
1.先參考此文件產生金鑰:https://docs.microsoft.com/zh-tw/azure/cognitive-services/speech-service/get-started
2.查看相關 API 文件:https://docs.microsoft.com/zh-tw/azure/cognitive-services/speech-service/rest-apis#speech-to-text
3.錄製聲音
筆者隨意錄製了個測試的語音,這邊如果要辨識 15 秒以上的語音必須使用他們的 SDK,因為他們的 REST API 不支援 15 秒以上的語音檔案。
4.查看文件的範例請求
加上參數
加上金鑰
最後上傳聲音檔案後按下送出,等待幾秒後即可看到回傳的辨識資料。
const path = require('path');
const fs = require('fs');
const https = require('https');
const filepath = '填上檔案位置';
const mediaStream = fs.createReadStream(filepath);
const options = {
host: "westus.stt.speech.microsoft.com",
port: 443,
path: '/speech/recognition/conversation/cognitiveservices/v1?language=zh-TW&format=detailed',
method: "POST",
headers: {
"Ocp-Apim-Subscription-Key": "填上金鑰",
}
};
const req = https.request(options, res => {
console.log(`Status Code: ${res.statusCode}\r\n`);
res.on('data', function (data) {
console.log(`回傳資料為:\r\n${data.toString()}`);
});
});
req.on('drain', function () {
console.log('drain', new Date());
mediaStream.resume();
});
mediaStream.on('end', function () {
console.log('uploaded finish');
});
req.on('error', function (err) {
console.error('cannot send file to ' + target + ': ' + err);
});
mediaStream.pipe(req);
也可直接使用 cURL
curl --request POST \
--url 'https://westus.stt.speech.microsoft.com/speech/recognition/conversation/cognitiveservices/v1?language=zh-TW&format=detailed' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Ocp-Apim-Subscription-Key: 填上金鑰' \
--header 'content-type: multipart/form-data; boundary=----WebKitFormBoundaryABC' \
--form audioFile=@/Users/Desktop/test1111.wav