iOS 開発者ガイド for SDK

音声による指示

音声ガイドは 、音声パッケージとして HERE SDK で利用できます。 音声パッケージには、事前パッケージ化された形式と、音声カタログからダウンロード可能な形式の 2 種類があります。 ナビゲーションの指示に使用する音声パッケージを設定できます。 ただし、パッケージが設定されていない場合 、 HERE SDK は ナビゲーションの音声言語を US English に設定 します。この言語は HERE SDK にあらかじめパッケージされています。

注 : 音声による指示は、ナビゲーションモードでのみ運転できます。 歩行者ナビゲーションモードのユーザーは、各操作の変更時に音声によるビープ音と振動の警告を受け取る。 ビープ音または音声による指示が発生すると、 HERE SDK が他の音声の音量を一時的に下げます。

NMAVoicePackage クラス

NMAVoicePackage クラスは、ナビゲーションガイダンスに使用できる音声をカプセル化します。 名前、性別、話し言葉などの情報が含まれています。 この情報には、クラスのプロパティを使用してアクセスできます。

NMAVoiceCatalog シングルトンインスタンスを使用して、ロードされた NMAVoicePackage インスタンスのリストにアクセスできます。 複数の音声パッケージをデバイスにロードできますが、ナビゲーション音声再生用に選択できるのは 1 つだけです。 NMAVoicePackage は、 voicePackage プロパティを使用して NMANavigationManager に追加できます。 各 ID NMAVoicePackagepackageId 、プロパティ内で一意の ID で表されます。

HERE SDK では、音声読み上げと事前録音の 2 種類の音声パッケージがサポートされています。 あらかじめ録音された音声スキンでは、「 300 メートル先で右折」などの基本的な操作手順が提供され、テキスト読み上げの音声では、「 300 メートル先で右折してグランビルストリートに入る」などの通りの名前を音声で案内することもできます。

NMAVoiceCatalog クラスおよび NMAVoiceCatalogDelegate プロトコル

NMAVoiceCatalog クラスは、ローカルデバイスから音声パッケージファイルにアクセスするために使用されます。 NMAVoiceCatalog オブジェクトインスタンスは、次の呼び出しによって取得できます。
NMAVoiceCatalog* voiceCatalog = [NMAVoiceCatalog sharedVoiceCatalog];
installedVoicePackages 次に、プロパティを使用 NMAVoicePackage して、デバイスに保存されているのリストを取得できます。 デフォルト では、 HERE SDK には多数の事前インストール済み音声パッケージが含まれています。 voicePackages プロパティを使用して、音声パッケージサーバからダウンロードできる音声パッケージのリストを取得することもできます。 サーバーからパッケージの最新のリストを取得するに updateVoicePackagesは、を呼び出します。

NMAVoiceCatalogDelegate 特定の非同期 NMAVoiceCatalog 操作に関連するコールバックを受信するために使用されます。 これらの操作の例としては、カタログの更新や音声パッケージのインストールがあります。

音声パッケージを選択してナビゲーションを開始しています

NMAVoicePackage 次の例では、を Navigation Manager で使用する方法を示します。

  1. NMAVoiceCatalog 共有オブジェクトインスタンスを取得して取得します。
    NMAVoiceCatalog* voiceCatalog = [NMAVoiceCatalog sharedVoiceCatalog];
  2. NMAVoiceCatalogDelegate をインプリメントし、 Using delegate プロパティに NMAVoiceCatalog を追加します。
  3. 次に、を呼び出し updateVoiceCatalogて、音声パッケージのカタログを取得します。 この操作が完了すると、コールバック to voiceCatalog:didUpdateWithError: デリゲートメソッドが発生します。
    [voiceCatalog updateVoiceCatalog];
  4. のリストを使用 voicePackagesして、目的の音声パッケージを探します。 インストールされている音声パッケージのリストに音声パッケージがまだ含まれていない場合はinstalledVoicePackages、インストールします()。 インストール操作が完了すると、コールバック to voiceCatalog:didInstallPackage:withError デリゲートメソッドが実行されます。
    [voiceCatalog installVoicePackage:selectedPackage]
  5. パッケージがインストールされたら、に設定 NMANavigationManagerします。
    [NMANavigationManager sharedNavigationManager].voicePackage = selectedPackage;
  6. NMARoute から計算を取得 NMACoreRouterします。 この方法の詳細については、「ルーティング」セクションのコードサンプルを参照してください。
  7. ユーザーの選択に応じてナビゲーションを開始します。
    NSError* error = [[NMANavigationManager sharedNavigationManager] startTurnByTurnNavigationWithRoute:calculatedRoute];

オーディオの再生を制御しています

音声 指示などの HERE SDK ナビゲーションオーディオを再生するタイミングの制御がアプリケーションによって必要になる場合があります。 たとえば、別のオーディオクリップを再生するには、オーディオフィードバックを中断する必要がある場合があります。 これを行うには cancelVoiceFeedback 、のメソッド NMANavigationManagerを使用します。 このメソッドが呼び出されると、現在の音声フィードバックが停止し、キューに入っているフィードバックもすべて消去されます。

その他のシナリオでは、ナビゲーションオーディオを一定の期間非表示にする必要がある場合があります。 これを行うには、 NMANavigationManagerDelegatenavigationManager:shouldPlayVoiceFeedbackWithText: コールバックを実装し、 NO に戻ります。 このイベントは、オーディオフィードバックの再生準備が完了するとトリガー NO され、 RETURN はこのフィードバックの再生をスキップします。