在浏览器中测试文本到语音(TTS)

问题描述 投票:-1回答:1

Twilio有一篇关于在浏览器中测试TTS的老博客:

https://www.twilio.com/blog/2011/08/testing-twilios-text-to-speech-engine-using-twilio-client.html

不幸的是,它没有足够的信息来组合测试。它还包含许多死链接,并提到了一个我找不到的Github项目。

我真的希望用户能够在发射表格和开始通话之前听到他们的声明。

我使用Lasso(它会激活对Twilio REST API的CURL请求),但是任何类型的教程或提示都会受到赞赏。

twilio
1个回答
0
投票

如果您在Twilio上设置模拟账户并使用Glitch在线php测试器(https://glitch.com/edit/#!/php-poc)或本地环境,您可以像我一样创建一个可行的示例。您需要填写空字符串以对应您的应用名称。在网站中搜索TwiML以获取正确的部分以设置服务器的正确URL,TWilio将根据请求读取内容(xml)。在我的情况下,url是在Glitch上测试的http://<server>/?incoming-call.php

您需要获取Twilio PHP SDK并在服务器代码中包含Services/Twilio/Capability.php中的https://github.com/twilio/starter-php

<?php
require __DIR__ . '/../vendor/autoload.php';
$url = [];
$url = explode('?', $_SERVER['REQUEST_URI']);

if (count($url) == 2 && $url[1] == 'incoming-call.php')
  {
       header('Content-type: text/xml');
       $response = new Twilio\Twiml;
       $dialogue = trim($_REQUEST['dialogue']);  
       $voice = (int) $_REQUEST['voice'];  

       if (strlen($dialogue) == 0)
       {  
              $dialogue = 'Please enter some text to be spoken.';  
       } 
       if ($voice == 1)
       {  
             $gender = 'man'; 
       }
       else
       {  
             $gender = 'woman'; 
       } 
       $response->say($dialogue);
       echo $response;
       exit;
  }
  require_once('Services/Twilio/Capability.php');

  $accountsid = '';  //  YOUR TWILIO ACCOUNT SID
  $authtoken = '';   //  YOUR TWILIO AUTH TOKEN
  $fromNumber = '';  //  PHONE NUMBER CALLS WILL COME FROM

  $APP_SID = '';
  $token = new Services_Twilio_Capability($accountsid, $authtoken);
  $token->allowClientOutgoing($APP_SID);
?>
<html> 
<head> 
  <title>Text-To-Speech</title>
  <script type="text/javascript" src= 
    "https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script> 
  <script type="text/javascript" 
    src="//media.twiliocdn.com/sdk/js/client/v1.5/twilio.js"></script>
  <script type="text/javascript"> 
    Twilio.Device.setup("<?php echo $token->generateToken();?>",{"debug":true});
    $(document).ready(function() {
      $("#submit").click(function() {
        speak();
      });
    });
    function speak() {
      var dialogue = $("#dialogue").val();
      var voice = 
        $('input:radio[name=voice]:checked').val();
       Twilio.Device.connect({ 'dialogue' : 
        dialogue, 'voice' : voice });
    }
  </script> 
</head> 
<body> 
<p> 
  <label for="dialogue">Text to be spoken</label> 
  <input type="text" id="dialogue" name="dialogue" 
    size="50">
</p>
<p>
  <label for="voice-male">Male Voice</label>
  <input type="radio" id="voice-male" name="voice" 
    value="1" checked="checked"> 
  <label for="voice-female">Female Voice</label> 
  <input type="radio" id="voice-female" name="voice" 
    value="2">
</p>
<p>
  <input type="button" id="submit" name="submit" 
    value="Speak to me"> 
</p> 
</body> 
</html>
© www.soinside.com 2019 - 2024. All rights reserved.