ghana_npl_dart 0.0.1 copy "ghana_npl_dart: ^0.0.1" to clipboard
ghana_npl_dart: ^0.0.1 copied to clipboard

A Dart package for the GhanaNLP API

GhanaNLP Dart Package #

This Dart package provides a client for the GhanaNLP API, including Automatic Speech Recognition (ASR) and Text-To-Speech (TTS) functionalities. It allows you to easily transcribe audio and synthesize speech in various Ghanaian and African languages. Get API KEY at https://ghananlp.org

Supported Languages #

  • Twi (tw)
  • Ga (gaa)
  • Dagbani (dag)
  • Ewe (ee)
  • Kikuyu (ki)

Installation #

Add this package to your project's pubspec.yaml file:

dependencies:
  ghana_nlp_dart:
    git:
      url: https://github.com/iamEtornam/GhanaNLP-Dart.git
      ref: main

Then run:

dart pub get

Usage #

Here are basic examples of how to use the GhanaNLP Dart package:

Automatic Speech Recognition (ASR) #

import 'dart:io';
import 'package:ghana_nlp_dart/ghana_nlp_dart.dart';

void main() async {
  final apiKey = 'your_api_key_here';
  final ghanaNlpAsr = GhanaNlpAsr(apiKey: apiKey);

  // Read audio file
  final file = File('path_to_your_audio_file.mp3');
  final audioBytes = await file.readAsBytes();

  try {
    final transcription = await ghanaNlpAsr.transcribe(audioBytes, Language.twi.code);
    print('Transcription: $transcription');
  } catch (e) {
    print('Error: $e');
  }
}

Text-To-Speech (TTS) #

import 'dart:io';
import 'package:ghana_nlp_dart/ghana_nlp_dart.dart';

void main() async {
  final apiKey = 'your_api_key_here';
  final ghanaNlpTts = GhanaNlpTts(apiKey: apiKey);

  try {
    final audioBytes = await ghanaNlpTts.synthesize('Ɛte sɛn?', Language.twi.code);
    await File('output.mp3').writeAsBytes(audioBytes);
    print('Audio saved to output.mp3');
  } catch (e) {
    print('Error: $e');
  }
}

Text-To-Speech (TTS) #

import 'package:ghana_nlp_dart/ghana_nlp_dart.dart';

void main() async {
  final api = GhanaNLPTranslationAPI(apiKey: 'your_api_key_here');

  // Translate text
  try {
    final translatedText = await api.translate(
      text: 'Hello, how are you?',
      languagePair: 'en-tw',
    );
    print('Translated text: $translatedText');
  } catch (e) {
    print('Translation error: $e');
  }

  // Get supported languages
  try {
    final languages = await api.getLanguages();
    print('Supported languages: $languages');
  } catch (e) {
    print('Error fetching languages: $e');
  }
}

API Reference #

GhanaNlpAsr #

The class for interacting with the GhanaNLP ASR API.

Constructor

GhanaNlpAsr({required String apiKey, http.Client? client})

Methods

Future<String> transcribe(Uint8List audioData, String language)

GhanaNlpTts #

The class for interacting with the GhanaNLP TTS API.

Constructor

GhanaNlpTts({required String apiKey, http.Client? client})

Methods

Future<List<int>> synthesize(String text, String language)

Synthesizes speech from the given text in the specified language.

  • text: The text to be converted to speech.
  • language: The language code (e.g., 'tw' for Twi).

Returns a Future<List<int>> containing the audio data as bytes.

GhanaNLPTranslation #

The class for interacting with the GhanaNLP Translation REST API.

Constructor

GhanaNLPTranslation({required String apiKey, http.Client? client})

Methods

Future<String> translate({required String text, required String languagePair})

Synthesizes speech from the given text in the specified language.

  • text: The text to be converted to speech.
  • languagePair: The language code (e.g., 'tw' for Twi).

Returns a Future<String> which is the translation.

Language #

An enum representing the supported languages.

enum Language {
  twi('tw'),
  yoruba('yo'),
  ga('gaa'),
  dagbani('dag'),
  ewe('ee'),
  kikuyu('ki')
}

Use Language.fromCode(String code) to get the enum value from a language code string.

Error Handling #

The package throws exceptions in the following cases:

  • ArgumentError: If an invalid language code is provided.
  • Exception: If there's an error during the API call or if the API returns a non-200 status code.

Make sure to wrap your API calls in a try-catch block to handle these exceptions.

Authentication #

This package uses API key authentication. You need to provide your API key when initializing the GhanaNlpAsr or GhanaNlpTts classes. The API key is sent in the Ocp-Apim-Subscription-Key header for each request.

Contributing #

Contributions are welcome! Please feel free to submit a Pull Request.

License #

This project is licensed under the Apache License - see the LICENSE file for details.

0
likes
140
pub points
0%
popularity

Publisher

verified publisheretornam.dev

A Dart package for the GhanaNLP API

Repository (GitHub)
View/report issues

Documentation

API reference

License

Apache-2.0 (license)

Dependencies

http

More

Packages that depend on ghana_npl_dart