| | <!DOCTYPE html> |
| | <html class="no-js consumer" lang="th"> |
| |
|
| | <head> |
| | <meta charset="utf-8"> |
| | <meta content="initial-scale=1, minimum-scale=1, width=device-width" name="viewport"> |
| | <meta content="Google Chrome is a browser that combines a minimal design with sophisticated technology to make the web faster, safer, and easier." |
| | name="description"> |
| | <title> |
| | demo apps |
| | </title> |
| | <link href="http://www.google.com/images/icons/product/chrome-32.png" rel="icon" type="image/ico"> |
| | <link href="http://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700&subset=latin" rel="stylesheet"> |
| | <link href="http://www.google.com/intl/en/chrome/assets/common/css/chrome.min.css" rel="stylesheet"> |
| | <h4 style="overscroll-behavior-block;:"><a href="../index.html">HOME</a></h4> |
| | <style> |
| | #info { |
| | font-size: 20px; |
| | } |
| | |
| | #div_start { |
| | float: right; |
| | } |
| | |
| | #headline { |
| | text-decoration: none |
| | } |
| | |
| | #results { |
| | font-size: 14px; |
| | font-weight: bold; |
| | border: 1px solid #ddd; |
| | padding: 15px; |
| | text-align: left; |
| | min-height: 150px; |
| | background-color: rgb(250, 250, 73); |
| | } |
| | |
| | h1, .h1 { |
| | color: #000; |
| | font-size: 3.2em; |
| | font-weight: 21; |
| | line-height: 1.15; |
| | margin: 0 0 0.7em; |
| | background-color: rgb(252, 252, 248); width: -20px; |
| | } |
| | |
| | #start_button { |
| | border: 0; |
| | background-color: transparent; |
| | padding: 0; |
| | } |
| | |
| | .interim { |
| | color: gray; |
| | } |
| | |
| | .final { |
| | color: black; |
| | padding-right: 3px; |
| | } |
| | |
| | .button { |
| | display: none; |
| | } |
| | |
| | .marquee { |
| | margin: 20px auto; |
| | } |
| | |
| | #buttons { |
| | margin: 10px 0; |
| | position: relative; |
| | top: -50px; |
| | } |
| | |
| | #copy { |
| | margin-top: 20px; |
| | } |
| | |
| | #copy>div { |
| | display: none; |
| | margin: 0 70px; |
| | } |
| | |
| | a.c1 { |
| | font-weight: normal; |
| | } |
| | |
| | body{ |
| | background-image: url(backspeech.png) ; height: 500; width: -; |
| | background-position: center; |
| | font-style: italic; |
| | } |
| | |
| | </style> |
| | </head> |
| |
|
| | <link rel="stylesheet" href="style.css"> |
| | <body class="" id="grid"> |
| | <div class="browser-landing" id="main"> |
| | <div class="compact marquee-stacked" id="marquee"> |
| | <div class="marquee-copy"> |
| | <h1> |
| | <a class="c1" href="https://www.instagram.com/ansellmaputri/?hl=id"> |
| | PROLOVE</a> |
| | </h1> |
| | </div> |
| | </div> |
| | <div class="compact marquee"> |
| | <div id="info"> |
| | |
| | <p id="info_start"> |
| | Click on the microphone icon and begin speaking for as long as you like. |
| | </p> |
| | <p></p> |
| | <p id="info_speak_now" style="display:none"> |
| | Speak now. |
| | </p> |
| | <p id="info_no_speech" style="display:none"> |
| | No speech was detected. You may need to adjust your <a href="//support.google.com/chrome/bin/answer.py?hl=en&answer=1407892">microphone |
| | settings</a>. |
| | </p> |
| | <p id="info_no_microphone" style="display:none"> |
| | No microphone was found. Ensure that a microphone is installed and that |
| | <a href="//support.google.com/chrome/bin/answer.py?hl=en&answer=1407892"> |
| | microphone settings</a> are configured correctly. |
| | </p> |
| | <p id="info_allow" style="display:none"> |
| | Click the "Allow" button above to enable your microphone. |
| | </p> |
| | <p id="info_denied" style="display:none"> |
| | Permission to use microphone was denied. |
| | </p> |
| | <p id="info_blocked" style="display:none"> |
| | Permission to use microphone is blocked. To change, go to chrome://settings/contentExceptions#media-stream |
| | </p> |
| | <p id="info_upgrade" style="display:none"> |
| | Web Speech API is not supported by this browser. Upgrade to <a href="//www.google.com/chrome">Chrome</a> version |
| | 25 or later. |
| | </p> |
| | </div> |
| | |
| | <div id="div_start"> |
| | <button id="start_button" onclick="startButton(event)"><img alt="Start" id="start_img" |
| | src="5346039.png"></button> |
| | </div> |
| | <div id="results"> |
| | <span class="final" id="final_span"></span> <span class="interim" id="interim_span"></span> |
| | </div> |
| | <div id="copy"> |
| | <button class="button" id="copy_button" onclick="copyButton()">Copy and Paste</button> |
| | <div id="copy_info"> |
| | <p> |
| | Press Control-C to copy text. |
| | </p> |
| | <p> |
| | (Command-C on Mac.) |
| | </p> |
| | </div><button class="button" id="email_button" onclick="emailButton()">save</button> |
| | <div id="email_info"> |
| | <p> |
| | Text sent to default email application. |
| | </p> |
| | <p> |
| | (See chrome://settings/handlers to change.) |
| | </p> |
| | </div> |
| | </div> |
| | <div class="compact marquee" id="div_language"> |
| | <select id="select_language" onchange="updateCountry()"> |
| | </select> <select id="select_dialect"> |
| | </select> |
| | </div> |
| | </div> |
| | </div> |
| | |
| | <script src="http://www.google.com/intl/en/chrome/assets/common/js/chrome.min.js"> |
| |
|
| | </script> |
| | <script> |
| | var chrmMenuBar = new chrm.ui.MenuBar(); |
| | chrmMenuBar.decorate('nav'); |
| | var chrmLogo = new chrm.ui.Logo('logo'); |
| | |
| | var chrmscroll = new chrm.ui.SmoothScroll('scroll'); |
| | chrmscroll.init(); |
| | |
| | |
| | |
| | window.___gcfg = { lang: 'en' }; |
| | (function () { |
| | var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; |
| | po.src = 'https://apis.google.com/js/plusone.js'; |
| | var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); |
| | })(); |
| | |
| | |
| | |
| | |
| | var doubleTracker = new gweb.analytics.DoubleTrack('floodlight', { |
| | src: 2542116, |
| | type: 'clien612', |
| | cat: 'chrom0' |
| | }); |
| | doubleTracker.track(); |
| | |
| | doubleTracker.trackClass('doubletrack', true); |
| | </script> |
| | <script> |
| | var langs = |
| | [['Afrikaans', ['af-ZA']], |
| | ['Bahasa Indonesia', ['id-ID']], |
| | ['Bahasa Melayu', ['ms-MY']], |
| | ['Català', ['ca-ES']], |
| | ['Čeština', ['cs-CZ']], |
| | ['Dansk', ['da-DK']], |
| | ['Deutsch', ['de-DE']], |
| | ['English', ['en-AU', 'Australia'], |
| | ['en-CA', 'Canada'], |
| | ['en-IN', 'India'], |
| | ['en-NZ', 'New Zealand'], |
| | ['en-ZA', 'South Africa'], |
| | ['en-GB', 'United Kingdom'], |
| | ['en-US', 'United States']], |
| | ['Español', ['es-AR', 'Argentina'], |
| | ['es-BO', 'Bolivia'], |
| | ['es-CL', 'Chile'], |
| | ['es-CO', 'Colombia'], |
| | ['es-CR', 'Costa Rica'], |
| | ['es-EC', 'Ecuador'], |
| | ['es-SV', 'El Salvador'], |
| | ['es-ES', 'España'], |
| | ['es-US', 'Estados Unidos'], |
| | ['es-GT', 'Guatemala'], |
| | ['es-HN', 'Honduras'], |
| | ['es-MX', 'México'], |
| | ['es-NI', 'Nicaragua'], |
| | ['es-PA', 'Panamá'], |
| | ['es-PY', 'Paraguay'], |
| | ['es-PE', 'Perú'], |
| | ['es-PR', 'Puerto Rico'], |
| | ['es-DO', 'República Dominicana'], |
| | ['es-UY', 'Uruguay'], |
| | ['es-VE', 'Venezuela']], |
| | ['Euskara', ['eu-ES']], |
| | ['Filipino', ['fil-PH']], |
| | ['Français', ['fr-FR']], |
| | ['Galego', ['gl-ES']], |
| | ['Hrvatski', ['hr_HR']], |
| | ['IsiZulu', ['zu-ZA']], |
| | ['Íslenska', ['is-IS']], |
| | ['Italiano', ['it-IT', 'Italia'], |
| | ['it-CH', 'Svizzera']], |
| | ['Lietuvių', ['lt-LT']], |
| | ['Magyar', ['hu-HU']], |
| | ['Nederlands', ['nl-NL']], |
| | ['Norsk bokmål', ['nb-NO']], |
| | ['Polski', ['pl-PL']], |
| | ['Português', ['pt-BR', 'Brasil'], |
| | ['pt-PT', 'Portugal']], |
| | ['Română', ['ro-RO']], |
| | ['Slovenščina', ['sl-SI']], |
| | ['Slovenčina', ['sk-SK']], |
| | ['Suomi', ['fi-FI']], |
| | ['Svenska', ['sv-SE']], |
| | ['Tiếng Việt', ['vi-VN']], |
| | ['Türkçe', ['tr-TR']], |
| | ['Ελληνικά', ['el-GR']], |
| | ['български', ['bg-BG']], |
| | ['Pусский', ['ru-RU']], |
| | ['Српски', ['sr-RS']], |
| | ['Українська', ['uk-UA']], |
| | ['한국어', ['ko-KR']], |
| | ['中文', ['cmn-Hans-CN', '普通话 (中国大陆)'], |
| | ['cmn-Hans-HK', '普通话 (香港)'], |
| | ['cmn-Hant-TW', '中文 (台灣)'], |
| | ['yue-Hant-HK', '粵語 (香港)']], |
| | ['日本語', ['ja-JP']], |
| | ['हिन्दी', ['hi-IN']], |
| | ['ภาษาไทย', ['th-TH']]]; |
| | |
| | for (var i = 0; i < langs.length; i++) { |
| | select_language.options[i] = new Option(langs[i][0], i); |
| | } |
| | select_language.selectedIndex = 7; |
| | updateCountry(); |
| | select_dialect.selectedIndex = 6; |
| | showInfo('info_start'); |
| | |
| | function updateCountry() { |
| | for (var i = select_dialect.options.length - 1; i >= 0; i--) { |
| | select_dialect.remove(i); |
| | } |
| | var list = langs[select_language.selectedIndex]; |
| | for (var i = 1; i < list.length; i++) { |
| | select_dialect.options.add(new Option(list[i][1], list[i][0])); |
| | } |
| | select_dialect.style.visibility = list[1].length == 1 ? 'hidden' : 'visible'; |
| | } |
| | |
| | var create_email = false; |
| | var final_transcript = ''; |
| | var recognizing = false; |
| | var ignore_onend; |
| | var start_timestamp; |
| | if (!('webkitSpeechRecognition' in window)) { |
| | upgrade(); |
| | } else { |
| | start_button.style.display = 'inline-block'; |
| | var recognition = new webkitSpeechRecognition(); |
| | recognition.continuous = true; |
| | recognition.interimResults = true; |
| | |
| | recognition.onstart = function () { |
| | recognizing = true; |
| | showInfo('info_speak_now'); |
| | start_img.src = '/intl/en/chrome/assets/common/images/content/mic-animate.gif'; |
| | }; |
| | |
| | recognition.onerror = function (event) { |
| | if (event.error == 'no-speech') { |
| | start_img.src = '/intl/en/chrome/assets/common/images/content/mic.gif'; |
| | showInfo('info_no_speech'); |
| | ignore_onend = true; |
| | } |
| | if (event.error == 'audio-capture') { |
| | start_img.src = '/intl/en/chrome/assets/common/images/content/mic.gif'; |
| | showInfo('info_no_microphone'); |
| | ignore_onend = true; |
| | } |
| | if (event.error == 'not-allowed') { |
| | if (event.timeStamp - start_timestamp < 100) { |
| | showInfo('info_blocked'); |
| | } else { |
| | showInfo('info_denied'); |
| | } |
| | ignore_onend = true; |
| | } |
| | }; |
| | |
| | recognition.onend = function () { |
| | recognizing = false; |
| | if (ignore_onend) { |
| | return; |
| | } |
| | start_img.src = '/intl/en/chrome/assets/common/images/content/mic.gif'; |
| | if (!final_transcript) { |
| | showInfo('info_start'); |
| | return; |
| | } |
| | showInfo(''); |
| | if (window.getSelection) { |
| | window.getSelection().removeAllRanges(); |
| | var range = document.createRange(); |
| | range.selectNode(document.getElementById('final_span')); |
| | window.getSelection().addRange(range); |
| | } |
| | if (create_email) { |
| | create_email = false; |
| | createEmail(); |
| | } |
| | }; |
| | |
| | recognition.onresult = function (event) { |
| | var interim_transcript = ''; |
| | if (typeof (event.results) == 'undefined') { |
| | recognition.onend = null; |
| | recognition.stop(); |
| | upgrade(); |
| | return; |
| | } |
| | for (var i = event.resultIndex; i < event.results.length; ++i) { |
| | if (event.results[i].isFinal) { |
| | final_transcript += event.results[i][0].transcript; |
| | } else { |
| | interim_transcript += event.results[i][0].transcript; |
| | } |
| | } |
| | final_transcript = capitalize(final_transcript); |
| | final_span.innerHTML = linebreak(final_transcript); |
| | interim_span.innerHTML = linebreak(interim_transcript); |
| | if (final_transcript || interim_transcript) { |
| | showButtons('inline-block'); |
| | } |
| | }; |
| | } |
| | |
| | function upgrade() { |
| | start_button.style.visibility = 'hidden'; |
| | showInfo('info_upgrade'); |
| | } |
| | |
| | var two_line = /\n\n/g; |
| | var one_line = /\n/g; |
| | function linebreak(s) { |
| | return s.replace(two_line, '<p></p>').replace(one_line, '<br>'); |
| | } |
| | |
| | var first_char = /\S/; |
| | function capitalize(s) { |
| | return s.replace(first_char, function (m) { return m.toUpperCase(); }); |
| | } |
| | |
| | function createEmail() { |
| | var n = final_transcript.indexOf('\n'); |
| | if (n < 0 || n >= 80) { |
| | n = 40 + final_transcript.substring(40).indexOf(' '); |
| | } |
| | var subject = encodeURI(final_transcript.substring(0, n)); |
| | var body = encodeURI(final_transcript.substring(n + 1)); |
| | window.location.href = 'mailto:?subject=' + subject + '&body=' + body; |
| | } |
| | |
| | function copyButton() { |
| | if (recognizing) { |
| | recognizing = false; |
| | recognition.stop(); |
| | } |
| | copy_button.style.display = 'none'; |
| | copy_info.style.display = 'inline-block'; |
| | showInfo(''); |
| | } |
| | |
| | function emailButton() { |
| | if (recognizing) { |
| | create_email = true; |
| | recognizing = false; |
| | recognition.stop(); |
| | } else { |
| | createEmail(); |
| | } |
| | email_button.style.display = 'none'; |
| | email_info.style.display = 'inline-block'; |
| | showInfo(''); |
| | } |
| | |
| | function startButton(event) { |
| | if (recognizing) { |
| | recognition.stop(); |
| | return; |
| | } |
| | final_transcript = ''; |
| | recognition.lang = select_dialect.value; |
| | recognition.start(); |
| | ignore_onend = false; |
| | final_span.innerHTML = ''; |
| | interim_span.innerHTML = ''; |
| | start_img.src = 'http://www.google.com/intl/en/chrome/assets/common/images/content/mic-slash.gif'; |
| | showInfo('info_allow'); |
| | showButtons('none'); |
| | start_timestamp = event.timeStamp; |
| | } |
| | |
| | function showInfo(s) { |
| | if (s) { |
| | for (var child = info.firstChild; child; child = child.nextSibling) { |
| | if (child.style) { |
| | child.style.display = child.id == s ? 'inline' : 'none'; |
| | } |
| | } |
| | info.style.visibility = 'visible'; |
| | } else { |
| | info.style.visibility = 'hidden'; |
| | } |
| | } |
| | |
| | var current_style; |
| | function showButtons(style) { |
| | if (style == current_style) { |
| | return; |
| | } |
| | current_style = style; |
| | copy_button.style.display = style; |
| | email_button.style.display = style; |
| | copy_info.style.display = 'none'; |
| | email_info.style.display = 'none'; |
| | } |
| | </script> |
| | </body> |
| |
|
| | </html> |