呼叫语音输入功能-codenameone应用程序(ios端口)

nwlls2ji  于 2021-07-08  发布在  Java
关注(0)|答案(1)|浏览(280)

我的android应用程序有一个文本输入框,在edittext右边有一个按钮,可以调用语音输入功能。
我正在移植代号为1的应用程序。目前的目标是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) {

            }
        }
    });

它工作得很好,调用语音输入屏幕,然后将结果作为字符串传回应用程序。
字符串是用户所说的内容(例如,单个单词)。
我需要在ios的codenameone应用程序中具有此功能。
等价物应该是什么?有必要通过本机接口调用本机ios函数吗?

b0zn9rqh

b0zn9rqh1#

您可以通过语音框架实现语音到文本,对实时或预先录制的音频执行语音识别。更多信息:https://developer.apple.com/documentation/speech
关于codename one,您可以使用objective-c代码创建本机接口。
要使用objective-c的语音框架,请参见以下答案:https://stackoverflow.com/a/43834120
答案是这样的:«[...] 要运行并测试它,您只需要一个非常基本的ui,只需创建一个uibutton并为其分配microphonetapped操作,当按下时,应用程序应开始监听并将通过麦克风听到的所有内容记录到控制台(在示例代码中,nslog是唯一接收文本的东西)。再次按下时应停止录制。[…]». 这似乎很接近你的要求。
显然,创建本机接口需要时间。对于进一步的帮助,你可以问更具体的问题,我希望我给你一个有用的指示。
最后,在目标c中也有其他解决办法,例如:https://github.com/azure-samples/cognitive-services-speech-sdk/tree/master/quickstart/objectivec/ios/from-microphone
您可以在web上搜索:objective-c语音到文本

相关问题