音声入力機能の呼び出し-CodenameOneアプリ(iOSポート)

Aug 21 2020

私のAndroidアプリは、編集テキストの右側に音声入力機能を呼び出すためのボタンがあるテキスト入力ボックスを備えています。

CodenameOneでアプリを移植しています。現時点では、iOSポートが目標です。

ボタンには適切なアイコンがあります。これはコードです:

voiceInputButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent voiceIntent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
            voiceIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_WEB_SEARCH);
            try {
                activity.startActivityForResult(voiceIntent, RESULT_SPEECH_REQUEST_CODE);
            } catch (ActivityNotFoundException ex) {

            }
        }
    });

これは非常にうまく機能し、音声入力画面が呼び出され、結果が文字列としてアプリに返されます。

文字列は、ユーザーが言ったことです(たとえば、1つの単語)。

iOS用のCodenameOneアプリにこの機能が必要です。

何が同等である必要がありますか?ネイティブインターフェイスを介してネイティブiOS関数を呼び出す必要がありますか?

回答

FrancescoGalgani Aug 22 2020 at 20:40

音声フレームワークを介して音声からテキストへを実装し、ライブまたは事前に録音された音声で音声認識を実行できます。より詳しい情報:https://developer.apple.com/documentation/speech

Codename Oneについて、Objective-Cコードを使用してネイティブインターフェイスを作成できます。

Objective-CでSpeechフレームワークを使用するには、次の回答を参照してください。 https://stackoverflow.com/a/43834120

答えはそうです:«[...]これを実行してテストするには、非常に基本的なUIが必要です。UIButtonを作成し、それにmicroPhoneTappedアクションを割り当てるだけです。押すと、アプリはすべてをリッスンしてログに記録し始めます。マイクからコンソールに聞こえます(サンプルコードでは、NSLogだけがテキストを受信します)。もう一度押すと録音が停止します。[...]»。これはあなたが尋ねたものに非常に近いようです。

明らかに、ネイティブインターフェイスの作成には時間がかかります。さらにヘルプが必要な場合は、より具体的な質問をすることができます。お役に立てば幸いです。


最後に、Objective-Cには、次のような代替ソリューションもあります。 https://github.com/Azure-Samples/cognitive-services-speech-sdk/tree/master/quickstart/objectivec/ios/from-microphone

Webで次を検索できます:objective-cspeech-to-text