我希望通过代码传递凭据,而不是通过此提示请求用户提供凭据。
虽然我在标题中传递凭据,如下面的代码所示:
<html>
<head>
</head>
<body>
<div id="text-to-speech">
<script type="text/javascript" src="https://code.jquery.com/jquery-3.1.0.min.js"></script>
<input type="text" name="speech-text" TextMode="MultiLine" height:50px;">
<input type="button" id="btnPOst" value="Play" />
<br /><br /><br />
<audio id="speech" autoplay preload="auto" autobuffer controls class="audio"></audio>
</div>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
$(function () {
debugger;
$("#btnPOst").click(function () {
debugger;
var username= "";
var password = "";
var request = $("#text-to-speech input[name=speech-text]").val();
var url = "https://stream.watsonplatform.net/text-to-speech/api/v1/synthesize?voice=en-US_MichaelVoice&accept=audio/wav&text=" + request;
$.ajax
({
type: "POST",
url: url,
dataType: "application/json; charset=utf-8",
headers: {
'Content-Type': 'application/json',
'Accept': 'audio/wav',
'Authorization': ("Basic " + btoa(username + ":" + password))
},
success: function (content) {
},
});
$("#speech").attr("src", url)[0].play();
});
});
</script>
</body>
</html>
答案 0 :(得分:2)
嗨@akash直接从网页进行基本身份验证不是一个好习惯,因为凭据将公开可用,这是一个很大的安全问题。你有没有考虑使用令牌?对于生产应用程序,推荐的方法是从生成令牌的服务器端应用程序执行基本身份验证,然后网页从服务器应用程序获取这些令牌并直接连接到STT服务。代币有效期为一小时。当然,您需要在网页和服务器应用程序之间使用自己的身份验证机制,以便以受控方式提供令牌。
请参阅:https://github.com/watson-developer-cloud/speech-javascript-sdk用于构建此网页:https://speech-to-text-demo.mybluemix.net/
答案 1 :(得分:0)
您可以构建一个动态网址:
“HTTPS://” +用户名+ “:” +密码+“@ gateway.watsonplatform.net /检索和秩/ API / V1 / solr_clusters