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

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

ただいまの
回答率

90.61%

  • Java

    13490questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • Android

    6401questions

    Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

  • Eclipse

    1639questions

    Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Java 音声入力について

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 1,356

javaroid

score 6

JavaでStringで設定した文字列と音声入力をして表示した文字列をStringで比較して、等しいか等しくないか判定をしたいと考えています。

音声入力をして表示したものをStringの変数に入れる方法を軽く、アルゴリズムやソースコードなど例で教えていただきたいです。
  • 気になる質問をクリップする

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

+1

エミュレーター環境では確認できないらしいので確認はできていません。
コードが最小限になるように、参考にしたコードをちょっとスッキリさせています。
(肝心のStringとの比較を忘れていたので追記)

import java.util.ArrayList;
import android.app.Activity;
import android.content.ActivityNotFoundException;
import android.content.Intent;
import android.os.Bundle;
import android.speech.RecognizerIntent;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends ActionBarActivity {

    private static final int REQUEST_CODE = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        final Activity thisActivity = this;
        Button button = (Button)findViewById(R.id.button1);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                try {
                    Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
                    intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
                    intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "RecognizerIntent Test");
                    startActivityForResult(intent, REQUEST_CODE);
                } catch (ActivityNotFoundException e) {
                    Toast.makeText(thisActivity, "ActivityNotFoundException", Toast.LENGTH_LONG).show();
                }
            }
        });

    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {
            ArrayList<String> results = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
            boolean matched = false;
            for (String string : results) {
                if (string.equals("あいうえお")) { // Stringと比較
                    matched = true;
                }
            }
            Toast.makeText(this, String.valueOf(results), Toast.LENGTH_LONG).show();
        }
        super.onActivityResult(requestCode, resultCode, data);
    }

// 以下略
    
}


参考URL:

音声認識(RecognizerIntent)を使用するには - 逆引きAndroid入門



(2015/01/21 22:18のコメントへの回答)

どのように表示するかによりますが、Toastを使って表示するなら、こうなります。

            ArrayList<String> results = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
            for (String string : results) {
                if (string.equals("あいうえお")) {
                    // ひとつでも一致するものがあれば表示して終了
                    Toast.makeText(this, "一致しました", Toast.LENGTH_LONG).show();
                    break;
                }
            }

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/01/21 22:18

    Stringと比較して、同じだったら等しいと表示させたいのですが。
    その場合はどこに入れればいいのでしょうか。

    キャンセル

  • 2015/01/21 22:59

    回答欄に追記しました。

    キャンセル

0

すごく見やすくわかりやすい解説ありがとうございます!

できました!感謝します!!

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

  • ただいまの回答率 90.61%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    配列とListの相互変換方法

    Javaの配列とListの相互変換について教えてください。  いちいちFor文で回さなければ駄目ですか?他にもっとスマートな方法を知っていたら教えてください。 よろしくお願いします

  • 解決済

    javaのエラーを消したいです

    前提・実現したいこと javaのエラーについてです。java超初心者の学生です。学校でデバッグの課題が出たのですがエラーの内容を検索しても意味が分からなくて困ってます。エラーの解

  • 解決済

    まだわからないJavaラムダ式

    現在Java勉強中の身です ラムダ式の処理をつかってコレクションの要素をひとつずつ取り出したいのですが 書き方がわかりません。 今現在は HashMap<S

  • 解決済

    while文でmapのkyeと値を表示

    現在java se 8を勉強しております。 while文を用いて、keyと値をコンソールに表示したいのですが、うまくいかず どなたかご教授いただければと存じます ※for 文の書き

  • 解決済

    配列の分割方法について

    問題点 以下のような配列 String str[]={"ABC","DEFG","HI","KLM"} というのがあったとして、これを new_str[]={"A","B",・・・

  • 解決済

    MapのValueにListを利用したいです

    MapのValueにListを使いたいのですが書き方がわかりません。Eclipseで「トークン","に構文エラーがあります」とエラー表示されたので入れ子になっている()を取り除いた

  • 解決済

    小数点入りの文字列をいらない頭の0を消してうまく変換したい

    7ケタの小数点混じりの文字列をいらない0を 消したいです。 00001.2 →1.2 000.103 →0.103 00.1001 →0.1001 01.2345 →1.234

  • 解決済

    JavaでListとSpringと型が異なる場合に同じ値が存在するかどうか検索を行いたい

     前提・実現したいこと List型の項目にStringの項目と同じ値があるかどうか検索し、同じ値がなかった場合はエラーとする。  該当のソースコード List<X> list

同じタグがついた質問を見る

  • Java

    13490questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • Android

    6401questions

    Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

  • Eclipse

    1639questions

    Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。