@@ -119,11 +119,11 @@ Blockly.JavaScript['board_ready'] = function (block) {
119119 return code ;
120120} ;
121121
122- Blockly . JavaScript [ 'board_error' ] = function ( block ) {
122+ Blockly . JavaScript [ 'board_error' ] = function ( block ) {
123123 var statements_do_ = Blockly . JavaScript . statementToCode ( block , 'do_' ) ;
124- var code = 'board.on("error",function(){\n' +
125- statements_do_ +
126- '});\n' ;
124+ var code = 'board.on("error",function(){\n' +
125+ statements_do_ +
126+ '});\n' ;
127127 return code ;
128128} ;
129129
@@ -750,7 +750,7 @@ Blockly.JavaScript['temp_data_get'] = function (block) {
750750 ' return ' + getCookie + '(' + value_name_ + ');\n' +
751751 '})()' ;
752752 } else if ( dropdown_type_ == 2 ) {
753- code = 'localStorage.' + value_name_ ;
753+ code = 'localStorage.' + value_name_ ;
754754 } else if ( dropdown_type_ == 3 ) {
755755 code = 'sessionStorage.' + value_name_ ;
756756 }
@@ -759,38 +759,46 @@ Blockly.JavaScript['temp_data_get'] = function (block) {
759759
760760Blockly . JavaScript [ 'sound_recognition' ] = function ( block ) {
761761 var dropdown_lang_ = block . getFieldValue ( 'lang_' ) ;
762+ var dropdown_interimresults_ = block . getFieldValue ( 'interimResults_' ) ;
762763 var statements_recognition_ = Blockly . JavaScript . statementToCode ( block , 'recognition_' ) ;
763764 var recognition = Blockly . JavaScript . variableDB_ . getDistinctName (
764765 'recognition' , Blockly . Variables . NAME_TYPE ) ;
765- var code = '(function(){\n' +
766+ console . log ( dropdown_interimresults_ ) ;
767+ var inter1 , inter2 , mobile ;
768+ if ( dropdown_interimresults_ == 'on' ) {
769+ inter1 = 'false' ;
770+ inter2 = 'true' ;
771+ } else if ( dropdown_interimresults_ == 'off' ) {
772+ inter1 = 'true' ;
773+ inter2 = 'false' ;
774+ }
775+ console . log ( dropdown_interimresults_ ) ;
776+ var code = '(function(){\n' +
766777 ' if (!("webkitSpeechRecognition" in window)) {\n' +
767778 ' alert("本瀏覽器不支援語音辨識,請更換瀏覽器!(Chrome 25 版以上才支援語音辨識)");\n' +
768779 ' } else{\n' +
769780 ' var ' + recognition + ' = new webkitSpeechRecognition();\n' +
770- ' var checkFinal;\n' +
771781 ' ' + recognition + '.continuous = true;\n' +
772782 ' ' + recognition + '.interimResults = true;\n' +
773- ' ' + recognition + '.lang = "' + dropdown_lang_ + '";\n\n' +
783+ ' ' + recognition + '.lang = "' + dropdown_lang_ + '";\n\n' +
774784 ' ' + recognition + '.onstart = function() {\n' +
775785 ' console.log("Start recognize...");\n' +
776- ' checkFinal=0;\n' +
777786 ' };\n\n' +
778787 ' ' + recognition + '.onend = function() {\n' +
779788 ' console.log("Stop recognize");\n' +
780789 ' };\n\n' +
781790 ' ' + recognition + '.onresult = function(event) {\n' +
782791 ' var resultLength = event.results.length-1;\n' +
783792 ' var resultTranscript = event.results[resultLength][0].transcript;\n' +
784- ' if(event.results[resultLength].isFinal===false){\n' +
785- ' console.log(resultTranscript);\n' +
786- ' ' + statements_recognition_ +
787- ' }else if(event.results[resultLength].isFinal===true){\n' +
788- ' checkFinal=0;\n' +
789- ' console.log("final");\n' +
790- ' }\n' +
793+ ' if(event.results[resultLength].isFinal===' + inter1 + '){\n' +
794+ ' console.log(resultTranscript);\n' +
795+ ' ' + statements_recognition_ +
796+ ' }else if(event.results[resultLength].isFinal===' + inter2 + '){\n' +
797+ ' console.log("final");\n' +
798+ ' }\n' +
791799 ' };\n' +
792- ' ' + recognition + '.start();\n' +
793- ' }\n' +
800+ ' ' + recognition + '.start();\n' +
801+ ' }\n' +
794802 '})();\n' ;
795803 return code ;
796804} ;
@@ -803,18 +811,15 @@ Blockly.JavaScript['sound_recognition_check'] = function (block) {
803811 var b = value_text_ . split ( ', ' ) ;
804812 var code ;
805813 if ( b . length == 1 ) {
806- code = ' if(resultTranscript.indexOf("' + b [ 0 ] + '")!==-1 && checkFinal===0){\n' +
807- ' checkFinal=1;\n' +
814+ code = ' if(resultTranscript.indexOf("' + b [ 0 ] + '")!==-1){\n' +
808815 ' ' + statements_do_ +
809816 ' }\n' ;
810817 } else {
811- code = ' if(resultTranscript.indexOf("' + b [ 0 ] + '")!==-1 && checkFinal===0){\n' +
812- ' checkFinal=1;\n' +
818+ code = ' if(resultTranscript.indexOf("' + b [ 0 ] + '")!==-1){\n' +
813819 ' ' + statements_do_ +
814820 ' }\n' ;
815821 for ( var i = 1 ; i < b . length ; i ++ ) {
816- code += ' if(resultTranscript.indexOf("' + b [ i ] + '")!==-1 && checkFinal===0){\n' +
817- ' checkFinal=1;\n' +
822+ code += ' if(resultTranscript.indexOf("' + b [ i ] + '")!==-1){\n' +
818823 ' ' + statements_do_ +
819824 ' }\n' ;
820825 }
@@ -823,7 +828,7 @@ Blockly.JavaScript['sound_recognition_check'] = function (block) {
823828} ;
824829
825830
826- Blockly . JavaScript [ 'translate_speech' ] = function ( block ) {
831+ Blockly . JavaScript [ 'translate_speech' ] = function ( block ) {
827832 var text_id_ = block . getFieldValue ( 'id_' ) ;
828833 var dropdown_lang_ = block . getFieldValue ( 'lang_' ) ;
829834 var dropdown_sex_ = block . getFieldValue ( 'sex_' ) ;
@@ -838,16 +843,16 @@ Blockly.JavaScript['translate_speech'] = function(block) {
838843 'text' , Blockly . Variables . NAME_TYPE ) ;
839844 var appID = text_id_ ;
840845 var language = dropdown_lang_ ;
841- var format = 'audio/mp3&options=MinSize|' + dropdown_sex_ ;
846+ var format = 'audio/mp3&options=MinSize|' + dropdown_sex_ ;
842847 var a = value_speech_ . split ( '' ) ;
843848 value_speech_ = a . splice ( 1 , ( a . length - 2 ) ) . join ( '' ) ;
844- var code = '(function(){\n' +
845- ' var ' + body + ' = document.querySelector("body");\n' +
846- ' var ' + creatAudio + ' = document.createElement("audio");\n' +
847- ' ' + body + '.appendChild(' + creatAudio + ');\n' +
848- ' var ' + audio + ' = document.querySelector("audio");\n' +
849- ' ' + audio + '.setAttribute("autoplay","true");\n' +
850- ' ' + audio + '.setAttribute("src","http://api.microsofttranslator.com/v2/http.svc/speak?appId=' + appID + '&language=' + language + '&format=' + format + '&text=' + value_speech_ + '");\n' +
851- '})();\n' ;
852- return code ;
853- } ;
849+ var code = '(function(){\n' +
850+ ' var ' + body + ' = document.querySelector("body");\n' +
851+ ' var ' + creatAudio + ' = document.createElement("audio");\n' +
852+ ' ' + body + '.appendChild(' + creatAudio + ');\n' +
853+ ' var ' + audio + ' = document.querySelector("audio");\n' +
854+ ' ' + audio + '.setAttribute("autoplay","true");\n' +
855+ ' ' + audio + '.setAttribute("src","http://api.microsofttranslator.com/v2/http.svc/speak?appId=' + appID + '&language=' + language + '&format=' + format + '&text=' + value_speech_ + '");\n' +
856+ '})();\n' ;
857+ return code ;
858+ } ;
0 commit comments