问题描述
我的Android应用程序具有一个文本输入框,该文本输入框在EditText的右侧具有一个按钮,可以调用语音输入功能。
我正在移植代号为One的应用程序。目前,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应用中具有此功能。
解决方法
您可以通过“语音”框架实现语音到文本的功能,以对实时或预录制的音频执行语音识别。更多信息:https://developer.apple.com/documentation/speech
关于代号,您可以使用Objective-C代码创建一个本机接口。
要将语音框架与Objective-C结合使用,请参见以下答案: 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
您可以在网上搜索:Objective-C语音转文字