piper-phonemize 1.4.8

Phonemization library for Piper text-to-speech using espeak-ng
docs.rs failed to build piper-phonemize-1.4.8
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, Rust, Swift, Pascal, JavaScript (Node.js/WASM), C/C++, Tauri, Android, and iOS.

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

Rust

Add to your Cargo.toml:

[dependencies]
piper-phonemize = "1.4.8"

The crate automatically downloads prebuilt libraries and embeds espeak-ng-data. No manual setup required.

Swift

Add to your Package.swift:

dependencies: [
    .package(url: "https://github.com/csukuangfj/piper-phonemize", branch: "master")
]

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)
    }
}

Rust

use piper_phonemize::phonemize_to_string;

fn main() {
    // No initialization needed - espeak-ng-data is embedded
    let sentences = phonemize_to_string("Hello world", "en-us").unwrap();
    for s in &sentences {
        println!("{}", s);
    }
}

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;
}

Tauri Example (Cross-Platform GUI)

A cross-platform desktop/mobile app built with Tauri v2. See tauri-examples/ for details.

Pre-built apps are available on the GitHub Releases page:

Platform File
macOS (Apple Silicon) piper-phonemize-tauri-macos-arm64.app.zip
macOS (Intel) piper-phonemize-tauri-macos-x64.app.zip
Linux (x64) piper-phonemize-tauri-linux-x64.tar.bz2
Linux (arm64) piper-phonemize-tauri-linux-arm64.tar.bz2
Windows (x64) piper-phonemize-tauri-windows-x64.zip
Android (APK) app-universal-release-unsigned.apk

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