Skip to main content

normalizer-tr

CI

Turkish text normalization for speech, with a Rust core and a typed Python API. Convert numbers, money, dates, measurements and other supported notation into spoken Turkish, with original-source ranges and structured diagnostics. Runs offline, without a speech model or service. Decimal and money arithmetic is exact.

saat 09:30'da 5 kg malzeme ve %12,5'lik fark
→ saat dokuz otuzda beş kilogram malzeme ve yüzde on iki virgül beşlik fark

Python

python -m pip install normalizer-tr
from normalizer_tr import Normalizer

normalizer = Normalizer()
result = normalizer.normalize("25 TL; 5 kg")
assert result.normalized_text == "yirmi beş Türk lirası; beş kilogram"
assert result.complete

Wheels support CPython 3.11 to 3.14 on Windows and Linux x64, and macOS x64 and arm64. Compatible wheels need no Rust compiler. Platform requirements and source builds.

Rust

Requires Rust 1.94 or newer. Add to Cargo.toml:

[dependencies]
normalizer-tr = "0.7"
use normalizer_tr::{NormalizeError, NormalizeOptions, Normalizer};

fn main() -> Result<(), NormalizeError> {
    let normalizer = Normalizer::new()?;
    let result = normalizer.normalize("25 TL; 5 kg", &NormalizeOptions::default())?;
    assert_eq!(result.normalized_text(), "yirmi beş Türk lirası; beş kilogram");
    assert!(result.complete());
    Ok(())
}

Reuse a Normalizer across calls. It is cloneable and Send + Sync. Enable the optional serde feature to serialize results.

Choose how to handle ambiguity

Policy Behavior
preserve (default) Keep unresolved spans as written. Return complete=false and issues.
reject Return an error if any span is unresolved.
fallback Render unresolved notation and symbols. Return handled assumptions in fallbacks.
result = normalizer.normalize("1.234; AB12", ambiguity_policy="fallback")
assert result.normalized_text == "bin iki yüz otuz dört; a be bir iki"
assert result.complete and not result.issues
assert result.fallback_used

In Rust, set NormalizeOptions.ambiguity_policy to AmbiguityPolicy::Fallback or AmbiguityPolicy::Reject.

Fallback prefers clear formats, then literal readings and named symbols, then spoken Unicode codes. It does not correct invalid facts or certify identifiers. Check fallbacks when those assumptions matter. Invalid input or hints, cancellation and resource limits remain errors in every policy.

Hints provide explicit intent. All hint and diagnostic ranges are original UTF-8 byte offsets, not character positions.

Documentation

Guide Contents
Rust API (latest release) Published types, methods and examples
Python API Hints, errors, cancellation and building
Normalization reference Supported formats and boundaries
Fallback Reading strategies and diagnostics
Contributing Repository setup, architecture and verification
Performance Running and interpreting development measurements

This is a pre 1.0 library with bounded coverage, not a universal pronunciation engine. Repository guides follow main; the Rust API link documents the latest published crate. Before upgrading, read the changelog for changed readings, diagnostics and exhaustive Rust enum matches.

License

Apache-2.0, with third party notices.

Thanks to @canberk7 for his contribution to fallback support.

Metadata

Release files for normalizer-tr 0.8.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for normalizer-tr 0.8.0
File Size Uploaded
normalizer_tr-0.8.0.tar.gz 534.5 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for normalizer-tr 0.8.0
File
normalizer_tr-0.8.0-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
normalizer_tr-0.8.0-cp314-cp314-manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ x86-64 Details
normalizer_tr-0.8.0-cp314-cp314-macosx_12_0_x86_64.whl CPython 3.14 CPython 3.14 macOS 12.0+ x86-64 Details
normalizer_tr-0.8.0-cp314-cp314-macosx_12_0_arm64.whl CPython 3.14 CPython 3.14 macOS 12.0+ ARM64 Details
normalizer_tr-0.8.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
normalizer_tr-0.8.0-cp313-cp313-manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64 Details
normalizer_tr-0.8.0-cp313-cp313-macosx_12_0_x86_64.whl CPython 3.13 CPython 3.13 macOS 12.0+ x86-64 Details
normalizer_tr-0.8.0-cp313-cp313-macosx_12_0_arm64.whl CPython 3.13 CPython 3.13 macOS 12.0+ ARM64 Details
normalizer_tr-0.8.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
normalizer_tr-0.8.0-cp312-cp312-manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64 Details
normalizer_tr-0.8.0-cp312-cp312-macosx_12_0_x86_64.whl CPython 3.12 CPython 3.12 macOS 12.0+ x86-64 Details
normalizer_tr-0.8.0-cp312-cp312-macosx_12_0_arm64.whl CPython 3.12 CPython 3.12 macOS 12.0+ ARM64 Details
normalizer_tr-0.8.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
normalizer_tr-0.8.0-cp311-cp311-manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64 Details
normalizer_tr-0.8.0-cp311-cp311-macosx_12_0_x86_64.whl CPython 3.11 CPython 3.11 macOS 12.0+ x86-64 Details
normalizer_tr-0.8.0-cp311-cp311-macosx_12_0_arm64.whl CPython 3.11 CPython 3.11 macOS 12.0+ ARM64 Details

Total release size: 22.7 MB

Release files / normalizer_tr-0.8.0.tar.gz

Download URL normalizer_tr-0.8.0.tar.gz
Size 534.5 kB
Tags Source
SHA-256 checksum
How to use checksums
a4b9a9a932f65e607a51824d6b6878f059604c602b55cd6744c11b7f5c1ed061
BLAKE2b-256 checksum
How to use checksums
94045b5a6a63e76b9cdaa8a217249822e71bb87f718e3a81f8c8474396dbe02d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.

Transparency log

Release files / normalizer_tr-0.8.0-cp314-cp314-win_amd64.whl

Download URL normalizer_tr-0.8.0-cp314-cp314-win_amd64.whl
Size 1.3 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
ad340f851a85e6f2c0479f302fa87f3461373fbf8a1b6f160848f5a27c8e3e36
BLAKE2b-256 checksum
How to use checksums
6d3436e099cd7ea2ed74b84b1c624faaf6f075e61c7a4bd3e24e14d95390461e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.

Transparency log

Release files / normalizer_tr-0.8.0-cp314-cp314-manylinux_2_28_x86_64.whl

Download URL normalizer_tr-0.8.0-cp314-cp314-manylinux_2_28_x86_64.whl
Size 1.5 MB
Tags CPython 3.14 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
3791976666d395bc1f66aa8ca931d62f8ec94b992e39355640dbfb5ca941b94c
BLAKE2b-256 checksum
How to use checksums
a1796afc0b236f7ea4470b003b896ff7d3f48394a1d5339fcd59043c7d157e05
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.

Transparency log

Release files / normalizer_tr-0.8.0-cp314-cp314-macosx_12_0_x86_64.whl

Download URL normalizer_tr-0.8.0-cp314-cp314-macosx_12_0_x86_64.whl
Size 1.4 MB
Tags CPython 3.14 macOS 12.0+ x86-64
SHA-256 checksum
How to use checksums
f1671fcffd4160ac00dc5f6931f1a20517afa83464ac5c8dde196665163ab307
BLAKE2b-256 checksum
How to use checksums
7df7d26e8ba1711166c11aa73f257b6e8c0fc950558bcbe98696be7ef19b0480
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.

Transparency log

Release files / normalizer_tr-0.8.0-cp314-cp314-macosx_12_0_arm64.whl

Download URL normalizer_tr-0.8.0-cp314-cp314-macosx_12_0_arm64.whl
Size 1.4 MB
Tags CPython 3.14 macOS 12.0+ ARM64
SHA-256 checksum
How to use checksums
6b167fe462e5940c1673040de309e9939d428ed7d2137274b2b5f0a530b17f37
BLAKE2b-256 checksum
How to use checksums
f49d0f445d70bee6eb47232e81daecfb339005031a1a61085a2d93eec5b53719
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.

Transparency log

Release files / normalizer_tr-0.8.0-cp313-cp313-win_amd64.whl

Download URL normalizer_tr-0.8.0-cp313-cp313-win_amd64.whl
Size 1.3 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
22c7cef1e3cc9dc54998e4b93dfaedbaf5f2a01d661a88e7f8542f16a6e94d66
BLAKE2b-256 checksum
How to use checksums
645f2b6a13bdfa01ce0dd452a27e88634b8f6ceaff0e56f7e293802c718dfe40
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.

Transparency log

Release files / normalizer_tr-0.8.0-cp313-cp313-manylinux_2_28_x86_64.whl

Download URL normalizer_tr-0.8.0-cp313-cp313-manylinux_2_28_x86_64.whl
Size 1.5 MB
Tags CPython 3.13 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
4d4e257ed5097b69c44a7789703e60de2b7aecfbb8b1c049b34c8c06ceb5734b
BLAKE2b-256 checksum
How to use checksums
5c5d277686baa2f7473ddbd2ef732124936e7ca7fa34c45f70bb7fd08c2868a1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.

Transparency log

Release files / normalizer_tr-0.8.0-cp313-cp313-macosx_12_0_x86_64.whl

Download URL normalizer_tr-0.8.0-cp313-cp313-macosx_12_0_x86_64.whl
Size 1.4 MB
Tags CPython 3.13 macOS 12.0+ x86-64
SHA-256 checksum
How to use checksums
47d6c2a8746801b1ffe4181ad9016a421885b7cf1fc72b7f42faaf87575c258f
BLAKE2b-256 checksum
How to use checksums
25e2a310af20773fe3accf8195d2f81bfb7924b264a84d3177a30d285fb82837
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.

Transparency log

Release files / normalizer_tr-0.8.0-cp313-cp313-macosx_12_0_arm64.whl

Download URL normalizer_tr-0.8.0-cp313-cp313-macosx_12_0_arm64.whl
Size 1.4 MB
Tags CPython 3.13 macOS 12.0+ ARM64
SHA-256 checksum
How to use checksums
41d78615e31a689df673b2df6dab35cee1991a5d1d18cab9ad305558ac63257d
BLAKE2b-256 checksum
How to use checksums
117caa8b051cdf9b944b57be183483515bbae60c8be7f0f824af3c145de15542
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.

Transparency log

Release files / normalizer_tr-0.8.0-cp312-cp312-win_amd64.whl

Download URL normalizer_tr-0.8.0-cp312-cp312-win_amd64.whl
Size 1.3 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
78eb375d27fc4adf2f7b03bda62dc5e49db577029689be70c2ec81ed9f7311e5
BLAKE2b-256 checksum
How to use checksums
ca933e739388e5b37def56196793bed45c9e5e9bd7841289d12ab312831f4634
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.

Transparency log

Release files / normalizer_tr-0.8.0-cp312-cp312-manylinux_2_28_x86_64.whl

Download URL normalizer_tr-0.8.0-cp312-cp312-manylinux_2_28_x86_64.whl
Size 1.5 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
2d67e4fa4a8abadc689a544465f49d3e8f092de65402f3b9671a41a19a7e53d4
BLAKE2b-256 checksum
How to use checksums
2201709435eda33afb8cb1c53583bfedc6597d157dc765426a32d383df1570ee
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.

Transparency log

Release files / normalizer_tr-0.8.0-cp312-cp312-macosx_12_0_x86_64.whl

Download URL normalizer_tr-0.8.0-cp312-cp312-macosx_12_0_x86_64.whl
Size 1.4 MB
Tags CPython 3.12 macOS 12.0+ x86-64
SHA-256 checksum
How to use checksums
1aeb84bcd7a5cc46b693b260d81a6776511e77cfc1f7fc5706313e26e0dad01a
BLAKE2b-256 checksum
How to use checksums
76dbcfa079fd68bf0688e636e9aba130593577379b8e088b5eea693f665095ce
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.

Transparency log

Release files / normalizer_tr-0.8.0-cp312-cp312-macosx_12_0_arm64.whl

Download URL normalizer_tr-0.8.0-cp312-cp312-macosx_12_0_arm64.whl
Size 1.4 MB
Tags CPython 3.12 macOS 12.0+ ARM64
SHA-256 checksum
How to use checksums
f93e3274702c1fcedae766fa73c4da8a82b1b4493721e339714c076408b7d34f
BLAKE2b-256 checksum
How to use checksums
fca4757fbc93193c0886b280d994870582b7840d29fe5a1a3bd591cd126bca70
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.

Transparency log

Release files / normalizer_tr-0.8.0-cp311-cp311-win_amd64.whl

Download URL normalizer_tr-0.8.0-cp311-cp311-win_amd64.whl
Size 1.3 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
baae5eda5a4dd06a6c120f1496e064e43543a18e7023b6881a4332df5c9a44e7
BLAKE2b-256 checksum
How to use checksums
25816fe42e4cad077a11a6d6d096dbf35a66806923d6510e368246d55e3fb9cc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.

Transparency log

Release files / normalizer_tr-0.8.0-cp311-cp311-manylinux_2_28_x86_64.whl

Download URL normalizer_tr-0.8.0-cp311-cp311-manylinux_2_28_x86_64.whl
Size 1.5 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
1d4fb836d9f54d9949d97a5994ed257dc9cb4cca7b00de362c4a847d561847da
BLAKE2b-256 checksum
How to use checksums
6d603f350c0b654294a790dc1d0d34c5021cb4dc0b80e441f8ccdd89a1ebf95e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.

Transparency log

Release files / normalizer_tr-0.8.0-cp311-cp311-macosx_12_0_x86_64.whl

Download URL normalizer_tr-0.8.0-cp311-cp311-macosx_12_0_x86_64.whl
Size 1.4 MB
Tags CPython 3.11 macOS 12.0+ x86-64
SHA-256 checksum
How to use checksums
15fc536907e300b05e2215d128079d36007015b9c125fdc74d7c7af42eaf61cb
BLAKE2b-256 checksum
How to use checksums
392ee1b304012336c3e7ff7bf39de752defb71a0c5220095bf647501800e5463
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.

Transparency log

Release files / normalizer_tr-0.8.0-cp311-cp311-macosx_12_0_arm64.whl

Download URL normalizer_tr-0.8.0-cp311-cp311-macosx_12_0_arm64.whl
Size 1.4 MB
Tags CPython 3.11 macOS 12.0+ ARM64
SHA-256 checksum
How to use checksums
c483bb85a6c19c21a29b5abfa0f0a771a04ab4409a5bcd31f867063ceee3f0e0
BLAKE2b-256 checksum
How to use checksums
0c1dbe62e232787acfa5c59613dd180d6fd2e7545f3b94dbef23d77381849e1e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.8.0 This release

17 release files

0.7.0

17 release files

0.6.0

17 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page