{"id":261,"date":"2020-06-29T11:20:42","date_gmt":"2020-06-29T14:20:42","guid":{"rendered":"https:\/\/www.joemaster.com.br\/tutoriais\/?p=261"},"modified":"2023-02-09T15:17:09","modified_gmt":"2023-02-09T18:17:09","slug":"como-colocar-uma-api-que-deixa-o-navegador-falar-o-que-esta-escrito","status":"publish","type":"post","link":"https:\/\/www.joemaster.com.br\/tutoriais\/como-colocar-uma-api-que-deixa-o-navegador-falar-o-que-esta-escrito\/","title":{"rendered":"Como colocar uma API que deixa o navegador falar o que esta escrito"},"content":{"rendered":"<p>A API de s\u00edntese de fala \u00e9 uma API incr\u00edvel, \u00f3tima para experimentar novos tipos de interfaces e deixar o navegador falar com voc\u00ea.<\/p>\n<div style=\"width: 640px;\" class=\"wp-video\"><!--[if lt IE 9]><script>document.createElement('video');<\/script><![endif]-->\n<video class=\"wp-video-shortcode\" id=\"video-261-1\" width=\"640\" height=\"360\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/webm\" src=\"https:\/\/www.joemaster.com.br\/tutoriais\/wp-content\/uploads\/2020\/06\/como-colocar-uma-api-que-deixa-o-navegador-falar-o-que-esta-escrito.webm?_=1\" \/><a href=\"https:\/\/www.joemaster.com.br\/tutoriais\/wp-content\/uploads\/2020\/06\/como-colocar-uma-api-que-deixa-o-navegador-falar-o-que-esta-escrito.webm\">https:\/\/www.joemaster.com.br\/tutoriais\/wp-content\/uploads\/2020\/06\/como-colocar-uma-api-que-deixa-o-navegador-falar-o-que-esta-escrito.webm<\/a><\/video><\/div>\n<p>&nbsp;<\/p>\n<p>Quer escutar este texto<\/p>\n<p>&nbsp;<\/p>\n<blockquote><p>A API de s\u00edntese de fala \u00e9 uma API incr\u00edvel, \u00f3tima para experimentar novos tipos de interfaces e deixar o navegador falar com voc\u00ea.<\/p><\/blockquote>\n<p>Clique no c\u00f3digo.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"html\">&lt;script&gt;\r\nfunction textToSpeech(tt) {\r\n    \/\/ get all voices that browser offers\r\n    var available_voices = window.speechSynthesis.getVoices();\r\n    \/\/ new SpeechSynthesisUtterance object\r\n    var utter = new SpeechSynthesisUtterance();\r\n    utter.rate = 1; \/\/velocidade\r\n    utter.pitch = 1; \/\/tom da voz\r\n    utter.text = tt; \/\/texto escrito\r\n    utter.voice = available_voices[0]; \/\/ qual sera a voz mudar de [0] at\u00e9 [20] para testar\r\n    window.speechSynthesis.speak(utter);\r\n}\r\n&lt;\/script&gt;  \r\n\r\n\r\n    &lt;\/head&gt;\r\n\r\n\r\n\r\nA API de s\u00edntese de fala \u00e9 uma API incr\u00edvel, \u00f3tima para experimentar novos tipos de interfaces e deixar o navegador falar com voc\u00ea.&lt;br&gt;\r\n  &lt;a href=\"#\" onclick=\"textToSpeech(' A API de s\u00edntese de fala \u00e9 uma API incr\u00edvel, \u00f3tima para experimentar novos tipos de interfaces e deixar o navegador falar com voc\u00ea.') \"&gt;escutar texto&lt;\/a&gt;\r\n<\/pre>\n<center><input type=\"button\" name=\"Submit\" value=\"Testar c&oacute;digo\" onClick=\"document.getElementById('divcode').style.display='block';\" style=\"background-color:#FFCC05;border-radius:15px;padding:10px;width:150px;color:#000;\"><br><br><\/center>\n<p>Explicando<\/p>\n<div class=\"\">\n<div><span class=\"enlighter-text\"> var available_voices = window.<\/span><span class=\"enlighter-m3\">speechSynthesis<\/span><span class=\"enlighter-text\">.<\/span><span class=\"enlighter-m3\">getVoices<\/span><span class=\"enlighter-g1\">()<\/span><span class=\"enlighter-text\">;\u00a0 \u00a0<em><strong>\/\/come\u00e7a a fun\u00e7\u00e3o<\/strong><\/em><\/span><\/div>\n<\/div>\n<div class=\"\"><span class=\"enlighter-text\">var utter = <\/span><span class=\"enlighter-k1\">new<\/span> <span class=\"enlighter-m0\">SpeechSynthesisUtterance<\/span><span class=\"enlighter-g1\">()<\/span><span class=\"enlighter-text\">;\u00a0 \u00a0<em><strong>\/\/chama nova fun\u00e7\u00e3o<\/strong><\/em><\/span><\/div>\n<div class=\"\">\n<div><span class=\"enlighter-text\"> utter.<\/span><span class=\"enlighter-m3\">rate<\/span><span class=\"enlighter-text\"> = <\/span><span class=\"enlighter-n1\">1<\/span><span class=\"enlighter-text\">;<\/span><em><strong><span class=\"enlighter-c0\">\u00a0 \u00a0\/\/velocidade pode ser de 0.1 at\u00e9 1<\/span><\/strong><\/em><\/div>\n<\/div>\n<div class=\"\">\n<div><span class=\"enlighter-text\"> utter.<\/span><span class=\"enlighter-m3\">pitch<\/span><span class=\"enlighter-text\"> = <\/span><em><strong><span class=\"enlighter-n0\">0.5<\/span><span class=\"enlighter-text\">;<\/span><span class=\"enlighter-c0\">\u00a0 \u00a0\/\/tom da voz pode ser de 0.1 at\u00e9 1<\/span><\/strong><\/em><\/div>\n<\/div>\n<div class=\"\">\n<div><span class=\"enlighter-text\"> utter.<\/span><span class=\"enlighter-m3\">text<\/span><span class=\"enlighter-text\"> = tt;<\/span><em><strong><span class=\"enlighter-c0\">\u00a0 \u00a0\/\/texto escrito\u00a0<\/span><\/strong><\/em><\/div>\n<\/div>\n<div class=\"\">\n<div><span class=\"enlighter-text\"> utter.<\/span><span class=\"enlighter-m3\">voice<\/span><span class=\"enlighter-text\"> = available_voices<\/span><span class=\"enlighter-g1\">[<\/span><span class=\"enlighter-n1\">0<\/span><span class=\"enlighter-g1\">]<\/span><span class=\"enlighter-text\">;<\/span><em><strong><span class=\"enlighter-c0\">\u00a0 \u00a0\/\/ qual sera a voz mudar de [0] at\u00e9 [20] para testar<\/span><\/strong><\/em><\/div>\n<\/div>\n<div class=\"\"><\/div>\n<div><\/div>\n<div><\/div>\n<p>O mais interessante de tudo, que com apenas poucas linhas de c\u00f3digo, voc\u00ea j\u00e1 consegue fazer um teste.<\/p>\n<p>&nbsp;<\/p>\n<p>Veja abaixo um modelo com link e com textarea para escrever<\/p>\n<p>Escreva um texto.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">&lt;script&gt;\r\nfunction textToSpeech(tt) {\r\n    \/\/ get all voices that browser offers\r\n    var available_voices = window.speechSynthesis.getVoices();\r\n    \/\/ new SpeechSynthesisUtterance object\r\n    var utter = new SpeechSynthesisUtterance();\r\n    utter.rate = 1; \/\/velocidade\r\n    utter.pitch = 0.5; \/\/tom da voz\r\n    utter.text = tt; \/\/texto escrito\r\n    utter.voice = available_voices[0]; \/\/ qual sera a voz mudar de [0] at\u00e9 [20] para testar\r\n    window.speechSynthesis.speak(utter);\r\n}\r\n&lt;\/script&gt;  \r\n\r\n\r\n    &lt;\/head&gt;\r\n\r\nEscrever e Falar&lt;br&gt;\r\n  &lt;textarea id=\"speak-text\" type=\"text\" placeholder=\"Escreva um texto\"  class=\"imp\" style=\"width:50%;\"&gt;&lt;\/textarea&gt;\r\n  &lt;button id=\"speak-button\" onclick=\"textToSpeech(document.getElementById('speak-text').value)\" class=\"btn\"&gt;Falar&lt;\/button&gt;\r\n  &lt;hr&gt;\r\n  \r\n  \r\n  &lt;a href=\"#\" onclick=\"textToSpeech('texto enviado por link') \"&gt;texto enviado por link&lt;\/a&gt;\r\n<\/pre>\n<center><input type=\"button\" name=\"Submit\" value=\"Testar c&oacute;digo\" onClick=\"document.getElementById('divcode').style.display='block';\" style=\"background-color:#FFCC05;border-radius:15px;padding:10px;width:150px;color:#000;\"><br><br><\/center>\n<p>&nbsp;<\/p>\n<p>Tem como disparar uma fun\u00e7\u00e3o depois de terminar de falar.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">&lt;script&gt;\r\nfunction textToSpeech(tt) {\r\n    \/\/ get all voices that browser offers\r\n    var available_voices = window.speechSynthesis.getVoices();\r\n    \/\/ new SpeechSynthesisUtterance object\r\n    var utter = new SpeechSynthesisUtterance();\r\n    utter.rate = 1; \/\/velocidade\r\n    utter.pitch = 0.5; \/\/tom da voz\r\n    utter.text = tt; \/\/texto escrito\r\n    utter.voice = available_voices[0]; \/\/ qual sera a voz mudar de [0] at\u00e9 [20] para testar\r\n\r\n    utter.onend = function() {\r\n        alert('pode ser colocado qualquer fun\u00e7\u00e3o aqui');\r\n                \/\/pode redirecionar p\u00e1gina\r\n\r\n    }\r\n\r\n    window.speechSynthesis.speak(utter);\r\n}\r\n&lt;\/script&gt;  \r\n\r\n  &lt;a href=\"#\" onclick=\"textToSpeech(' depois de falar, vou disparar um alerta') \"&gt;depois de falar, vou disparar um alerta&lt;\/a&gt;\r\n<\/pre>\n<center><input type=\"button\" name=\"Submit\" value=\"Testar c&oacute;digo\" onClick=\"document.getElementById('divcode').style.display='block';\" style=\"background-color:#FFCC05;border-radius:15px;padding:10px;width:150px;color:#000;\"><br><br><\/center>\n<p>&nbsp;<\/p>\n<p>A API de s\u00edntese de fala \u00e9 uma ferramenta incr\u00edvel fornecida por navegadores modernos. Introduzido em 2014, agora \u00e9 amplamente adotado e dispon\u00edvel no Chrome, Firefox, Safari e Edge. IE n\u00e3o \u00e9 suportado.<\/p>\n<p>H\u00e1 uma longa lista de cen\u00e1rios de uso para esta API. Voc\u00ea pode pensar em acessibilidade, primeiro. E temos a oportunidade de criar aplicativos interativos.<\/p>\n<p>Atualmente, na maioria dos navegadores, podemos fazer com que nossos scripts comecem a falar sem serem ativados pelo usu\u00e1rio. A ativa\u00e7\u00e3o do usu\u00e1rio \u00e9 obrigat\u00f3ria no iOS &#8211; o usu\u00e1rio deve tocar ou fazer algo para ativar a reprodu\u00e7\u00e3o de \u00e1udio. Isso tamb\u00e9m est\u00e1 sendo movido rapidamente para o navegador &#8211; a reprodu\u00e7\u00e3o autom\u00e1tica foi preterida no Chrome 70 devido a abuso e removida no Chrome 71.<\/p>\n<p>&nbsp;<\/p>\n<p>Abaixo vou mostrar uma vers\u00e3o mais completa.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p id=\"BWkGKHa\"><img decoding=\"async\" loading=\"lazy\" width=\"939\" height=\"509\" class=\"alignnone size-full wp-image-262 \" src=\"https:\/\/www.joemaster.com.br\/tutoriais\/wp-content\/uploads\/2020\/06\/como-colocar-uma-api-que-deixa-o-navegador-falar-o-que-esta-escrito.png\" alt=\"\" srcset=\"https:\/\/www.joemaster.com.br\/tutoriais\/wp-content\/uploads\/2020\/06\/como-colocar-uma-api-que-deixa-o-navegador-falar-o-que-esta-escrito.png 939w, https:\/\/www.joemaster.com.br\/tutoriais\/wp-content\/uploads\/2020\/06\/como-colocar-uma-api-que-deixa-o-navegador-falar-o-que-esta-escrito-300x163.png 300w, https:\/\/www.joemaster.com.br\/tutoriais\/wp-content\/uploads\/2020\/06\/como-colocar-uma-api-que-deixa-o-navegador-falar-o-que-esta-escrito-768x416.png 768w\" sizes=\"(max-width: 939px) 100vw, 939px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>Segue o script completo.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"html\">&lt;!DOCTYPE html&gt;\r\n&lt;html&gt;\r\n    &lt;head&gt;\r\n        &lt;meta charset=\"utf-8\" \/&gt;\r\n        &lt;meta name=\"format-detection\" content=\"telephone=no\" \/&gt;\r\n        &lt;!-- WARNING: for iOS 7, remove the width=device-width and height=device-height attributes. See https:\/\/issues.apache.org\/jira\/browse\/CB-4323 --&gt;\r\n        &lt;meta name=\"viewport\" content=\"user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi\" \/&gt;\r\n        &lt;link rel=\"stylesheet\" href=\"css\/app.css\"&gt;&lt;\/link&gt;\r\n        &lt;meta name=\"msapplication-tap-highlight\" content=\"no\" \/&gt;\r\n        &lt;title&gt;Escrever e Falar&lt;\/title&gt;\r\n  &lt;script&gt;\r\nfunction textToSpeech(tt) {\r\n    \/\/ get all voices that browser offers\r\n    var available_voices = window.speechSynthesis.getVoices();\r\n    \/\/ new SpeechSynthesisUtterance object\r\n    var utter = new SpeechSynthesisUtterance();\r\n    utter.rate = document.getElementById('rate').value;\r\n    utter.pitch = document.getElementById('pitch').value;;\r\n    utter.text = tt;\r\n    utter.voice = available_voices[document.getElementById(\"chosen-voice\").value];\r\n\r\n    \/\/ event after text has been spoken\r\n    utter.onend = function() {\t\r\n        xxx = tt.replace(\/(?:\\r\\n|\\r|\\n)\/g, ' ');\r\n        document.getElementById(\"texto\").innerHTML = \"&lt;a href=\\\"#\\\" onclick=\\\"copya('\" + xxx.replace(\" \", \"-\") +\"')\\\"&gt;\" + tt +\" &amp;#128266;&lt;\/a&gt;&lt;hr&gt;\"+  document.getElementById(\"texto\").innerHTML;\r\n    }\r\n\r\n    \/\/ speak\r\n    window.speechSynthesis.speak(utter);\r\n}\r\n\r\nfunction copya(yy) {\r\nyyy = yy.replace(\"-\", \" \");\r\ndocument.getElementById('speak-text').value = yyy;\r\ntextToSpeech(yyy);\r\n}\r\n&lt;\/script&gt;  \r\n\r\n&lt;style&gt;\r\nbody {\r\n    position: relative;\r\n    margin: 0;\r\n    font-family: Comic Sans MS,Georgia; text-align: center;\r\n}\r\n\r\n.title { color: #F50890; font-size: 30px; text-shadow: 0px -1px 5px #F5F408;}\r\n.btn {padding: 10px 15px;border-radius: 5px;box-shadow: 1px 1px 1px #ddd; border: 0px solid #dddddd;background: green;margin: 5px; color: #fff;}\r\n.imp {padding: 10px 15px;border-radius: 5px;box-shadow: 1px 1px 1px #ddd; border: 0px solid #dddddd;background: #fafafa;margin: 5px; color: #000;}\r\n.divamarela {padding: 10px 15px;border-radius: 5px;box-shadow: 1px 1px 1px #ddd; border: 1px dashed #ccc;background: #eeeee0;margin: 5px; color: #000;}\r\n\r\n\r\na{color: #000; text-decoration: none; }\r\na:hover { color: #999;  }\r\nli { list-style-type: none; }\r\nhr{border:none;border-top:1px solid #eeeeee;height: 0.5px;}\r\n&lt;\/style&gt;\r\n\r\n    &lt;\/head&gt;\r\n    \r\n&lt;body&gt;\r\n&lt;div id=\"demo-container\" style=\"padding:10px;\"&gt;\r\n&lt;h1 class=\"title\"&gt;&lt;font face=\"Comic Sans MS\"&gt;Escrever e Falar&lt;\/font&gt;&lt;\/h1&gt;\r\n&lt;div class=\"divamarela\"&gt;\r\n  &lt;br&gt;\r\n  vel.&lt;select name=\"rate\" id=\"rate\"&gt;\r\n&lt;option&gt;0.1&lt;\/option&gt;\r\n&lt;option&gt;0.2&lt;\/option&gt;\r\n&lt;option&gt;0.3&lt;\/option&gt;\r\n&lt;option&gt;0.4&lt;\/option&gt;\r\n&lt;option&gt;0.5&lt;\/option&gt;\r\n&lt;option&gt;0.6&lt;\/option&gt;\r\n&lt;option&gt;0.7&lt;\/option&gt;\r\n&lt;option&gt;0.8&lt;\/option&gt;\r\n&lt;option&gt;0.9&lt;\/option&gt;\r\n&lt;option selected&gt;1&lt;\/option&gt;\r\n&lt;\/select&gt;\r\nTom&lt;select name=\"pitch\" id=\"pitch\"&gt;\r\n&lt;option&gt;0.1&lt;\/option&gt;\r\n&lt;option&gt;0.2&lt;\/option&gt;\r\n&lt;option&gt;0.3&lt;\/option&gt;\r\n&lt;option&gt;0.4&lt;\/option&gt;\r\n&lt;option selected&gt;0.5&lt;\/option&gt;\r\n&lt;option&gt;0.6&lt;\/option&gt;\r\n&lt;option&gt;0.7&lt;\/option&gt;\r\n&lt;option&gt;0.8&lt;\/option&gt;\r\n&lt;option&gt;0.9&lt;\/option&gt;\r\n&lt;option&gt;1&lt;\/option&gt;\r\n&lt;\/select&gt;\r\n voz &lt;select id=\"chosen-voice\" style=\"width:40%;\"&gt;\r\n    &lt;option value=\"0\"&gt;Microsoft Maria Desktop - Portuguese(Brazil) (Default)&lt;\/option&gt;\r\n    &lt;option value=\"1\"&gt;Microsoft Zira Desktop - English (United States)&lt;\/option&gt;\r\n    &lt;option value=\"2\"&gt;Google Deutsch&lt;\/option&gt;\r\n    &lt;option value=\"3\"&gt;Google US English&lt;\/option&gt;\r\n    &lt;option value=\"4\"&gt;Google UK English Female&lt;\/option&gt;\r\n    &lt;option value=\"5\"&gt;Google UK English Male&lt;\/option&gt;\r\n    &lt;option value=\"6\"&gt;Google espa&amp;ntilde;ol&lt;\/option&gt;\r\n    &lt;option value=\"7\"&gt;Google espa&amp;ntilde;ol de Estados Unidos&lt;\/option&gt;\r\n    &lt;option value=\"8\"&gt;Google fran&amp;ccedil;ais&lt;\/option&gt;\r\n    &lt;option value=\"9\"&gt;Google \u0939\u093f\u0928\u094d\u0926\u0940&lt;\/option&gt;\r\n    &lt;option value=\"10\"&gt;Google Bahasa Indonesia&lt;\/option&gt;\r\n    &lt;option value=\"11\"&gt;Google italiano&lt;\/option&gt;\r\n    &lt;option value=\"12\"&gt;Google \u65e5\u672c\u8a9e&lt;\/option&gt;\r\n    &lt;option value=\"13\"&gt;Google \ud55c\uad6d\uc758&lt;\/option&gt;\r\n    &lt;option value=\"14\"&gt;Google Nederlands&lt;\/option&gt;\r\n    &lt;option value=\"15\"&gt;Google polski&lt;\/option&gt;\r\n    &lt;option value=\"16\"&gt;Google portugu&amp;ecirc;s do Brasil&lt;\/option&gt;\r\n    &lt;option value=\"17\"&gt;Google \u0440\u0443\u0441\u0441\u043a\u0438\u0439&lt;\/option&gt;\r\n    &lt;option value=\"18\"&gt;Google&amp;nbsp;\u666e\u901a\u8bdd\uff08\u4e2d\u56fd\u5927\u9646\uff09&lt;\/option&gt;\r\n    &lt;option value=\"19\"&gt;Google&amp;nbsp;\u7ca4\u8a9e\uff08\u9999\u6e2f\uff09&lt;\/option&gt;\r\n    &lt;option value=\"20\"&gt;Google \u570b\u8a9e\uff08\u81fa\u7063\uff09&lt;\/option&gt;\r\n  &lt;\/select&gt;\r\n      &lt;textarea rows=\"3\" wrap=\"VIRTUAL\"  class=\"imp\" id=\"speak-text\" style=\"width:90%;\" type=\"text\" placeholder=\"Escreva um texto\"&gt;&lt;\/textarea&gt;\r\n\r\n  &lt;button id=\"speak-button\" onclick=\"textToSpeech(document.getElementById('speak-text').value)\" class=\"btn\" style=\"width:90%;\"&gt;Falar&lt;\/button&gt;\r\n  &lt;\/div&gt;\r\n\r\n&lt;div align=\"left\" style=\"color:#cccccc;\"&gt;&lt;b&gt;Hist\u00f3rico&lt;\/b&gt;&lt;\/div&gt;\r\n&lt;div id=\"texto\"&gt;&lt;\/div&gt;\r\n    &lt;\/div&gt;\r\n\r\n&lt;\/body&gt;\r\n&lt;\/html&gt;<\/pre>\n<center><input type=\"button\" name=\"Submit\" value=\"Testar c&oacute;digo\" onClick=\"document.getElementById('divcode').style.display='block';\" style=\"background-color:#FFCC05;border-radius:15px;padding:10px;width:150px;color:#000;\"><br><br><\/center>\n<div id=\"divcode\" style=\"display:none;z-index:200000001;padding:10px;border-radius:10px;background-color: #0054A1; position:fixed;top:100px;left: 50%;transform: translate(-50%, 0);\">\n  <font color=#fff>Ap\u00f3s clicar em Copy &#8663;<br>O c&oacute;digo fica pronto para testar ou colar onde quiser no  CTRL+V<\/font>\n  <form name=\"codigo\" id=\"codigo\"  method=\"post\" action=\"https:\/\/www.joemaster.com.br\/codigos\/gerar_codigo.php\" target=\"_blank\"><textarea name=\"testarcodigo\" id=\"testarcodigo\"  cols=\"30\" rows=\"30\" wrap=\"VIRTUAL\"><\/textarea><\/form><input type=\"button\" name=\"Submit\" value=\"Testar\" onClick=\"if(document.getElementById('testarcodigo').value ==''){alert('Copie o c\u00f3digo conforme descrito acima!');}else{document.getElementById('codigo').submit();setTimeout(function(){document.getElementById('testarcodigo').value='';document.getElementById('divcode').style.display='none'; }, 1000);}\" style=\"background-color:#FFCC05;border-radius:15px;padding:5px;width:100px;color:#000;\">\n  <input type=\"button\" name=\"Submit\" value=\"Fechar\" onClick=\"document.getElementById('testarcodigo').value='';document.getElementById('divcode').style.display='none';\" style=\"background-color:#FFCC05;border-radius:15px;padding:5px;width:100px;color:#000;\"><\/div>","protected":false},"excerpt":{"rendered":"<p>A API de s\u00edntese de fala \u00e9 uma API incr\u00edvel, \u00f3tima para experimentar novos tipos de interfaces e deixar o navegador falar com voc\u00ea. &nbsp; Quer escutar este texto &nbsp; A API de s\u00edntese de fala \u00e9 uma API incr\u00edvel, \u00f3tima para experimentar novos tipos de interfaces e deixar o navegador falar com voc\u00ea. Clique [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":262,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[15,24],"tags":[75,54,77,79,76,78,81,80],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.12 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Como colocar uma API que deixa o navegador falar o que esta escrito - JoeMaster<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.joemaster.com.br\/tutoriais\/como-colocar-uma-api-que-deixa-o-navegador-falar-o-que-esta-escrito\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Como colocar uma API que deixa o navegador falar o que esta escrito - JoeMaster\" \/>\n<meta property=\"og:description\" content=\"A API de s\u00edntese de fala \u00e9 uma API incr\u00edvel, \u00f3tima para experimentar novos tipos de interfaces e deixar o navegador falar com voc\u00ea. &nbsp; Quer escutar este texto &nbsp; A API de s\u00edntese de fala \u00e9 uma API incr\u00edvel, \u00f3tima para experimentar novos tipos de interfaces e deixar o navegador falar com voc\u00ea. Clique [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.joemaster.com.br\/tutoriais\/como-colocar-uma-api-que-deixa-o-navegador-falar-o-que-esta-escrito\/\" \/>\n<meta property=\"og:site_name\" content=\"JoeMaster\" \/>\n<meta property=\"article:published_time\" content=\"2020-06-29T14:20:42+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-02-09T18:17:09+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.joemaster.com.br\/tutoriais\/wp-content\/uploads\/2020\/06\/como-colocar-uma-api-que-deixa-o-navegador-falar-o-que-esta-escrito.png\" \/>\n\t<meta property=\"og:image:width\" content=\"939\" \/>\n\t<meta property=\"og:image:height\" content=\"509\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"joemaster\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"joemaster\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.joemaster.com.br\/tutoriais\/como-colocar-uma-api-que-deixa-o-navegador-falar-o-que-esta-escrito\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.joemaster.com.br\/tutoriais\/como-colocar-uma-api-que-deixa-o-navegador-falar-o-que-esta-escrito\/\"},\"author\":{\"name\":\"joemaster\",\"@id\":\"https:\/\/www.joemaster.com.br\/tutoriais\/#\/schema\/person\/228e8f1dfe22da473e356f81c1033a9d\"},\"headline\":\"Como colocar uma API que deixa o navegador falar o que esta escrito\",\"datePublished\":\"2020-06-29T14:20:42+00:00\",\"dateModified\":\"2023-02-09T18:17:09+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.joemaster.com.br\/tutoriais\/como-colocar-uma-api-que-deixa-o-navegador-falar-o-que-esta-escrito\/\"},\"wordCount\":339,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.joemaster.com.br\/tutoriais\/#\/schema\/person\/228e8f1dfe22da473e356f81c1033a9d\"},\"keywords\":[\"fala\",\"getElementById\",\"getVoices\",\"rate\",\"reconhecimento\",\"SpeechSynthesisUtterance\",\"textToSpeech\",\"utter\"],\"articleSection\":[\"html\",\"javascript\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.joemaster.com.br\/tutoriais\/como-colocar-uma-api-que-deixa-o-navegador-falar-o-que-esta-escrito\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.joemaster.com.br\/tutoriais\/como-colocar-uma-api-que-deixa-o-navegador-falar-o-que-esta-escrito\/\",\"url\":\"https:\/\/www.joemaster.com.br\/tutoriais\/como-colocar-uma-api-que-deixa-o-navegador-falar-o-que-esta-escrito\/\",\"name\":\"Como colocar uma API que deixa o navegador falar o que esta escrito - JoeMaster\",\"isPartOf\":{\"@id\":\"https:\/\/www.joemaster.com.br\/tutoriais\/#website\"},\"datePublished\":\"2020-06-29T14:20:42+00:00\",\"dateModified\":\"2023-02-09T18:17:09+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.joemaster.com.br\/tutoriais\/como-colocar-uma-api-que-deixa-o-navegador-falar-o-que-esta-escrito\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.joemaster.com.br\/tutoriais\/como-colocar-uma-api-que-deixa-o-navegador-falar-o-que-esta-escrito\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.joemaster.com.br\/tutoriais\/como-colocar-uma-api-que-deixa-o-navegador-falar-o-que-esta-escrito\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In\u00edcio\",\"item\":\"https:\/\/www.joemaster.com.br\/tutoriais\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Como colocar uma API que deixa o navegador falar o que esta escrito\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.joemaster.com.br\/tutoriais\/#website\",\"url\":\"https:\/\/www.joemaster.com.br\/tutoriais\/\",\"name\":\"JoeMaster\",\"description\":\"Tutoriais de WEB e APLICATIVOS EM HTML5, PHP, JS, CSS\",\"publisher\":{\"@id\":\"https:\/\/www.joemaster.com.br\/tutoriais\/#\/schema\/person\/228e8f1dfe22da473e356f81c1033a9d\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.joemaster.com.br\/tutoriais\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"pt-BR\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/www.joemaster.com.br\/tutoriais\/#\/schema\/person\/228e8f1dfe22da473e356f81c1033a9d\",\"name\":\"joemaster\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.joemaster.com.br\/tutoriais\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.joemaster.com.br\/tutoriais\/wp-content\/uploads\/2022\/05\/joemaster.jpg\",\"contentUrl\":\"https:\/\/www.joemaster.com.br\/tutoriais\/wp-content\/uploads\/2022\/05\/joemaster.jpg\",\"width\":1461,\"height\":281,\"caption\":\"joemaster\"},\"logo\":{\"@id\":\"https:\/\/www.joemaster.com.br\/tutoriais\/#\/schema\/person\/image\/\"},\"sameAs\":[\"https:\/\/joemaster.com.br\/tutoriais\"],\"url\":\"https:\/\/www.joemaster.com.br\/tutoriais\/author\/joemaster\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Como colocar uma API que deixa o navegador falar o que esta escrito - JoeMaster","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.joemaster.com.br\/tutoriais\/como-colocar-uma-api-que-deixa-o-navegador-falar-o-que-esta-escrito\/","og_locale":"pt_BR","og_type":"article","og_title":"Como colocar uma API que deixa o navegador falar o que esta escrito - JoeMaster","og_description":"A API de s\u00edntese de fala \u00e9 uma API incr\u00edvel, \u00f3tima para experimentar novos tipos de interfaces e deixar o navegador falar com voc\u00ea. &nbsp; Quer escutar este texto &nbsp; A API de s\u00edntese de fala \u00e9 uma API incr\u00edvel, \u00f3tima para experimentar novos tipos de interfaces e deixar o navegador falar com voc\u00ea. Clique [&hellip;]","og_url":"https:\/\/www.joemaster.com.br\/tutoriais\/como-colocar-uma-api-que-deixa-o-navegador-falar-o-que-esta-escrito\/","og_site_name":"JoeMaster","article_published_time":"2020-06-29T14:20:42+00:00","article_modified_time":"2023-02-09T18:17:09+00:00","og_image":[{"width":939,"height":509,"url":"https:\/\/www.joemaster.com.br\/tutoriais\/wp-content\/uploads\/2020\/06\/como-colocar-uma-api-que-deixa-o-navegador-falar-o-que-esta-escrito.png","type":"image\/png"}],"author":"joemaster","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"joemaster","Est. tempo de leitura":"7 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.joemaster.com.br\/tutoriais\/como-colocar-uma-api-que-deixa-o-navegador-falar-o-que-esta-escrito\/#article","isPartOf":{"@id":"https:\/\/www.joemaster.com.br\/tutoriais\/como-colocar-uma-api-que-deixa-o-navegador-falar-o-que-esta-escrito\/"},"author":{"name":"joemaster","@id":"https:\/\/www.joemaster.com.br\/tutoriais\/#\/schema\/person\/228e8f1dfe22da473e356f81c1033a9d"},"headline":"Como colocar uma API que deixa o navegador falar o que esta escrito","datePublished":"2020-06-29T14:20:42+00:00","dateModified":"2023-02-09T18:17:09+00:00","mainEntityOfPage":{"@id":"https:\/\/www.joemaster.com.br\/tutoriais\/como-colocar-uma-api-que-deixa-o-navegador-falar-o-que-esta-escrito\/"},"wordCount":339,"commentCount":0,"publisher":{"@id":"https:\/\/www.joemaster.com.br\/tutoriais\/#\/schema\/person\/228e8f1dfe22da473e356f81c1033a9d"},"keywords":["fala","getElementById","getVoices","rate","reconhecimento","SpeechSynthesisUtterance","textToSpeech","utter"],"articleSection":["html","javascript"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.joemaster.com.br\/tutoriais\/como-colocar-uma-api-que-deixa-o-navegador-falar-o-que-esta-escrito\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.joemaster.com.br\/tutoriais\/como-colocar-uma-api-que-deixa-o-navegador-falar-o-que-esta-escrito\/","url":"https:\/\/www.joemaster.com.br\/tutoriais\/como-colocar-uma-api-que-deixa-o-navegador-falar-o-que-esta-escrito\/","name":"Como colocar uma API que deixa o navegador falar o que esta escrito - JoeMaster","isPartOf":{"@id":"https:\/\/www.joemaster.com.br\/tutoriais\/#website"},"datePublished":"2020-06-29T14:20:42+00:00","dateModified":"2023-02-09T18:17:09+00:00","breadcrumb":{"@id":"https:\/\/www.joemaster.com.br\/tutoriais\/como-colocar-uma-api-que-deixa-o-navegador-falar-o-que-esta-escrito\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.joemaster.com.br\/tutoriais\/como-colocar-uma-api-que-deixa-o-navegador-falar-o-que-esta-escrito\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.joemaster.com.br\/tutoriais\/como-colocar-uma-api-que-deixa-o-navegador-falar-o-que-esta-escrito\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/www.joemaster.com.br\/tutoriais\/"},{"@type":"ListItem","position":2,"name":"Como colocar uma API que deixa o navegador falar o que esta escrito"}]},{"@type":"WebSite","@id":"https:\/\/www.joemaster.com.br\/tutoriais\/#website","url":"https:\/\/www.joemaster.com.br\/tutoriais\/","name":"JoeMaster","description":"Tutoriais de WEB e APLICATIVOS EM HTML5, PHP, JS, CSS","publisher":{"@id":"https:\/\/www.joemaster.com.br\/tutoriais\/#\/schema\/person\/228e8f1dfe22da473e356f81c1033a9d"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.joemaster.com.br\/tutoriais\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"pt-BR"},{"@type":["Person","Organization"],"@id":"https:\/\/www.joemaster.com.br\/tutoriais\/#\/schema\/person\/228e8f1dfe22da473e356f81c1033a9d","name":"joemaster","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.joemaster.com.br\/tutoriais\/#\/schema\/person\/image\/","url":"https:\/\/www.joemaster.com.br\/tutoriais\/wp-content\/uploads\/2022\/05\/joemaster.jpg","contentUrl":"https:\/\/www.joemaster.com.br\/tutoriais\/wp-content\/uploads\/2022\/05\/joemaster.jpg","width":1461,"height":281,"caption":"joemaster"},"logo":{"@id":"https:\/\/www.joemaster.com.br\/tutoriais\/#\/schema\/person\/image\/"},"sameAs":["https:\/\/joemaster.com.br\/tutoriais"],"url":"https:\/\/www.joemaster.com.br\/tutoriais\/author\/joemaster\/"}]}},"_links":{"self":[{"href":"https:\/\/www.joemaster.com.br\/tutoriais\/wp-json\/wp\/v2\/posts\/261"}],"collection":[{"href":"https:\/\/www.joemaster.com.br\/tutoriais\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.joemaster.com.br\/tutoriais\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.joemaster.com.br\/tutoriais\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.joemaster.com.br\/tutoriais\/wp-json\/wp\/v2\/comments?post=261"}],"version-history":[{"count":1,"href":"https:\/\/www.joemaster.com.br\/tutoriais\/wp-json\/wp\/v2\/posts\/261\/revisions"}],"predecessor-version":[{"id":1128,"href":"https:\/\/www.joemaster.com.br\/tutoriais\/wp-json\/wp\/v2\/posts\/261\/revisions\/1128"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.joemaster.com.br\/tutoriais\/wp-json\/wp\/v2\/media\/262"}],"wp:attachment":[{"href":"https:\/\/www.joemaster.com.br\/tutoriais\/wp-json\/wp\/v2\/media?parent=261"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.joemaster.com.br\/tutoriais\/wp-json\/wp\/v2\/categories?post=261"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.joemaster.com.br\/tutoriais\/wp-json\/wp\/v2\/tags?post=261"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}