Guest User

Untitled

a guest
Feb 25th, 2018
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.30 KB | None | 0 0
  1. var langs =
  2. [['Afrikaans', ['af-ZA']],
  3. ['Hebrew', ['he-IL']],
  4. ['Bahasa Melayu', ['ms-MY']],
  5. ['Català', ['ca-ES']],
  6. ['Čeština', ['cs-CZ']],
  7. ['Deutsch', ['de-DE']],
  8. ['English', ['en-AU', 'Australia'],
  9. ['en-CA', 'Canada'],
  10. ['en-IN', 'India'],
  11. ['en-NZ', 'New Zealand'],
  12. ['en-ZA', 'South Africa'],
  13. ['en-GB', 'United Kingdom'],
  14. ['en-US', 'United States']],
  15. ['Español', ['es-AR', 'Argentina'],
  16. ['es-BO', 'Bolivia'],
  17. ['es-CL', 'Chile'],
  18. ['es-CO', 'Colombia'],
  19. ['es-CR', 'Costa Rica'],
  20. ['es-EC', 'Ecuador'],
  21. ['es-SV', 'El Salvador'],
  22. ['es-ES', 'España'],
  23. ['es-US', 'Estados Unidos'],
  24. ['es-GT', 'Guatemala'],
  25. ['es-HN', 'Honduras'],
  26. ['es-MX', 'México'],
  27. ['es-NI', 'Nicaragua'],
  28. ['es-PA', 'Panamá'],
  29. ['es-PY', 'Paraguay'],
  30. ['es-PE', 'Perú'],
  31. ['es-PR', 'Puerto Rico'],
  32. ['es-DO', 'República Dominicana'],
  33. ['es-UY', 'Uruguay'],
  34. ['es-VE', 'Venezuela']],
  35. ['Euskara', ['eu-ES']],
  36. ['Français', ['fr-FR']],
  37. ['Galego', ['gl-ES']],
  38. ['Hrvatski', ['hr_HR']],
  39. ['IsiZulu', ['zu-ZA']],
  40. ['Íslenska', ['is-IS']],
  41. ['Italiano', ['it-IT', 'Italia'],
  42. ['it-CH', 'Svizzera']],
  43. ['Magyar', ['hu-HU']],
  44. ['Nederlands', ['nl-NL']],
  45. ['Norsk bokmål', ['nb-NO']],
  46. ['Polski', ['pl-PL']],
  47. ['Português', ['pt-BR', 'Brasil'],
  48. ['pt-PT', 'Portugal']],
  49. ['Română', ['ro-RO']],
  50. ['Slovenčina', ['sk-SK']],
  51. ['Suomi', ['fi-FI']],
  52. ['Svenska', ['sv-SE']],
  53. ['Türkçe', ['tr-TR']],
  54. ['български', ['bg-BG']],
  55. ['Pусский', ['ru-RU']],
  56. ['Српски', ['sr-RS']],
  57. ['한국어', ['ko-KR']],
  58. ['中文', ['cmn-Hans-CN', '普通话 (中国大陆)'],
  59. ['cmn-Hans-HK', '普通话 (香港)'],
  60. ['cmn-Hant-TW', '中文 (台灣)'],
  61. ['yue-Hant-HK', '粵語 (香港)']],
  62. ['日本語', ['ja-JP']],
  63. ['Lingua latīna', ['la']]];
  64. for (var i = 0; i < langs.length; i++) {
  65. select_language.options[i] = new Option(langs[i][0], i);
  66. }
  67. select_language.selectedIndex = 1;
  68. updateCountry();
  69. select_dialect.selectedIndex = 1;
  70. showInfo('info_start');
  71. function updateCountry() {
  72. for (var i = select_dialect.options.length - 1; i >= 0; i--) {
  73. select_dialect.remove(i);
  74. }
  75. var list = langs[select_language.selectedIndex];
  76. for (var i = 1; i < list.length; i++) {
  77. select_dialect.options.add(new Option(list[i][1], list[i][0]));
  78. }
  79. select_dialect.style.visibility = list[1].length == 1 ? 'hidden' : 'visible';
  80. }
  81. var create_email = false;
  82. var final_transcript = '';
  83. var recognizing = false;
  84. var ignore_onend;
  85. var start_timestamp;
  86. if (!('webkitSpeechRecognition' in window)) {
  87.  
  88. console.log("before upgrade")
  89. upgrade();
  90. } else {
  91. start_button.style.display = 'inline-block';
  92. var recognition = new webkitSpeechRecognition();
  93. recognition.continuous = true;
  94. recognition.interimResults = true;
  95. recognition.onstart = function() {
  96. recognizing = true;
  97. showInfo('info_speak_now');
  98. console.log("webkitSpeechRecognition")
  99. start_img.src = '/static/Mic_MicroPhone_Mute.PNG';
  100. start_pic=document.getElementById("start_img")
  101. start_pic.style.height="59px";
  102. start_pic.style.width="43px";
  103. };
  104. recognition.onerror = function(event) {
  105. if (event.error == 'no-speech') {
  106. console.log("event error");
  107. start_img.src = '/static/mic.png';
  108. showInfo('info_no_speech');
  109. ignore_onend = true;
  110. }
  111. if (event.error == 'audio-capture') {
  112. console.log("event caputre");
  113. start_img.src = '/static/mic.png';
  114. showInfo('info_no_microphone');
  115. ignore_onend = true;
  116. }
  117. if (event.error == 'not-allowed') {
  118. console.log("even not allowed");
  119. if (event.timeStamp - start_timestamp < 100) {
  120. showInfo('info_blocked');
  121. } else {
  122. showInfo('info_denied');
  123. }
  124. ignore_onend = true;
  125. }
  126. };
  127. recognition.onend = function() {
  128. recognizing = false;
  129. if (ignore_onend) {
  130. return;
  131. }
  132. console.log("init mic image");
  133. start_img.src = '/static/mic.png';
  134. if (!final_transcript) {
  135. showInfo('info_start');
  136. return;
  137. }
  138. showInfo('');
  139.  
  140. // if (window.getSelection) {
  141. // window.getSelection().removeAllRanges();
  142. // var range = document.createRange();
  143. // range.selectNode(document.getElementById('final_span'));
  144. // window.getSelection().addRange(range);
  145. // }
  146. if (create_email) {
  147. create_email = false;
  148. createEmail();
  149. }
  150. };
  151. recognition.onresult = function(event) {
  152. var interim_transcript = '';
  153. for (var i = event.resultIndex; i < event.results.length; ++i) {
  154. if (event.results[i].isFinal) {
  155. console.log("Final!!!!!!!!!!!!")
  156. console.log(final_span.value+event.results[i][0].transcript);
  157. final_transcript = final_span.value+event.results[i][0].transcript;
  158.  
  159. final_span.value=final_transcript;
  160. } else {
  161. interim_transcript += event.results[i][0].transcript;
  162. }
  163. }
  164.  
  165.  
  166. final_transcript = capitalize(final_transcript);
  167. console.log("interim_transcript :");
  168. console.log(interim_transcript);
  169. console.log("final_transcript :");
  170. console.log(final_transcript);
  171.  
  172. // final_span.value = linebreak(interim_transcript);
  173. if (final_transcript) {
  174.  
  175. console.log("final transcript true");
  176. // final_span.value= linebreak(final_transcript);
  177. }
  178. if (final_transcript || interim_transcript) {
  179. showButtons('inline-block');
  180. }
  181. };
  182. }
  183. function upgrade() {
  184. start_button.style.visibility = 'hidden';
  185. showInfo('info_upgrade');
  186. }
  187. var two_line = /nn/g;
  188. var one_line = /n/g;
  189. function linebreak(s) {
  190. return s.replace(two_line, '<p></p>').replace(one_line, '<br>');
  191. }
  192. var first_char = /S/;
  193. function capitalize(s) {
  194. return s.replace(first_char, function(m) { return m.toUpperCase(); });
  195. }
  196. function createEmail() {
  197. var n = final_transcript.indexOf('n');
  198. if (n < 0 || n >= 80) {
  199. n = 40 + final_transcript.substring(40).indexOf(' ');
  200. }
  201. var subject = encodeURI(final_transcript.substring(0, n));
  202. var body = encodeURI(final_transcript.substring(n + 1));
  203. textarea_value=document.getElementById("final_span").value;
  204.  
  205. window.location.href = 'mailto:?subject=' + "Puzzle-Soft Telemedicine - Speech Recognizer " + '&body=' + textarea_value;
  206. }
  207. function copyButton() {
  208. if (recognizing) {
  209. recognizing = false;
  210. recognition.stop();
  211. }
  212. copy_button.style.display = 'none';
  213. copy_info.style.display = 'inline-block';
  214. showInfo('');
  215. }
  216. function emailButton() {
  217. if (recognizing) {
  218. create_email = true;
  219. recognizing = false;
  220. recognition.stop();
  221. } else {
  222. createEmail();
  223. }
  224. email_button.style.display = 'none';
  225. email_info.style.display = 'inline-block';
  226. showInfo('');
  227. }
  228. function startButton(event) {
  229. if (recognizing) {
  230. recognition.stop();
  231. console.log("StartButton if")
  232. return;
  233. }
  234. console.log("StartButton else")
  235. final_transcript = '';
  236. recognition.lang = select_dialect.value;
  237. recognition.start();
  238. ignore_onend = false;
  239. // final_span.innerHTML = '';
  240. // interim_span.innerHTML = '';
  241. start_img.src = '/static/mic.png';
  242.  
  243. showInfo('info_allow');
  244. showButtons('none');
  245. start_timestamp = event.timeStamp;
  246. }
  247. function showInfo(s) {
  248. if (s) {
  249. for (var child = info.firstChild; child; child = child.nextSibling) {
  250. if (child.style) {
  251. child.style.display = child.id == s ? 'inline' : 'none';
  252. }
  253. }
  254. info.style.visibility = 'visible';
  255. } else {
  256. info.style.visibility = 'hidden';
  257. }
  258. }
  259. var current_style;
  260. function showButtons(style) {
  261. if (style == current_style) {
  262. return;
  263. }
  264. current_style = style;
  265. copy_button.style.display = style;
  266. email_button.style.display = style;
  267. copy_info.style.display = 'none';
  268. email_info.style.display = 'none';
  269. }
  270.  
  271. function ClearText() {
  272. console.log("clear");
  273. text_area_value=document.getElementById("final_span");
  274. console.log(text_area_value);
  275. console.log(text_area_value.value);
  276. text_area_value.value='';
  277. }
  278. //var givevalue = function (my_key) {
  279. // return dict[my_key];
  280. //
  281. // }
  282. //
  283. //js_json={'אדרנלypr': 'Olanzapine Teva', 'זיפאדהרה': 'Zypadhera', 'אומפראזול': 'Omeprazole', 'אומפרדקס': 'Omepradex', 'לוסק': 'Losec', 'אומפריקס': 'Omeprix', 'אומפרדקס Z': 'Omepradex Z', 'אומפרה': 'Omepra', 'אונדאנסטרון': 'Ondansetron', 'זופרן': 'Zofran', 'אודנטרון': 'Odnatron', 'אונדאנסטרון - פרזניוס': 'Ondansetron - Fresenius', 'אונדנסטרון אינובמד': 'Ondansetron Inovamed'}
  284. //function replaceTextAreaDict() {
  285. //textarea_result=document.getElementById("final_span");
  286. // textarea_words=textarea_result.split(' ') ;
  287. // for (var i = 0; i < textarea_result.length; i++) {
  288. //
  289. // }
  290. //
  291. //
  292. //
  293. // givevalue()
  294. //
  295. //}
  296. //
  297. //replaceTextAreaDict();
Add Comment
Please, Sign In to add comment