数日間、SOAP を使用して TTS Ivona (ivona.com) サービスに接続しようとしています。
以下は、うまく機能する PHP の例です。
function txtSpeechToFile($txt, $path) {
$soapURL = "http://www.ivona.com/saasapiwsdl.php";
$user = "some@email.com";
$pwd = 'pass';
$soap = new SoapClient($soapURL);
$token = $soap->__soapCall('getToken', array('email' => $user));
print gettype($token);
$speechFile = $soap->__soapCall('createSpeechFile', array(
'token' => $token,
'md5' => md5(md5($pwd).$token),
'text' => $txt,
'contentType' => 'text/plain',
'voiceId' => 'gb_amy',
'codecId' => 'mp3/22050'
)
);
$xx = file_get_contents($speechFile['soundUrl']);
file_put_contents($path, $xx);
}
私はこれをPerlで次のように実行しようとしています:
use SOAP::Lite;
my $soap = SOAP::Lite->readable(1)->uri($urlPHP)->proxy($soapURL);
my $token = $soap->getToken({('email'=>$user)});
my $speechFile = $soap->createSpeechFile(
{
(
'token' => '$token',
'md5' => md5(md5($pwd) . '$token'),
'text' => $input,
'contentType' => 'text/plain',
'voiceId' => 'gb_amy',
'codecId' => 'mp3/22050'
)
}
);
print $speechFile;
$token
PHPとは違うと思います$token
か?