How to Use the Neural Text to Speech Library in Dart

Jul 17, 2022 | Programming

In recent years, the technology behind converting text to natural-sounding speech has significantly evolved. The Neural Text to Speech (NTTS) library, specifically in the Dart programming language, allows you to generate voice that sounds eerily similar to human speech—all without needing an internet connection. This blog will guide you step-by-step through the installation, setup, and execution of the NTTS library.

Getting Started

Before diving into coding, ensure that your environment is adequately set up to run the NTTS library. This section will cover the necessary dependencies and the process to install them.

Dependencies

  • Linux OS (Tested on Ubuntu 22.04)
  • At least 4GB of RAM
  • Processor: AMD Ryzen or Intel Celeron

Installing the Neural Text to Speech Library

Follow these steps to install the NTTS library:

bash
# Install required packages
sudo apt-get install espeak-ng mpv
sudo apt-get install gawk bison gcc make
wget -c https://ftp.gnu.org/gnu/libc/glibc-2.33.tar.gz
tar -zxvf glibc-2.33.tar.gz
cd glibc-2.33
mkdir glibc-build
cd glibc-build
../configure --prefix=/opt/glibc
make
sudo make install

Downloading the Model

You will also need to download the model files necessary for the NTTS library to function.

bash
# Download the voice model
wget https://huggingface.co/rhasspy/piper-voices/resolve/main/en_US/libritts-high/en_US-libritts-high.onnx
wget https://huggingface.co/rhasspy/piper-voices/resolve/main/en_US/libritts-high/en_US-libritts-high.onnx.json

# Download the NTTS package
wget https://github.com/azkadev/ntts/releases/download/latest/ntts_dart.deb

# Install the NTTS library
sudo dpkg --force-all -i ntts_dart.deb

Using the Neural Text to Speech Library

Once you have installed the NTTS library, follow the quick start guide below to convert text into speech.

dart
import 'dart:io';
import 'dart:isolate';
import 'package:ntts_dart/ntts_dart.dart';

void main(List args) async {
    var res = await Isolate.run(() {
        Ntts ntts = Ntts(pathLib: 'libntts.so'); // Load the NTTS library
        var res = ntts.invokeRaw(data: CreateVoice.create(
            text: 'Hello World',
            model_path: 'path_to_model.onnx',
            output_file: 'file_output.wav',
            speaker_id: 0,
        ).toJson());
        return res;
    });
    print(res); // Print the result
    exit(0);
}

Understanding the Code

The process behind the code can be likened to a chef preparing a unique dish. Here, the NTTS library is the chef, the input text is the recipe, and the output audio is the final gourmet dish. Just like a chef needs the right ingredients and equipment, the NTTS library requires model files and its own compiled components to transform text into audio.

Troubleshooting

While using the NTTS library, you may encounter a few common issues. Here are some troubleshooting steps:

  • Model file not found: Ensure that you’ve downloaded the correct model files and that the paths are set correctly in the code.
  • Library not found: Confirm that the NTTS library is properly compiled and that the path to the library is correct.
  • Audio playback issues: Verify that your audio output device is functioning and that you have the necessary permissions to play audio files.

For more insights, updates, or to collaborate on AI development projects, stay connected with fxis.ai.

Conclusion

Utilizing the NTTS library is a straightforward process that unleashes the capability to generate high-quality speech from text in Dart applications. With just a few steps, you can harness the power of text-to-speech technology. At fxis.ai, we believe that such advancements are crucial for the future of AI, as they enable more comprehensive and effective solutions. Our team is continually exploring new methodologies to push the envelope in artificial intelligence, ensuring that our clients benefit from the latest technological innovations.

Stay Informed with the Newest F(x) Insights and Blogs

Tech News and Blog Highlights, Straight to Your Inbox