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.4"
use normalizer_tr::{NormalizeOptions, Normalizer};

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::<(), normalizer_tr::NormalizeError>(())

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 release notes for changes.

License

Apache-2.0, with third party notices.

Thanks to @canberk7 for his contribution to fallback support.

Metadata

Release files for normalizer-tr 0.4.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.4.0
File Size Uploaded
normalizer_tr-0.4.0.tar.gz 385.9 kB Details

Built distributions (wheels)

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

Total release size: 21.0 MB

Release files / normalizer_tr-0.4.0.tar.gz

Download URL normalizer_tr-0.4.0.tar.gz
Size 385.9 kB
Tags Source
SHA-256 checksum
How to use checksums
97b36de1b31bd41b6380b0c6f16dec32d642651b59a9ac3e1c70784e934d4f67
BLAKE2b-256 checksum
How to use checksums
1bb00b698f2c473db85e4f0b1bacd72eb995dbe8b19b3eaceeef5af07a8545c5
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 3, 2026.

Transparency log

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

Download URL normalizer_tr-0.4.0-cp314-cp314-win_amd64.whl
Size 1.2 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
539b27dba0cbaf15f34d52e55883c91e342a6c2f07e45457e230b494c14887b0
BLAKE2b-256 checksum
How to use checksums
278b5e3cc0500aac3240948aa1b8c2fe00b355eed6e0855b88588afd5927024a
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 3, 2026.

Transparency log

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

Download URL normalizer_tr-0.4.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
3d8e4681abcddc76e7b25492208ffe6d79250fbd490a6bd96967b488d14dd8d4
BLAKE2b-256 checksum
How to use checksums
5d792ded49ce33a485b116f6bbd8d8f99d21cdffc72a76778005073692f4c290
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 3, 2026.

Transparency log

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

Download URL normalizer_tr-0.4.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
91272349685d74ecacd8dc3d45adb722c050fcdb5ce1402e6b703cb7de7c7c7a
BLAKE2b-256 checksum
How to use checksums
6c1a5214b20e6eee8a0dba266a84e7f560755d808d5bffd150b4febb23c278a5
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 3, 2026.

Transparency log

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

Download URL normalizer_tr-0.4.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
d29f0ff194cd3fa50c25b574b15c2344eda4980f3b69809d156c7e8ab4c5e220
BLAKE2b-256 checksum
How to use checksums
46f2271d05a9ed4d136d0bde7843ffb767b48be10f3ed4bb594c360c21cae278
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 3, 2026.

Transparency log

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

Download URL normalizer_tr-0.4.0-cp313-cp313-win_amd64.whl
Size 1.2 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
a85e35130cef42169abb86875ea41eb13df67fdbdf597894a7e2c6c4c0ef9bb7
BLAKE2b-256 checksum
How to use checksums
2da5a71668fa53b6fbf4b1b0fdcdd31df5f21151cb3ad3eb44a07a45d048bffb
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 3, 2026.

Transparency log

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

Download URL normalizer_tr-0.4.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
cdc9e96d669370f791d79b583e8e92e92696e47c2cabd8e2537e1ba24da3f4d3
BLAKE2b-256 checksum
How to use checksums
bc4ff8ff50b61bb4f47d857ca3c911c92712ab9560c0646b5765588eed81c489
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 3, 2026.

Transparency log

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

Download URL normalizer_tr-0.4.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
2a5d8db9e87f95dd57aca7d632f1bc13aa43163d30ee7434ddab1235bb55b102
BLAKE2b-256 checksum
How to use checksums
9d1e05300dda481f33d7b4dca8edc46747bdef4569c796b721d18f08586b0987
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 3, 2026.

Transparency log

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

Download URL normalizer_tr-0.4.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
3436383e5c5e1cfe3e5f384dba7db83d739c48da81eb5139f806a32e5b3e8b63
BLAKE2b-256 checksum
How to use checksums
b823980b4fb12f92e48bf4039e207fceba7ad8c3bf6ccd6c3bbcc6466a5feeaf
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 3, 2026.

Transparency log

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

Download URL normalizer_tr-0.4.0-cp312-cp312-win_amd64.whl
Size 1.2 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
22abf55a7f744a327944433af93c9377f48b872db4548afda6f128e08bd85316
BLAKE2b-256 checksum
How to use checksums
72641c72c9c9bf7e86e6b77fd866a757bff0d024db8f322f244b6fdec390eb72
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 3, 2026.

Transparency log

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

Download URL normalizer_tr-0.4.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
a3f11ec6c160b0364a008158d0c0d7ebf090df67725a8f3535a107ba3106d80b
BLAKE2b-256 checksum
How to use checksums
aa42abca41e043d12b6befc4c3823dab5f307ae8cb8b676f213fe695016f5e6a
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 3, 2026.

Transparency log

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

Download URL normalizer_tr-0.4.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
50fc98a0333a3a5e65107bdef0888c14d3e74cb2ac1fcc1550fc975ba0c2c56f
BLAKE2b-256 checksum
How to use checksums
97b6495499f33023bfea59430bfbda03169fc5b67fff6d0bb9a7b2936caf9bb0
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 3, 2026.

Transparency log

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

Download URL normalizer_tr-0.4.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
3a6372e90fbed2dbf1f5636f1decdaec0da272a8dee00ef353e277c8a9d5aad3
BLAKE2b-256 checksum
How to use checksums
f3e7907a91906bbdbd53db32841e9db159be9797a5f2f743027bf02cd627672f
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 3, 2026.

Transparency log

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

Download URL normalizer_tr-0.4.0-cp311-cp311-win_amd64.whl
Size 1.2 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
cc44ca1b30b28cd1ae79218cd76a46be6fd568215f5a4d3c3872dfc708e9afe9
BLAKE2b-256 checksum
How to use checksums
0ccc8160a0b8cfc56a57d33680e66a441b97236ac037273972cef55c6ed39526
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 3, 2026.

Transparency log

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

Download URL normalizer_tr-0.4.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
5e8de870cc2e2baa35a32f025fc85f095205b5fb2d10b4c71df1ad19b20f7a04
BLAKE2b-256 checksum
How to use checksums
690f212514f71ffc4a2b260e514be33fdb78975926e8919ddd0e9028fd462c21
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 3, 2026.

Transparency log

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

Download URL normalizer_tr-0.4.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
74bcc5aad552f996ef60400d156792d8eecea62abc34dc4f1e6f79aec80bff01
BLAKE2b-256 checksum
How to use checksums
48d4fa72b116df027a1c863bffb1ae761f11d2b2a0da1de15e5e58199f08c490
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 3, 2026.

Transparency log

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

Download URL normalizer_tr-0.4.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
da2cb74d8da73e46f6a1acc5ed4f595f4990a9400ac18cbb0bdf31b75fbc6015
BLAKE2b-256 checksum
How to use checksums
68175a05ec4dc36db30d875653def32e124652d77ee98d93741b58bfedc64022
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 3, 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.4.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