我正在开发一款应用程序,帮助盲人检测障碍。为此,每当检测到任何对象时,我需要应用程序说出对象名称(即椅子、桌子(。
我个人以前从未使用过TensorFlow,但如果它类似于firebase ML Kit中的对象检测API,我会做以下事情。
你可以试着在相机前获取对象的标签,然后使用Android的TTS API大声读取字符串。
我不知道你的应用程序是安卓还是iOS。我以前在Android上使用过TTS。
以下是文档:https://developer.android.com/reference/android/speech/tts/TextToSpeech
这里是我使用TTS构建的一个演示应用程序。它可以读取您在EditText中键入的任何内容。
https://github.com/AlfredoBejarano/Android-Kotlin-Demos/tree/master/TextToSpeechDemo
要实现的目标与两项机器学习任务有关:(1(对象检测,并过滤您感兴趣的对象(如跨栏(;(2( 文本到语音(TTS(-说出该对象的名称。你需要将它们组合在一个管道中。
对于第一项任务,有时API可以在许多情况下完成,但可能无法识别您感兴趣的所有对象。这取决于API可以提供多少类对象。另一个因素是,如果您的应用程序需要进行实时检测,那么调用API的互联网延迟可能会受到限制。
考虑到以上情况,您可能需要训练自己的移动检测模型,并将其部署在Android上。Android中有一个TensorFlow Lite对象检测示例:https://www.tensorflow.org/lite/models/object_detection/overview.它完全在设备上运行(不需要互联网连接(,所以您可以下载并尝试。本博客介绍了如何训练自定义模型:https://medium.com/tensorflow/training-and-serving-a-realtime-mobile-object-detector-in-30-minutes-with-cloud-tpus-b78971cf1193.
对于第二项任务,TTS相对成熟,因此通常不需要训练自己的模型。正如另一个回复所指出的,您可以在Android SDK中使用TTS:https://developer.android.com/reference/android/speech/tts/TextToSpeech.它也可以离线运行。