2017-01-23 80 views
2

我對Microsoft認知服務完全陌生。我想建立一個完全由語音控制的web項目。對於語音控制,我使用的是arytom.js,這是一個非常簡單和優秀的API,適合我的使用。對我來說,對於TTS和STT來說,它工作得很好。我現在想要做的是,我想識別誰在說話並將其與數據庫進行比較。我剛剛發現了微軟開發的Speaker Recognition API。我已經有一個API密鑰,現在我想創建註冊並將記錄的語音樣本與存儲在Micrososft服務器上的語音進行比較。 官方API的代碼示例如下所示:如何使用Microsoft認知服務 - 說話人識別API

<!DOCTYPE html> 
<html> 
<head> 
    <title>JSSample</title> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script> 
</head> 
<body> 

<script type="text/javascript"> 
    $(function() { 
     var params = { 
      // Request parameters 
      "shortAudio": "{boolean}", 
     }; 

     $.ajax({ 
      url: "https://westus.api.cognitive.microsoft.com/spid/v1.0/identify?identificationProfileIds={identificationProfileIds}&" + $.param(params), 
      beforeSend: function(xhrObj){ 
       // Request headers 
       xhrObj.setRequestHeader("Content-Type","application/octet-stream"); 
       xhrObj.setRequestHeader("Ocp-Apim-Subscription-Key","{subscription key}"); 
      }, 
      type: "POST", 
      // Request body 
      data: "{body}", 
     }) 
     .done(function(data) { 
      alert("success"); 
     }) 
     .fail(function() { 
      alert("error"); 
     }); 
    }); 
</script> 
</body> 
</html> 

據Micrososft「shortAudio」:在這種情況下,你希望使用的語音任何時間開始識別,則應該包括「shortAudio」參數。它指示該服務放棄標識所需的推薦30秒音頻。這樣做時,您可以發送1秒鐘以上但不超過5分鐘的音頻文件。

我有一個「Ocp-Apim-Subscription-Key,我必須把它放在Header中,但是我怎樣才能發送一個.wav文件到他們的服務器。」 有誰知道,如何開始使用這個API不幸的是微軟有一個關於它沒有真正的DOC

更新:現在我知道,我必須將.wav文件轉換爲二進制是否有人有一個例子代碼,如何使用這個API撥打電話

預先感謝您!

+0

難道沒有人有這個問題的解決方案? – Mixmarcil

+0

你找到答案了嗎?我遇到了類似的問題 –

回答

0

二進制數據需要是特定格式的WAV文件:

  • 集裝箱:WAV
  • 編碼:PCM
  • 率:16K
  • 樣本格式:16位
  • 通道:單聲道

您可以通過檢查出的工作示例網頁在這裏 - 我使用了recorderjs的改動副本(通過對Speaker Recognition API示例頁面進行反向工程改變)以獲得正確的比特率和採樣率WAV:

https://rposbo.github.io/speaker-recognition-api/