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 while preserving ordinary prose. 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.5"
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 Types, methods and examples
Python API Hints, errors, cancellation and building
Normalization reference Supported formats and boundaries
Fallback Reading strategies and diagnostics
Contributing Setup, architecture and verification

This is a pre 1.0 library with bounded coverage, not a universal pronunciation engine. See performance for measurements and changelog for release status and migration notes.

The guides track repository behavior: expanded initialism coverage and foreign-name speech aliases are included in 0.5.0. Review the changelog's migration notes before upgrading, especially exhaustive Rust enum matches and strict serialized allowlists.

License

Apache-2.0, with third party notices.

Thanks to @canberk7 for his contribution to fallback support.

Metadata

Release files for normalizer-tr 0.5.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.5.0
File Size Uploaded
normalizer_tr-0.5.0.tar.gz 428.1 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for normalizer-tr 0.5.0
File
normalizer_tr-0.5.0-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
normalizer_tr-0.5.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.5.0-cp314-cp314-macosx_12_0_x86_64.whl CPython 3.14 CPython 3.14 macOS 12.0+ x86-64 Details
normalizer_tr-0.5.0-cp314-cp314-macosx_12_0_arm64.whl CPython 3.14 CPython 3.14 macOS 12.0+ ARM64 Details
normalizer_tr-0.5.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
normalizer_tr-0.5.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.5.0-cp313-cp313-macosx_12_0_x86_64.whl CPython 3.13 CPython 3.13 macOS 12.0+ x86-64 Details
normalizer_tr-0.5.0-cp313-cp313-macosx_12_0_arm64.whl CPython 3.13 CPython 3.13 macOS 12.0+ ARM64 Details
normalizer_tr-0.5.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
normalizer_tr-0.5.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.5.0-cp312-cp312-macosx_12_0_x86_64.whl CPython 3.12 CPython 3.12 macOS 12.0+ x86-64 Details
normalizer_tr-0.5.0-cp312-cp312-macosx_12_0_arm64.whl CPython 3.12 CPython 3.12 macOS 12.0+ ARM64 Details
normalizer_tr-0.5.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
normalizer_tr-0.5.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.5.0-cp311-cp311-macosx_12_0_x86_64.whl CPython 3.11 CPython 3.11 macOS 12.0+ x86-64 Details
normalizer_tr-0.5.0-cp311-cp311-macosx_12_0_arm64.whl CPython 3.11 CPython 3.11 macOS 12.0+ ARM64 Details

Total release size: 21.5 MB

Release files / normalizer_tr-0.5.0.tar.gz

Download URL normalizer_tr-0.5.0.tar.gz
Size 428.1 kB
Tags Source
SHA-256 checksum
How to use checksums
1690351a40a468c7230a4b90c75c0da026172d72b6c41056df9b37fad9da35dd
BLAKE2b-256 checksum
How to use checksums
051c0d381fe0f06c3ae60a2562d70f0989685d5b861f5efb48fa4324fcb5f13d
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 9, 2026.

Transparency log

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

Download URL normalizer_tr-0.5.0-cp314-cp314-win_amd64.whl
Size 1.2 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
c6a93b006e29ea612c31e917faebdfab1a0f129df15f62b79a9561f99cf5081d
BLAKE2b-256 checksum
How to use checksums
2b10b219da946d8b9160e4347ed3ad873c4f9b2d5eef763d1ac96b38d4a05a53
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 9, 2026.

Transparency log

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

Download URL normalizer_tr-0.5.0-cp314-cp314-manylinux_2_28_x86_64.whl
Size 1.4 MB
Tags CPython 3.14 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
1674a03f1ebd24987305c4f9b89bb16d60663abaefcb0f1e3d8e6ed9cc533bff
BLAKE2b-256 checksum
How to use checksums
3479f8bd9615d59306de5a5d1c487c47f242ee6461e62ddff250dbb623ee1da4
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 9, 2026.

Transparency log

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

Download URL normalizer_tr-0.5.0-cp314-cp314-macosx_12_0_x86_64.whl
Size 1.3 MB
Tags CPython 3.14 macOS 12.0+ x86-64
SHA-256 checksum
How to use checksums
86b4e5109728c95baecdcbbf2db297704def09c05ee3ff8a9d6c6f835c8caf42
BLAKE2b-256 checksum
How to use checksums
650d48e31a08d2e1db4d0af27949316a8e0feb7e0b3a0e27a5502eb64c388a05
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 9, 2026.

Transparency log

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

Download URL normalizer_tr-0.5.0-cp314-cp314-macosx_12_0_arm64.whl
Size 1.3 MB
Tags CPython 3.14 macOS 12.0+ ARM64
SHA-256 checksum
How to use checksums
11228965ed5ed49f989235851651e778fecf212ec2bbe8124ebc6121372fea00
BLAKE2b-256 checksum
How to use checksums
6db39a96b60b9d2ba31e1ffad2d4f753dd436ec47ce53aec24e62e7e4aaca283
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 9, 2026.

Transparency log

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

Download URL normalizer_tr-0.5.0-cp313-cp313-win_amd64.whl
Size 1.2 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
56d85ff4949825f80f0dd65db23232e593716649c278b4e958ed0bb8c5acbbf5
BLAKE2b-256 checksum
How to use checksums
822ae0ef4bd179e73488e412e2fa84acf2f84a59535051bb339ae2d0cd8e7e22
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 9, 2026.

Transparency log

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

Download URL normalizer_tr-0.5.0-cp313-cp313-manylinux_2_28_x86_64.whl
Size 1.4 MB
Tags CPython 3.13 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
4d1939ecd16f003c2dbfb12ba9dadded342ce6294bdde359b00ad01d8be5b208
BLAKE2b-256 checksum
How to use checksums
133716a837190f7c63e99882093baf860d5d5fd5c6184139e3eabfc732a468ca
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 9, 2026.

Transparency log

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

Download URL normalizer_tr-0.5.0-cp313-cp313-macosx_12_0_x86_64.whl
Size 1.3 MB
Tags CPython 3.13 macOS 12.0+ x86-64
SHA-256 checksum
How to use checksums
8253f9100642798b23d10699dac65a661da8b8a5434635e3b3657a4173e0524d
BLAKE2b-256 checksum
How to use checksums
76a41435f7552b077f19569b00cb643c868c82537f6c114a90d47a278ab74278
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 9, 2026.

Transparency log

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

Download URL normalizer_tr-0.5.0-cp313-cp313-macosx_12_0_arm64.whl
Size 1.3 MB
Tags CPython 3.13 macOS 12.0+ ARM64
SHA-256 checksum
How to use checksums
04913f245925c0f1b3686b797d08f9c393c7fbc18378d1923b3eec05796e4e4d
BLAKE2b-256 checksum
How to use checksums
55dd8a21ca54d9816b5d92306bc8b84dd9ad838e15f7ce2fbc55273756db774b
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 9, 2026.

Transparency log

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

Download URL normalizer_tr-0.5.0-cp312-cp312-win_amd64.whl
Size 1.2 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
503434eda92cdcba1794692215203b276be0f629cb9bb4fadbfb77587905f5dd
BLAKE2b-256 checksum
How to use checksums
fd60abcd73b24e4559f9762ccc846f3e2ec7d0333c4e3ca97ccb3bd9d8380d97
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 9, 2026.

Transparency log

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

Download URL normalizer_tr-0.5.0-cp312-cp312-manylinux_2_28_x86_64.whl
Size 1.4 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
6d5d45d3822fa696dd7ee876ba1528fa4ea5f42be33a714cc46a4777a68a4fdf
BLAKE2b-256 checksum
How to use checksums
d05ccf84e01eb5e3454312f143d1c24487c04af95c0a8bf4f4af5fc73ca619ff
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 9, 2026.

Transparency log

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

Download URL normalizer_tr-0.5.0-cp312-cp312-macosx_12_0_x86_64.whl
Size 1.3 MB
Tags CPython 3.12 macOS 12.0+ x86-64
SHA-256 checksum
How to use checksums
20fa14111adc5b0c029201a58404daf42b89ddd7026ae5d07ed339954c2bf2e9
BLAKE2b-256 checksum
How to use checksums
9d4de00db6cc00bba713c70d38f9fea97ba67e4ccfeaa642f506d7cc5ed9e4cb
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 9, 2026.

Transparency log

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

Download URL normalizer_tr-0.5.0-cp312-cp312-macosx_12_0_arm64.whl
Size 1.3 MB
Tags CPython 3.12 macOS 12.0+ ARM64
SHA-256 checksum
How to use checksums
66f86a1c2c71bbcc05a355dd5142f75d12edda4d5afbaa910cf9233463ee1df9
BLAKE2b-256 checksum
How to use checksums
8ba10f541375ec4952eb7bcd24b81b8ab906396a43392c0af28b8ecb5d2fbe49
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 9, 2026.

Transparency log

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

Download URL normalizer_tr-0.5.0-cp311-cp311-win_amd64.whl
Size 1.2 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
4c8450c8e629c3080ca7bcec011787189ae26e003e262c2c2b71753979624513
BLAKE2b-256 checksum
How to use checksums
98336f573fb3d86b9148b197b0b6758e95ff74eb61790b7b4a6d67b14ee4e56c
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 9, 2026.

Transparency log

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

Download URL normalizer_tr-0.5.0-cp311-cp311-manylinux_2_28_x86_64.whl
Size 1.4 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
b98c8ff8b95537dc57026c2f7137dc7f9aca8323a0ce70ad301573ffef399d58
BLAKE2b-256 checksum
How to use checksums
24960e72956230933ba12209f3374a0b045631d20d0accae1b50d3b5167d8563
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 9, 2026.

Transparency log

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

Download URL normalizer_tr-0.5.0-cp311-cp311-macosx_12_0_x86_64.whl
Size 1.3 MB
Tags CPython 3.11 macOS 12.0+ x86-64
SHA-256 checksum
How to use checksums
a691d84609632fed4771b42f7f45e7e8bf416484e69915251833bf3bc2c4ec45
BLAKE2b-256 checksum
How to use checksums
5079210afb90c8ce11bb0e9cabf40bf1598050661e07120d63beb01213c98a72
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 9, 2026.

Transparency log

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

Download URL normalizer_tr-0.5.0-cp311-cp311-macosx_12_0_arm64.whl
Size 1.3 MB
Tags CPython 3.11 macOS 12.0+ ARM64
SHA-256 checksum
How to use checksums
8d44f1b6e8f52ff8fa20f19564006c2fedcb6c9a834740bd0aadb827e464385b
BLAKE2b-256 checksum
How to use checksums
5e2cff5dd3d23720be64d7afde55d29c045cdbb06bcb4edbef984e031128e4a9
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 9, 2026.

Transparency log

Release history Release notifications | RSS feed

0.8.0

17 release files

0.7.0

17 release files

0.6.0

17 release files

This release

0.5.0 This release

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