2016-07-22 98 views
0

我也跟着下面的鏈接: http://zaf.github.io/asterisk-speech-recog/如何使用IBM沃森Bluemix語音到文本的語音引擎在Asterisk

現在我想用IBM沃森Bluemix語音到文本,而不是谷歌的語音識別測試。 任何人都可以幫助我使用鏈接上提供的代碼。

它正在使用谷歌語音引擎。但我想使用IBM Bluemix。

#!/usr/bin/perl 

use strict; 
use warnings; 

require LWP::UserAgent; 
use WWW::Curl::Easy; 

my $url = 'https://stream.watsonplatform.net/speech-to-text/api'; 

my $ua; 
my $fh; 
my $audio; 
my $response; 
my $headers; 
my $username = 'username'; 
my $password = 'password'; 

local $ENV{'HTTPS_DEBUG'} = 1; 
open($fh, "<", "test.flac") or die "Can't read file: $!"; 
$audio = do { local $/; <$fh> }; 
close($fh); 

$ua = LWP::UserAgent->new; 

$response = $ua->post($url, Content_Type => "audio/flac",Transfer_Encoding => "chunked", Content => $audio); 
$response->authorization_basic($username, $password); 
my $cont = $response->content; 
print $cont; 

然後,它給了我輸出

SSL_connect:before/connect initialization 
SSL_connect:SSLv2/v3 write client hello A 
SSL_connect:SSLv3 read server hello A 
SSL_connect:SSLv3 read server certificate A 
SSL_connect:SSLv3 read server done A 
SSL_connect:SSLv3 write client key exchange A 
SSL_connect:SSLv3 write change cipher spec A 
SSL_connect:SSLv3 write finished A 
SSL_connect:SSLv3 flush data 
SSL_connect:SSLv3 read finished A 
500 write failed: 
+1

這是「給我一個代碼」的問題。請首先嚐試自己編寫代碼,如果您遇到任何問題,請將日誌與此日誌完全相關,然後有人可能會查看它。 – os11k

+0

@ os11k - 我更新了代碼。那麼它給了我一個錯誤。請參閱輸出 – Bee

+0

您的perl代碼不正確,至少您需要在請求之前提供憑據,也許您有其他錯誤,這只是我看到的第一個。我建議你添加perl標籤,因爲目前這是100%perl相關的問題,與Asterisk無關。 – os11k

回答

0

這工作:

捲曲-X POST -u UUUU:PPPPP --header 「內容類型:音頻/ WAV」 --header 「傳輸編碼:分塊」 --data二進制@ ira_47s_16khz.wav「https://stream.watsonplatform.net/speech-to-text/api/v1/recognize?continuous=true

我不熟悉與Asterisk/Perl的,但比較代碼捲曲通話看來:

  • 主持人看起來不對。有了正確的網址,你應該開始接收回來的返回消息和錯誤代碼

  • 內容類型略有不同

  • 無法找到中的代碼數據的二進制塊。 (它應該在那裏,但因爲你的代碼與Google API工作)

+0

我認爲主機正在使用令牌認證=> https://developer.ibm.com/answers/questions/202739/which-api-to-invoke-to-get-authentication-token-fo.html。 我會做出改變並測試它。謝謝 – Bee

相關問題