p5 setVoice无法运作

时间:2018-07-29 07:31:12

标签: p5.js

在尝试更改p5.speech中的声音时,setVoice函数根本不起作用... 我已经尝试过使用字符串和索引,但是仍然出错,有人可以帮忙吗?我将不胜感激! 谢谢!

<html>
 <head>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.4.5/p5.min.js"> 
  </script>
  <script 
  src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.4.5/addons/p5.dom.js"> 
  </script>
  <script src="p5.speech.js"></script>
  <script 
  src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js">
  </script>
</head>

<body>   
 <button id='talks'>
  click to talk
 </button>
 <script>   
  $('#talks').click(function(){
  console.log('hi')
  var talk= new p5.Speech()
  talk.onLoad=Voices

  function Voices(){
  talk.listVoices()                    
  talk.setVoice('Google UK English Male') 
  }            
  talk.speak("What's up")}
 </script>
</body>
</html>
下面的

是talk.listVoices()的输出: enter image description here

1 个答案:

答案 0 :(得分:0)

首先,我的答案不是完整的解决方案,但是您的示例中有一些简单的SyntaxErrors。这就是为什么它对我根本无法运行的原因。

  1. 您正在打开 click(,但没有将其关闭,为了更好的清除,我重新格式化了代码并添加了右括号。
  2. 通常使用括号调用函数,因此应为Voices();
  3. 并非每个浏览器都必须这样做,但是通常JavaScript中的结尾行是;

$('#talks').click(
  function(){
    console.log('hi');
    var talk= new p5.Speech();
    talk.onLoad=Voices();

    function Voices(){
      talk.listVoices();                  
      talk.setVoice('Google UK English Male');
    }            
    talk.speak("What's up");
  }
)

有了这些更改,我得到了这样的控制台输出:

VM43:3: hi
p5.speech.js:136 p5.Speech: voices not loaded yet!
p5.speech.js:89 p5.Speech: voices loaded!