piper-phonemize 0.3.4

Phonemization library for Piper text-to-speech using espeak-ng
docs.rs failed to build piper-phonemize-0.3.4
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build: piper-phonemize-0.2.0

piper-phonemize

Try it Online

You can try piper-phonemize directly in your browser using WebAssembly:

Introduction

Phonemization library for Piper text-to-speech system.

Converts text to IPA phonemes using espeak-ng.

Supports Python, Go, JavaScript (Node.js/WASM), and C/C++.

Installation

Python

pip install piper_phonemize -f https://k2-fsa.github.io/icefall/piper_phonemize.html

Go

go get github.com/csukuangfj/piper-phonemize-go/piper_phonemize

JavaScript / Node.js

WASM version (works everywhere, no native dependencies):

npm install piper-phonemize

Native addon (better performance, requires platform-specific binary, which is installed automagically):

npm install piper-phonemize-node

C / C++

Download pre-built libraries from GitHub Releases or build from source.

Quick Start

Python

import piper_phonemize

# Initialize espeak-ng
piper_phonemize.initialize("/path/to/espeak-ng-data")

# Phonemize text
result = piper_phonemize.phonemize("Hello world", "en-us")
print(result)

Go

package main

import (
    "fmt"
    pp "github.com/csukuangfj/piper-phonemize-go/piper_phonemize"
)

func main() {
    pp.Initialize("") // uses embedded espeak-ng-data
    result := pp.Phonemize("Hello world", "en-us")
    defer pp.DeletePhonemizeResult(result)
    for i := 0; i < result.GetNumSentences(); i++ {
        phonemes := result.GetPhonemes(i)
        fmt.Printf("Sentence %d: %v\n", i, phonemes)
    }
}

JavaScript / Node.js

WASM version:

const piperPhonemize = require('piper-phonemize');

// espeak-ng-data is bundled — no initialization needed!
const result = piperPhonemize.phonemizeToString('Hello world', 'en-us');
console.log(result); // ['həlˈoʊ wˈɜːld']

Native addon:

const piperPhonemize = require('piper-phonemize-node');

// espeak-ng-data is bundled — no initialization needed!
const result = piperPhonemize.phonemizeToString('Hello world', 'en-us');
console.log(result); // ['həlˈoʊ wˈɜːld']

C

#include "c-api.h"

int main() {
    PiperPhonemizeInitialize("/path/to/espeak-ng-data");

    PiperPhonemizeResult *result = PiperPhonemizeText("Hello world", "en-us");
    if (result) {
        int32_t num_sentences = PiperPhonemizeResultGetNumSentences(result);
        // Process phonemes...
        PiperPhonemizeDestroyResult(result);
    }
    return 0;
}

Building from Source

Using CMake

cmake -Bbuild -DBUILD_SHARED_LIBS=ON
cmake --build build --config Release

Using Docker

docker buildx build . -t piper-phonemize --output 'type=local,dest=dist'

License

GPL-3.0-or-later (due to espeak-ng dependency)

Links