我希望Android上的语音转文本支持我自己的原住民语言。作为一名程序员,我能做什么?

问题描述 投票:0回答:1

我发现我的语言不在 Google Speech-to-Text 支持的语言中。

https://cloud.google.com/speech-to-text/docs/speech-to-text-supported-languages

但是,有数百万人讲这种语言,我可以找到一些语音转文本引擎。作为一名程序员,我怎样才能让Android支持我的语言?

我有一个想法,我可以创建一个新的输入法编辑器(IME)并在 IME 内进行语音识别。有没有更好的解决方案?谢谢你。

android speech-to-text
1个回答
0
投票

你的问题有点宽泛,但我仍然想分享一些我的快速发现。

为了启动 SpeechToText (STT) 会话,您必须像这样调用 和

Intent

try {
    Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
    startActivityForResult(intent, VOICE_RECOGNITION_REQUEST_CODE);.
} catch(ActivityNotFoundException e) {
    // handle case when no application is installed for handling Intent ACTION_RECOGNIZE_SPEECH
}

您需要安装一个能够处理 Intent 的应用程序,称为

ACTION_RECOGNIZE_SPEECH
。如果我们查看Google语音识别应用程序的manifest.xml文件,我们可以看到它是如何声明的:

<activity-alias android:name="com.google.android.apps.speech.tts.googletts.service.GoogleTTSActivity" android:enabled="0x7f05001c" android:exported="true" android:targetActivity="com.google.android.libraries.speech.transcription.ui.TranscriptionActivity">
    <intent-filter android:priority="1">
        <action android:name="android.speech.action.RECOGNIZE_SPEECH"/>
        <category android:name="android.intent.category.DEFAULT"/>
    </intent-filter>
</activity-alias>

因此上面的 Java 代码将启动 Google SST 应用程序。如果您想使用其他 STT 提供商,

  • 用户需要安装另一个应用程序来处理
    ACTION_RECOGNIZE_SPEECH
    并提供您所需的语言
  • 用户需要在设置中启用其他应用程序

Screenshot

所以不幸的是,似乎你不能简单地将两个不同的提供商组合在一个应用程序中,而且,如果用户需要安装另一个应用程序,这也不是一个好的用户体验。


注意:
我在这里仅介绍 Android 中执行此操作的标准方法。可能可以选择直接在您的应用程序中包含替代引擎,但这比使用 Android 提供的默认 API 需要付出更多努力。

© www.soinside.com 2019 - 2024. All rights reserved.