質問編集履歴
1
質問を具体化
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
Android
|
1
|
+
Android.speechパッケージの関係
|
test
CHANGED
@@ -1,10 +1,42 @@
|
|
1
|
-
# やりたいこと
|
1
|
+
# やりたいこと bufferReceivedを使いたい
|
2
2
|
|
3
|
-
音声データを保存しながら、音声認識しようと思い、RecognitionServiceを使いました。
|
3
|
+
わかりずらい質問かもしれませんがよろしくお願いします。音声データを保存しながら、音声認識しようと思い、Android.speechパッケージのRecognitionServiceを使いました。調べてみたところ、`RecognitionListener`クラスの[onBufferReceived](https://developer.android.com/reference/android/speech/RecognitionListener.html#onBufferReceived(byte[]))か`RecognitionService.Callback`クラスの[bufferReceived](https://developer.android.com/reference/android/speech/RecognitionService.Callback.html#bufferReceived(byte[]))を発見しました。早速、テストで動かしてみようとしたのですが`onBufferReceived`の方は機種依存で動かないことがあるそうです。自分のAndroid端末でも動きませんでした。その次に`bufferReceived`を試そうとしました。しかし、このメソッドの使い方が分かりません。リファレンスを読んでも分かりませんでした。自分が読んで理解したのが
|
4
4
|
|
5
|
-
|
5
|
+
- `RecognitionListener`はインターフェースで、`RecognitionService.Callback`はクラス
|
6
6
|
|
7
|
+
- `RecognitionService.Callback`は`RecognitionService`と何らかの関係がある。
|
8
|
+
|
9
|
+
- 何らかの関係として`onStartListening(Intent, Callback)`の`Callback`に`bufferReceived`を使うのだろうか。
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
# 疑問
|
14
|
+
|
15
|
+
### その1
|
16
|
+
|
17
|
+
[RecognitionService.Callback](https://developer.android.com/reference/android/speech/RecognitionService.Callback.html)
|
18
|
+
|
19
|
+
> This class receives callbacks from the speech recognition service and forwards them to the user.
|
20
|
+
|
21
|
+
|
22
|
+
|
7
|
-
|
23
|
+
[RecognitionService](https://developer.android.com/reference/android/speech/RecognitionService.html)
|
24
|
+
|
25
|
+
> This class provides a base class for recognition service implementations.
|
26
|
+
|
27
|
+
|
28
|
+
|
29
|
+
|
30
|
+
|
31
|
+
この2つのクラスの関係を教えてください。自分で考えた感じでは、`RecognitionService`を自作クラスに継承して、`SpeechRecognizer`,`RecognitionService.Callback`はimportし、`bufferReceived`を使う。あってますか?
|
32
|
+
|
33
|
+
|
34
|
+
|
35
|
+
### その2
|
36
|
+
|
37
|
+
`bufferReceived`はどのように使うのでしょうか?返り値の型がvoidということは、音声データをマイクからストリーミング(AudioRecordクラスで行う)して取得したmybufferを`bufferReceived(mybuffer)`のように使うと、mybufferを音声認識してくれるということでしょうか?そうでないなら、このメソッドはいったい何に使うのでしょうか?
|
38
|
+
|
39
|
+
|
8
40
|
|
9
41
|
|
10
42
|
|