2016-07-22 96 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

相关问题