回答編集履歴

2

ちょっと修正しました

2018/10/15 03:11

投稿

miyakichi
miyakichi

スコア297

test CHANGED
@@ -84,7 +84,7 @@
84
84
 
85
85
  停止するまで、ずっと録音状態ってことですか・・
86
86
 
87
- やったことないですが、無理やりやるとすれば以下か
87
+ やったことないですが、無理やりやるとすれば以下でしょうか?
88
88
 
89
89
  もっとスマートなやり方があるかもしれませんが、即席なのでご勘弁を。
90
90
 
@@ -154,17 +154,13 @@
154
154
 
155
155
  function stop() {
156
156
 
157
- recognition.onerror = myerror;
157
+ recognition.onend = null;
158
158
 
159
- recognition.abort();
159
+ recognition.stop();
160
160
 
161
161
  }
162
162
 
163
- function myerror(event) {
164
163
 
165
- recognition.onend = null;
166
-
167
- }
168
164
 
169
165
  function reset() {
170
166
 

1

追記しました

2018/10/15 03:11

投稿

miyakichi
miyakichi

スコア297

test CHANGED
@@ -81,3 +81,109 @@
81
81
  </body>
82
82
 
83
83
  ```
84
+
85
+ 停止するまで、ずっと録音状態ってことですか・・
86
+
87
+ やったことないですが、無理やりやるとすれば以下かな?
88
+
89
+ もっとスマートなやり方があるかもしれませんが、即席なのでご勘弁を。
90
+
91
+ ```HTML
92
+
93
+ <body>
94
+
95
+ <textarea id="textarea" rows=10 cols=80></textarea>
96
+
97
+ <button id="start" onclick="start()">Start</button>
98
+
99
+ <button id="stop" onclick="stop()">Stop</button>
100
+
101
+ <script>
102
+
103
+ var recognizing;
104
+
105
+
106
+
107
+ init();
108
+
109
+ function init() {
110
+
111
+ window.SpeechRecognition = window.SpeechRecognition || webkitSpeechRecognition;
112
+
113
+ recognition = new webkitSpeechRecognition();
114
+
115
+ recognition.continuous = true;
116
+
117
+ recognition.lang = 'ja';
118
+
119
+ recognition.interimResults = true;
120
+
121
+
122
+
123
+ recognition.onend = reset;
124
+
125
+ recognition.onresult = disp;
126
+
127
+
128
+
129
+ }
130
+
131
+ function disp(event) {
132
+
133
+ var results = event.results;
134
+
135
+ for (var i = event.resultIndex; i < results.length; ++i) {
136
+
137
+ if (results[i].isFinal) {
138
+
139
+ document.getElementById('textarea').value += results[i][0].transcript + "\n";
140
+
141
+ }
142
+
143
+ }
144
+
145
+ }
146
+
147
+ function start() {
148
+
149
+ init();
150
+
151
+ recognition.start();
152
+
153
+ }
154
+
155
+ function stop() {
156
+
157
+ recognition.onerror = myerror;
158
+
159
+ recognition.abort();
160
+
161
+ }
162
+
163
+ function myerror(event) {
164
+
165
+ recognition.onend = null;
166
+
167
+ }
168
+
169
+ function reset() {
170
+
171
+ console.log("reset\n");
172
+
173
+ init();
174
+
175
+ recognition.start();
176
+
177
+ }
178
+
179
+ recognition.onerror = function(event) {
180
+
181
+ console.log('音声認識エラーが検出されました:' + event.error);
182
+
183
+ }
184
+
185
+ </script>
186
+
187
+ </body>
188
+
189
+ ```