Skip to main content
Version: 12 Dec 2024

Magic Leap 2 Text-to-Speech Utility

The Magic Leap TTS Utility allows developers to more easily use Text To Speech on Magic Leap 2 using the Android TTS APIs. The demo scene can be found in /UnityTTSProject/Assets/TTS_Sample/Scenes/SampleScene.unity and is available on GitHub.

This project demonstrates how to use Android's Text-to-Speech functionality on the Magic Leap 2. The repository contains the Android Project used to create the plugin file, a sample Unity project and the Magic Leap TTS Utility Package.

Repository Structure​

  • TTSAndroidProject

    • Contains the Android Studio project and Java source code to build the AAR plugin that makes the Android TTS calls.
    • Developers can modify the ttsutil module as needed.
    • After building, the AAR files will be output under TTSAndroidProject/ttsutil/build/outputs/aar/.
  • UnityTTSUtilPkg

    • Directory for the Unity Package that includes the prebuilt plugin and the entry point for the TTS API calls (TextToSpeechUtility).
    • The package can be imported into existing Unity projects.
    • The sample can be imported via the Unity Package Manager.
  • UnityTTSProject

    • Unity Project directory configured for Magic Leap 2.
    • Contains a sample scene that demonstrates the use of the Text-to-Speech Utility through a simple TextToSpeechSample script.

Features​

  • Initialize and dispose of the TTS engine.
  • Set the language of the TTS engine.
  • Speak text with options to queue or flush the current speech (QUEUE_FLUSH and QUEUE_ADD).
  • Check if the TTS engine is currently speaking.
  • Stop the current speech.

Package Installation​

This section includes instructions on importing the Magic Leap TTS Utility into an existing project.

Import the Package​

  1. Import the Package using git URL
    • Open your Unity project.
    • Navigate to Window > Package Manager.
    • Click the + button, select Add package from git URL..., and enter the URL for this package repository.
https://github.com/magicleap/MagicLeapTTSUtility.git?path=/UnityTTSUtilPkg

Importing the Sample Scene​

  1. Open Package Manager:

    • Open your Unity project.
    • Navigate to the Unity Editor menu, select Window > Package Manager.
  2. Locate the Magic Leap TTS Utility Package:

    • In the Package Manager window, find the Magic Leap TTS Utility package.
  3. Import the Sample Scene:

    • Click on the Magic Leap TTS Utility package in the list to view its details.
    • In the details panel, navigate to the Samples tab.
    • Select import next to Sample Scene.
    • Once the import process is complete, the sample scene files will be added to your project's Assets/Samples/ directory.

Basic API Usage​

// Initialize the Text-to-Speech system
TextToSpeechUtility.Initialize();

// Check if the system is speaking
bool isSpeaking = TextToSpeechUtility.IsSpeaking();

// Speak a text
TextToSpeechUtility.Speak("Hello, world!", TextToSpeechUtility.TTSQueueMode.QUEUE_MODE_FLUSH);

// Change language (optional)
TextToSpeechUtility.SetLanguage(TextToSpeechUtility.SupportedLanguage.English_US);

// Stop speaking
TextToSpeechUtility.StopSpeaking();

// Dispose when done
TextToSpeechUtility.DisposeTts();

Building the AAR Plugin​

  1. Open the Android Project:

    • Navigate to TTSAndroidProject and open the project in Android Studio.
  2. Build the AAR:

    • Build the project to generate the AAR file.
    • The output will be located at TTSAndroidProject/ttsutil/build/outputs/aar/.
  3. Import the AAR:

    • Rename the generated AAR file to ttsutil.aar
    • Replace the existing plugin located inside the package's UnityTTSUtilPkg/Plugins/Android/ directory.

Copyright (c) 2023-present Magic Leap, Inc. All Rights Reserved. Use of this file is governed by the Developer Agreement, located here: https://www.magicleap.com/software-license-agreement-ml2