Metadata-Version: 2.4
Name: renikud-plus
Version: 0.3.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: huggingface-hub>=0.26.0
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

```console
pip install renikud-plus
```

The ONNX weights (~310 MB) download automatically from Hugging Face on first
use and are cached locally. No separate `hf download` step is required.

## Usage

```python
from renikud_onnx import G2P

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

Pass a local path if you already have the weights:

```python
g2p = G2P("model.onnx")
```

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},
}
```
