質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

Q&A

0回答

1528閲覧

音声認識を続けて行えるようにしたい

sobataro68

総合スコア10

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

0グッド

0クリップ

投稿2019/12/18 05:12

編集2019/12/20 06:17

前提・実現したいこと

プログラミング初心者です。
こちら↓のサイトを参考にして、音声認識のアプリを開発しようと試みております。
http://android-java.hatenablog.jp/entry/2018/03/27/115126】

さらに応用で、音声認識開始のボタンを一度押すと
案内「メッセージA」→ 答える → 案内「メッセージB」→ 答える …
(何度か繰り返し終了)
といったように、音声認識を続けて行えるようにしたいと思い、試行錯誤してみたのですが、変わらず一度目の案内に答えたところで終わってしまいます。

上記のように音声認識を続けて行えるようにすることは可能でしょうか?
可能であるとしたらどのような方法が適切でしょうか。
お力添えをお願いいたします。

該当のソースコード

MainActivity

1import android.app.Activity 2import android.content.Intent 3import android.support.v7.app.AppCompatActivity 4import android.os.Bundle 5import android.speech.RecognizerIntent 6import android.speech.SpeechRecognizer 7import android.view.View 8import io.realm.Realm 9import kotlinx.android.synthetic.main.activity_main2.* 10import java.util.* 11 12class MainActivity2 : AppCompatActivity() { 13 14 var nStr : String = "" 15 val nList = ArrayList<Double>() // arraylist to store numbers 16 val oList = ArrayList<Char>() // arraylist to store operations 17 18 //識別番号の指定 19 private val REQUEST_CODE = 12345 20 21 override fun onCreate(savedInstanceState: Bundle?) { 22 super.onCreate(savedInstanceState) 23 setContentView(R.layout.activity_main2) 24 25 Realm.init(this) 26 27 //音声認識 28 button.setOnClickListener(object : View.OnClickListener{ 29 override fun onClick(v: View) { 30 31 //音声認識用のインテントを作成 32 val intent = Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH) 33 //認識する言語を指定(この場合は日本語) 34 intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.JAPANESE.toString()) 35 //認識する候補数の指定 36 intent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS, 10) 37 //音声認識時に表示する案内を設定 38 intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "メッセージA") 39 //音声認識を開始 40 startActivityForResult(intent, REQUEST_CODE) 41 } 42 }) 43 } 44 45 override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { 46 super.onActivityResult(requestCode, resultCode, data) 47 48 if (requestCode == REQUEST_CODE && resultCode == Activity.RESULT_OK) { 49 50 //data から音声認識の結果を取り出す(リスト形式で) 51 val kekka = data!!.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS) 52 53 //認識結果が一つ以上ある場合はテキストビューに結果を表示する 54 if (kekka.size > 0) { 55 //一番最初にある認識結果を表示する 56 formula!!.text = kekka[0] 57 //intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "メッセージB") 58 } else { 59 //何らかの原因で音声認識に失敗した場合はエラーメッセージを表示 60 formula!!.text = "失敗" 61 } 62 } 63 } 64} 65

試したこと

//一番最初にある認識結果を表示する
のところに
intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "メッセージB")
という文章を入れてみましたが結果は変わらず…

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問