web-dev-qa-db-fra.com

Utilisation de Google Text-To-Speech en Javascript

Je dois jouer à Google text-to-speech en JavaScript.
L’idée est d’utiliser le service Web:

http://translate.google.com/translate_tts?tl=fr&q=This%20is%20just%20a%20test

Et jouez-le sur une action de certian, par exemple un clic de bouton.

Mais il semble que ce n’est pas comme charger un fichier wav/mp3 normal:

<audio id="audiotag1" src="audio/example.wav" preload="auto"></audio>

<script type="text/javascript">
    function play() {
        document.getElementById('audiotag1').play();
    }
</script>

Comment puis-je faire ceci?

41
Betamoo

Voici l'extrait de code que j'ai trouvé:

var audio = new Audio();
audio.src ='http://translate.google.com/translate_tts?ie=utf-8&tl=en&q=Hello%20World.';
audio.play();
20
Betamoo

Une autre option peut maintenant être texte HTML5 à parole , qui est dans Chrome 33+ et beaucoup d'autres) .

Voici un échantillon:

var msg = new SpeechSynthesisUtterance('Hello World');
window.speechSynthesis.speak(msg);

Avec cela, vous n’avez peut-être pas besoin d’un service Web.

111
Brian M. Hunt

Vous pouvez utiliser le SpeechSynthesisUtterance avec une fonction comme par exemple :

function say(m) {
  var msg = new SpeechSynthesisUtterance();
  var voices = window.speechSynthesis.getVoices();
  msg.voice = voices[10];
  msg.voiceURI = "native";
  msg.volume = 1;
  msg.rate = 1;
  msg.pitch = 0.8;
  msg.text = m;
  msg.lang = 'en-US';
  speechSynthesis.speak(msg);
}

Ensuite, il vous suffit d'appeler say(msg) lorsque vous l'utilisez.

Mise à jour : consultez le blog de développeur de Google consacré à l'introduction d'applications Web à commande vocale à l'API Web Speech.

10
user8903269

Très facile avec une voix sensible. Il suffit d'inclure le js et le tour est joué!

<script src='https://code.responsivevoice.org/responsivevoice.js'></script>

<input onclick="responsiveVoice.speak('This is the text you want to speak');" type='button' value='???? Play' />
9
ManuelC

exécuter ce code, il prendra entrée comme audio (microphone) et convertira dans le texte que la lecture audio.

<head>
<title>MY Echo</title>
<script src="http://code.responsivevoice.org/responsivevoice.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.6.1/css/font-awesome.min.css" />
<style type="text/css">
    body {
        font-family: verdana;
    }

    #result {
        height: 100px;
        border: 1px solid #ccc;
        padding: 10px;
        box-shadow: 0 0 10px 0 #bbb;
        margin-bottom: 30px;
        font-size: 14px;
        line-height: 25px;
    }

    button {
        font-size: 20px;
        position: relative;
        left: 50%;
    }
</style>

<h4 align="center">Speech to text converter in JS</h4>
<div id="result"></div> <button onclick="startConverting();"><i class="fa fa-microphone"></i></button>
<script type="text/javascript">
    var r = document.getElementById('result');

    function startConverting() {
        if ('webkitSpeechRecognition' in window) {
            var speechRecognizer = new webkitSpeechRecognition();
            speechRecognizer.continuous = true;
            speechRecognizer.interimResults = true;
            speechRecognizer.lang = 'en-IN';
            speechRecognizer.start();
            var finalTranscripts = '';
            speechRecognizer.onresult = function(event) {
                var interimTranscripts = '';
                for (var i = event.resultIndex; i < event.results.length; i++) {
                    var transcript = event.results[i][0].transcript;
                    transcript.replace("\n", "<br>");
                    if (event.results[i].isFinal) {
                        finalTranscripts += transcript;
                        var speechresult = finalTranscripts;
                        console.log(speechresult);
                        if (speechresult) {
                            responsiveVoice.speak(speechresult, "UK English Female", {
                                pitch: 1
                            }, {
                                rate: 1
                            });
                        }
                    } else {
                        interimTranscripts += transcript;
                    }
                }
                r.innerHTML = finalTranscripts + '<span style="color:#999">' + interimTranscripts + '</span>';
            };
            speechRecognizer.onerror = function(event) {};
        } else {
            r.innerHTML = 'Your browser is not supported. If google chrome, please upgrade!';
        }
    }
</script>
</body>

</html>`
4
Gajender Singh