Metadata-Version: 2.4
Name: renikud-plus
Version: 0.2.0
Summary: ONNX Runtime inference for Hebrew grapheme-to-phoneme conversion (ReNikud Plus)
Keywords: hebrew,g2p,phonemizer,onnx,tts,niqqud
Author: Maxim Melichov, Yakov Kolani, Morris Alper
License-Expression: MIT
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Text Processing :: Linguistic
Requires-Dist: numpy
Requires-Dist: onnxruntime>=1.24.2
Requires-Python: >=3.12
Project-URL: Homepage, https://github.com/maxmelichov/RenikudPlus
Project-URL: Repository, https://github.com/maxmelichov/RenikudPlus
Project-URL: Issues, https://github.com/maxmelichov/RenikudPlus/issues
Project-URL: Model, https://huggingface.co/notmax123/RenikudPlus
Description-Content-Type: text/markdown

# ReNikud Plus — Hebrew Grapheme-to-Phoneme Inference

Convert unvocalized Hebrew text into IPA for TTS, speech technology, and
spoken-language research.

## Benchmark

![G2P benchmark comparison](assets/bar_plot_comparison.jpeg)

## Install

This repository contains only the code required for ONNX inference. It has no
training pipeline, checkpoint files, or PyTorch dependency.

```console
pip install renikud-plus
hf download notmax123/RenikudPlus model.onnx --local-dir .
```

Or from a clone of this repo:

```console
uv sync
hf download notmax123/RenikudPlus model.onnx --local-dir .
```

## Usage

```python
from renikud_onnx import G2P

g2p = G2P("model.onnx")
print(g2p.phonemize("שלום עולם"))
# → ʃlˈom ʔolˈam
```

For a gender-conditioned ONNX model, pass `speaker` and `target_speaker` as
`0` (unknown), `1` (male), or `2` (female):

```python
g2p.phonemize("היא רצה", speaker=2, target_speaker=2)
```

### Niqqud output

`vocalize` renders the same predictions as pointed Hebrew (niqqud) instead of
IPA — for TTS engines that read niqqud natively but ignore phoneme markup. It
accepts the same `speaker` / `target_speaker` arguments.

```python
print(g2p.vocalize("שלום עולם"))
# → שׁלוֹם עוֹלַם
```

Niqqud has no stress mark, so predicted stress is not represented in this output
(it is in `phonemize`). Diacritization is phonetically faithful but not
publication-grade — e.g. shva in clusters is omitted.


## Citation

```bibtex
@misc{melichov2026renikud,
  title={ReNikud: Audio-Supervised Hebrew Grapheme-to-Phoneme Conversion},
  author={Maxim Melichov and Yakov Kolani and Morris Alper},
  year={2026},
  url={https://arxiv.org/pdf/2606.20179},
}
```
