web-dev-qa-db-ja.com

オフラインモードでiOS音声認識を使用する方法はありますか?

IOS音声認識をオフラインモードで使用する方法があるかどうかを知りたいです。ドキュメントによると( https://developer.Apple.com/reference/speech )私はそれについて何も見なかった。

18
Danyl

方法はありませんがあるのではないかと思います(ただし、答えの最後でアップデートを確認してください)

Speech Framework Official Documentation で述べたように:

優れたユーザーエクスペリエンスのためのベストプラクティス:

音声認識の限界に到達することによって発生する可能性のある障害を処理する準備をします。音声認識はネットワークベースのサービスであるため 、サービスがすべてのアプリで自由に利用できるように制限が適用されます。


エンドユーザーの観点から、ネットワークに接続せずにSiri'sヘルプを取得しようとすると、次のような画面が表示されます。

enter image description here

また、マッサージを送信しようとすると(たとえば)、デバイスがネットワークに接続されていない場合、マイクボタンを無効にする必要があることに気付くでしょう。

enter image description here

本来、iOS自体はネットワーク接続を確認するまでこの機能を使用できません。SpeechFrameworkを使用する場合、サードパーティの開発者も同じだと思います。


UPDATE:

音声認識APIセッション (特に、パート03:00-03:25)を見た後、私は思いつきました:

音声認識API通常はインターネット接続を必要としますが、常にこの機能をサポートする新しいデバイスがいくつかあります。特定の言語が使用可能かどうかを確認することをお勧めします。

SFSpeech Recognizer Documentation からの適応:

サポートされている音声認識エンジンは、利用可能な音声認識エンジンと同じではないことに注意してください。たとえば、認識機能一部のロケールではインターネット接続が必要な場合がありますsupported​Locales()メソッドを使用して、サポートされているロケールとis​Availableプロパティは、特定のロケールの認識エンジンが使用可能かどうかを調べます。


さらに読む:

これらのトピックは関連している可能性があります。

20
Ahmad F

オフラインの文字起こしは、iOS 13以降で利用できます。 requiresOnDeviceRecognition で有効にします。

サンプルコード(Swift 5):

// Create and configure the speech recognition request.
recognitionRequest = SFSpeechAudioBufferRecognitionRequest()
guard let recognitionRequest = recognitionRequest else { fatalError("Unable to create a SFSpeechAudioBufferRecognitionRequest object") }
recognitionRequest.shouldReportPartialResults = true

// Keep speech recognition data on device
if #available(iOS 13, *) {
    recognitionRequest.requiresOnDeviceRecognition = true
}
5
Brad Dwyer