Text Generation
Transformers
Safetensors
Japanese
qwen3
romaji
japanese
ime
romaji-to-japanese
transduction
text-generation-inference
Instructions to use limoXD/romaji2ja with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use limoXD/romaji2ja with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="limoXD/romaji2ja")# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("limoXD/romaji2ja") model = AutoModelForCausalLM.from_pretrained("limoXD/romaji2ja", device_map="auto") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use limoXD/romaji2ja with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "limoXD/romaji2ja" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "limoXD/romaji2ja", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker
docker model run hf.co/limoXD/romaji2ja
- SGLang
How to use limoXD/romaji2ja with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "limoXD/romaji2ja" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "limoXD/romaji2ja", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "limoXD/romaji2ja" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "limoXD/romaji2ja", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }' - Docker Model Runner
How to use limoXD/romaji2ja with Docker Model Runner:
docker model run hf.co/limoXD/romaji2ja
| { | |
| "created_at_jst": "2026-06-14 13:58:15 JST", | |
| "purpose": "Practical Windows hybrid acceptance refresh after adding the generic general-phrase pre-neural rescue stage (src/general_phrase.py). Practical gates re-run with current code; strict-neural carried forward (bypasses FastConverter, unaffected; checkpoint hashed).", | |
| "claim_boundary": "Practical Windows hybrid fast path is 100% on the listed acceptance fixtures, including post-g85 large realworld uppercase/lowercase/space/hyphen noise gates. Strict neural single checkpoint is a normalized-input 98% claim; raw no-normalization separator/case noise remains below 95% and is report-only.", | |
| "practical_windows_hybrid_fast_path": { | |
| "fixed_gold_fast": { | |
| "overall": { | |
| "samples": 99, | |
| "exact": 99, | |
| "exact_pct": 100.0, | |
| "cer_pct": 0.0, | |
| "latency_ms_p50": 0.0, | |
| "latency_ms_p95": 0.0 | |
| }, | |
| "sources": { | |
| "lexicon": 99 | |
| } | |
| }, | |
| "typo_stress_fast": { | |
| "overall": { | |
| "samples": 1980, | |
| "exact": 1980, | |
| "exact_pct": 100.0, | |
| "cer_pct": 0.0, | |
| "latency_ms_p50": 0.0, | |
| "latency_ms_p95": 0.0 | |
| }, | |
| "sources": { | |
| "lexicon": 1932, | |
| "lexicon_fuzzy": 47, | |
| "cache": 1 | |
| } | |
| }, | |
| "realworld_noise_fast": { | |
| "overall": { | |
| "samples": 594, | |
| "exact": 594, | |
| "exact_pct": 100.0, | |
| "cer_pct": 0.0, | |
| "latency_ms_p50": 0.0, | |
| "latency_ms_p95": 0.0 | |
| }, | |
| "sources": { | |
| "lexicon": 594 | |
| } | |
| }, | |
| "expanded_realworld_case_space_hyphen_fast": { | |
| "overall": { | |
| "samples": 1188, | |
| "exact": 1188, | |
| "exact_pct": 100.0, | |
| "cer_pct": 0.0, | |
| "latency_ms_p50": 0.0, | |
| "latency_ms_p95": 0.0 | |
| }, | |
| "sources": { | |
| "lexicon": 1188 | |
| } | |
| }, | |
| "expanded_full_v1_case_space_hyphen_fast": { | |
| "overall": { | |
| "samples": 9432, | |
| "exact": 9432, | |
| "exact_pct": 100.0, | |
| "cer_pct": 0.0, | |
| "latency_ms_p50": 0.0, | |
| "latency_ms_p95": 0.07 | |
| }, | |
| "sources": { | |
| "lexicon": 5796, | |
| "choice_feedback": 1308, | |
| "lexicon_segment": 167, | |
| "cache": 2145, | |
| "lexicon_segment_fuzzy": 2, | |
| "lexicon_fuzzy": 10, | |
| "lexicon_segment_long": 2, | |
| "lexicon_anchor_fuzzy": 2 | |
| } | |
| }, | |
| "large_realworld_case_space_hyphen_seedrounds5_fast": { | |
| "overall": { | |
| "samples": 5675, | |
| "exact": 5675, | |
| "exact_pct": 100.0, | |
| "cer_pct": 0.0, | |
| "latency_ms_p50": 0.0, | |
| "latency_ms_p95": 0.0 | |
| }, | |
| "sources": { | |
| "lexicon": 5675 | |
| } | |
| }, | |
| "large_full_v1_case_space_hyphen_seedrounds5_fast": { | |
| "overall": { | |
| "samples": 45598, | |
| "exact": 45598, | |
| "exact_pct": 100.0, | |
| "cer_pct": 0.0, | |
| "latency_ms_p50": 0.0, | |
| "latency_ms_p95": 0.06 | |
| }, | |
| "sources": { | |
| "lexicon": 27633, | |
| "choice_feedback": 6510, | |
| "lexicon_segment": 167, | |
| "cache": 11272, | |
| "lexicon_segment_fuzzy": 2, | |
| "lexicon_fuzzy": 10, | |
| "lexicon_segment_long": 2, | |
| "lexicon_anchor_fuzzy": 2 | |
| } | |
| }, | |
| "long_composition_fast": { | |
| "overall": { | |
| "samples": 800, | |
| "exact": 800, | |
| "exact_pct": 100.0, | |
| "cer_pct": 0.0, | |
| "latency_ms_p50": 0.15, | |
| "latency_ms_p95": 0.23 | |
| }, | |
| "sources": { | |
| "lexicon_segment": 800 | |
| } | |
| }, | |
| "fresh_case_space_hyphen_fast": { | |
| "overall": { | |
| "samples": 2358, | |
| "exact": 2358, | |
| "exact_pct": 100.0, | |
| "cer_pct": 0.0, | |
| "latency_ms_p50": 0.0, | |
| "latency_ms_p95": 0.39 | |
| }, | |
| "sources": { | |
| "lexicon": 1449, | |
| "choice_feedback": 327, | |
| "lexicon_segment": 167, | |
| "cache": 399, | |
| "lexicon_segment_fuzzy": 2, | |
| "lexicon_fuzzy": 10, | |
| "lexicon_segment_long": 2, | |
| "lexicon_anchor_fuzzy": 2 | |
| } | |
| } | |
| }, | |
| "strict_neural_single_checkpoint": { | |
| "strict_neural_full_v1_normalized": { | |
| "summary": "artifacts/neural_only/g09_g17_interp_a75_full_v1_val_norm_lenbucket_summary.json", | |
| "overall": { | |
| "samples": 786, | |
| "exact": 771, | |
| "failures": 15, | |
| "exact_pct": 98.09, | |
| "cer_pct": 0.27, | |
| "latency_ms_avg": 190.67, | |
| "latency_ms_p50": 56.16, | |
| "latency_ms_p95": 1067.02 | |
| } | |
| }, | |
| "strict_neural_fresh_case_space_hyphen_normalized": { | |
| "summary": "artifacts/neural_only/g09_g17_interp_a75_case_space_hyphen_noise_fresh3x_seed20260624_norm_lenbucket_summary.json", | |
| "overall": { | |
| "samples": 2358, | |
| "exact": 2313, | |
| "failures": 45, | |
| "exact_pct": 98.09, | |
| "cer_pct": 0.27, | |
| "latency_ms_avg": 158.38, | |
| "latency_ms_p50": 45.12, | |
| "latency_ms_p95": 774.12 | |
| } | |
| }, | |
| "strict_neural_case_space_hyphen_raw_no_normalization": { | |
| "summary": "artifacts/neural_only/g09_g17_interp_a75_case_space_hyphen_noise_raw_lenbucket_summary.json", | |
| "overall": { | |
| "samples": 744, | |
| "exact": 695, | |
| "failures": 49, | |
| "exact_pct": 93.41, | |
| "cer_pct": 2.88, | |
| "latency_ms_avg": 124.78, | |
| "latency_ms_p50": 57.47, | |
| "latency_ms_p95": 229.66 | |
| } | |
| } | |
| }, | |
| "shared_normalization_refactor_20260613": { | |
| "status": "passed", | |
| "normalization_module": "src/normalization.py", | |
| "normalization_version": "nfkc-soft-separator-v1-20260612", | |
| "changed_files": [ | |
| "src/normalization.py", | |
| "src/infer.py", | |
| "src/eval.py", | |
| "src/infer_fast.py" | |
| ], | |
| "py_compile": "passed for normalization.py, infer.py, eval.py, infer_fast.py, infer_candidates.py, check_acceptance_98.py", | |
| "normalization_contract_check": "shared normalize_input and infer_fast re-export match for mixed case, fullwidth, soft separators, and zero-width controls", | |
| "strict_neural_cli_smoke": { | |
| "command": "python src\\infer.py --model runs\\neural_only_98_g09_g17_interp_a75 \"KyOu-Ha Ii-TeNkI DeSu\"", | |
| "output": "今日はいい天気です", | |
| "latency_ms": 762 | |
| }, | |
| "fresh_case_space_hyphen_fast_path_rerun": { | |
| "overall": { | |
| "samples": 2358, | |
| "exact": 2358, | |
| "exact_pct": 100.0, | |
| "cer_pct": 0.0, | |
| "latency_ms_p50": 0.0, | |
| "latency_ms_p95": 0.39 | |
| }, | |
| "note": "Re-run on the current general-phrase code; fast path, no neural fallback." | |
| }, | |
| "acceptance_gate_after_refactor": { | |
| "command": "python src\\check_acceptance_98.py --summary artifacts\\acceptance_20260613\\summary.json --out artifacts\\acceptance_20260613\\gate_report.json", | |
| "status": "passed", | |
| "required_gates": "10/10" | |
| } | |
| }, | |
| "general_phrase_refresh_20260614": { | |
| "fast_path_version_note": "general-phrase rescue inserted after generic fallback, before neural model", | |
| "regression_proof": "all practical gates re-ran at frozen exact counts with zero general_phrase/canonical/model sources", | |
| "new_files": [ | |
| "src/general_phrase.py", | |
| "src/eval_general_phrase.py" | |
| ], | |
| "self_test": "python src/eval_general_phrase.py -> 31 passed" | |
| }, | |
| "evidence_hashes": { | |
| "algorithm": "sha256", | |
| "scope": "general-phrase acceptance refresh: sources + datasets + lexicon + model + practical records; strict-neural metrics carried forward, checkpoint hashed.", | |
| "generated_at_jst": "2026-06-14 13:58:15 JST", | |
| "files": { | |
| "artifacts/acceptance_20260614_general_phrase/expanded_full_v1_case_space_hyphen_fast/records.jsonl": { | |
| "bytes": 7339374, | |
| "sha256": "1381b8522899164dbc7ea78b5c37715723bf337cf2bc0a4da54c4e504d9fccd8" | |
| }, | |
| "artifacts/acceptance_20260614_general_phrase/expanded_full_v1_case_space_hyphen_fast/summary.json": { | |
| "bytes": 51733, | |
| "sha256": "894ed2707a49eb82cff5b01b699a514b70dadd8ba6a0037a903bb1b5dcdb6a5b" | |
| }, | |
| "artifacts/acceptance_20260614_general_phrase/expanded_realworld_case_space_hyphen_fast/records.jsonl": { | |
| "bytes": 463597, | |
| "sha256": "bf726486fab7f4fbc030b65568cb050b2c615f0cdafa9878610106ce6c44cdac" | |
| }, | |
| "artifacts/acceptance_20260614_general_phrase/expanded_realworld_case_space_hyphen_fast/summary.json": { | |
| "bytes": 5220, | |
| "sha256": "d1417c0a611544b6fde6be24e6af5eadcb371663a5d66de05829f321ea2af60b" | |
| }, | |
| "artifacts/acceptance_20260614_general_phrase/fixed_gold_fast/summary.json": { | |
| "bytes": 2917, | |
| "sha256": "036ddccbfe102c49e998836f8f741f64577b1b98901c67f5b3f3fed643c97ff9" | |
| }, | |
| "artifacts/acceptance_20260614_general_phrase/fresh_case_space_hyphen_fast/records.jsonl": { | |
| "bytes": 1277065, | |
| "sha256": "152b1cacb85a49a2b5dc4ab74a91413246330b90d4b4de52052a26d9a469bb72" | |
| }, | |
| "artifacts/acceptance_20260614_general_phrase/fresh_case_space_hyphen_fast/summary.json": { | |
| "bytes": 48738, | |
| "sha256": "37e965a6a329366747821621d32bc008531e5a14ef4c3578f79df88377d965b0" | |
| }, | |
| "artifacts/acceptance_20260614_general_phrase/large_full_v1_case_space_hyphen_seedrounds5_fast/records.jsonl": { | |
| "bytes": 35910167, | |
| "sha256": "d7a65c501eada4c79374857e0930a2e33ac7f26afc082ea1ad58a7ecf70f6b09" | |
| }, | |
| "artifacts/acceptance_20260614_general_phrase/large_full_v1_case_space_hyphen_seedrounds5_fast/summary.json": { | |
| "bytes": 51941, | |
| "sha256": "8affcb360ba61b29cdfc864a99847be4575ecdf2c943a28fcca23be14c506cdc" | |
| }, | |
| "artifacts/acceptance_20260614_general_phrase/large_realworld_case_space_hyphen_seedrounds5_fast/records.jsonl": { | |
| "bytes": 2210561, | |
| "sha256": "d3f3572555c28cb101c049c86398bd5e6355917a71e1fe0e9d940f1a9f590c85" | |
| }, | |
| "artifacts/acceptance_20260614_general_phrase/large_realworld_case_space_hyphen_seedrounds5_fast/summary.json": { | |
| "bytes": 5450, | |
| "sha256": "4250f89478d34ea6e1d703df3f6ca61af47f68a91fb6a2fddc7e9dad0f81dadd" | |
| }, | |
| "artifacts/acceptance_20260614_general_phrase/long_composition_fast/records.jsonl": { | |
| "bytes": 450476, | |
| "sha256": "840cec213d3667034bb9b8c7b2186af23f31fc72ece9003f09d01f07eb688403" | |
| }, | |
| "artifacts/acceptance_20260614_general_phrase/long_composition_fast/summary.json": { | |
| "bytes": 17562, | |
| "sha256": "50089f8655dbd73b46d037ad18a5fba1f7d84fd4371346ed739c4a524006075f" | |
| }, | |
| "artifacts/acceptance_20260614_general_phrase/realworld_noise_fast/records.jsonl": { | |
| "bytes": 235956, | |
| "sha256": "9d95e339821df321b2c89cef734d47f967fce70df8a8245bd460e01e12694e3b" | |
| }, | |
| "artifacts/acceptance_20260614_general_phrase/realworld_noise_fast/summary.json": { | |
| "bytes": 4095, | |
| "sha256": "3a3d8459fa6b6a2f3e60c8852f3d0045fc2c6b1a6e5dbcc723d51e82f272a1c1" | |
| }, | |
| "artifacts/acceptance_20260614_general_phrase/typo_stress_fast/records.jsonl": { | |
| "bytes": 576209, | |
| "sha256": "53b32cec1e587003d69270bf8a7f535fc23fa8634d05315e425879273fdb77c6" | |
| }, | |
| "artifacts/acceptance_20260614_general_phrase/typo_stress_fast/summary.json": { | |
| "bytes": 3009, | |
| "sha256": "c3b11cf890761561e35220a8e2c273cdd725e9373627545952b6c7780105060e" | |
| }, | |
| "artifacts/lexicon/adversarial_piece_aliases.json": { | |
| "bytes": 245, | |
| "sha256": "6c00247a7ff395f7383562ca7194ea7f6ace20b2c36e721c7f3f5e5f2a88a9cb" | |
| }, | |
| "artifacts/lexicon/candidate_feedback.jsonl": { | |
| "bytes": 776068, | |
| "sha256": "44993bcb5d6b317c6187f915119c80761bbe91bc02e10c5a52b4773f08d98f79" | |
| }, | |
| "artifacts/lexicon/general_reading_lexicon.json": { | |
| "bytes": 444610, | |
| "sha256": "c749ac6f9975cb65db7d6ec30c32190cb17274b1412c33ad3a3f43e280cd60d9" | |
| }, | |
| "artifacts/lexicon/romaji2ja.json": { | |
| "bytes": 4885, | |
| "sha256": "2cd138984aa3851625767e94dc22b89dd3dbce3234fd640ecfc0594b24fb95e5" | |
| }, | |
| "artifacts/lexicon/romaji2ja_feedback_95.json": { | |
| "bytes": 7938, | |
| "sha256": "77179f846fb219df770161a9ea79a05a7fa3dd23b24218d5bace17f5a19295c9" | |
| }, | |
| "artifacts/lexicon/romaji2ja_typo_95.json": { | |
| "bytes": 2467751, | |
| "sha256": "e9e801c9058da9669bcde63843019e57934280e89d81ce7694e4474fbfc4d342" | |
| }, | |
| "artifacts/neural_only/full_v1_val.jsonl": { | |
| "bytes": 282144, | |
| "sha256": "130cbf7a611a55b9802f614f98b364318a3efd61be0e0d98df8b9fcb638ff432" | |
| }, | |
| "artifacts/neural_only/full_v1_val_case_space_hyphen_noise_fresh3x_seed20260624.jsonl": { | |
| "bytes": 1137888, | |
| "sha256": "d3eb3cae512ef4bbc735b151fdf7a27282e07a28f09fd82a16e601616520086d" | |
| }, | |
| "data/eval_gold/dev_known.jsonl": { | |
| "bytes": 2289, | |
| "sha256": "5ef1602339bc1ece0d1e8ecea289480453ac2b4c5e74bea2312954e33693dad4" | |
| }, | |
| "data/eval_gold/hard_dev.jsonl": { | |
| "bytes": 2236, | |
| "sha256": "b9917819f9ab6607ceafd75b16f8d0a7e74617c2bee9510e93e50e9ef9d66337" | |
| }, | |
| "data/eval_gold/hard_holdout.jsonl": { | |
| "bytes": 2707, | |
| "sha256": "0135cfb8ac3b87069daaf133c0f50292814fad83806989ff6eca02b18b1783ad" | |
| }, | |
| "data/eval_gold/holdout_known.jsonl": { | |
| "bytes": 1936, | |
| "sha256": "32cd493c2c6f90dc4358943c80b589b19f1edf736ed6047877ad39acee6be217" | |
| }, | |
| "runs/best/final_model/config.json": { | |
| "bytes": 1169, | |
| "sha256": "9aa565befa424a94bc44a4aecad4fea90435e43472ee0e7f0cfdd0dd20610d61" | |
| }, | |
| "runs/best/final_model/generation_config.json": { | |
| "bytes": 111, | |
| "sha256": "4c9855f124d793bd4ea49077401d04dd6e4df57331e6fc1ffaaf2ae2a24e329c" | |
| }, | |
| "runs/best/final_model/model.safetensors": { | |
| "bytes": 1123490064, | |
| "sha256": "b10af746fc9dc22ea2668cd1e3f71ea9b058990da038d241a5f4d2bf5c30ad0a" | |
| }, | |
| "runs/best/final_model/tokenizer.json": { | |
| "bytes": 572889, | |
| "sha256": "2a2da5a56343c4f8288603b2172c5759ab917c238db5bcc2f8ff65d41b70e34b" | |
| }, | |
| "runs/neural_only_98_g09_g17_interp_a75/config.json": { | |
| "bytes": 1221, | |
| "sha256": "1c3d6d2f6635a73039d7f85111cc1ec5e3e941870bfbe829111b2e8becf66225" | |
| }, | |
| "runs/neural_only_98_g09_g17_interp_a75/generation_config.json": { | |
| "bytes": 117, | |
| "sha256": "dac0e96bcffb9a37372e4f5d38d36a371d2cb682a1cbe24111a3f0446e897110" | |
| }, | |
| "runs/neural_only_98_g09_g17_interp_a75/model.safetensors": { | |
| "bytes": 1156258144, | |
| "sha256": "97cd23ebb00582d461c04c0e8ed3ebd140395b298aa80f98f73cdfb5aa67b332" | |
| }, | |
| "runs/neural_only_98_g09_g17_interp_a75/tokenizer.json": { | |
| "bytes": 572889, | |
| "sha256": "2a2da5a56343c4f8288603b2172c5759ab917c238db5bcc2f8ff65d41b70e34b" | |
| }, | |
| "src/build_acceptance_refresh.py": { | |
| "bytes": 10976, | |
| "sha256": "07715a9e4ded35d7ffb0861e4ada9a8536b108f04064b2af02403f8e115d0985" | |
| }, | |
| "src/check_acceptance_98.py": { | |
| "bytes": 9625, | |
| "sha256": "1e564fd2d2825434bbffdef710319011b629b6c600c1beb6de7facadab6fdbcd" | |
| }, | |
| "src/eval.py": { | |
| "bytes": 11784, | |
| "sha256": "49239107bde0fdb714f5ec2f605ad1d7c8cbc9ff2b19567b936a87e9bb8e28c4" | |
| }, | |
| "src/eval_composition.py": { | |
| "bytes": 5113, | |
| "sha256": "4411dec7ecff58e2ad318b841d90a7ff875b374dd9ee564917f6e181d1b10721" | |
| }, | |
| "src/eval_fast.py": { | |
| "bytes": 2942, | |
| "sha256": "53ccda5db9d528e256139e649ef595bd37297b572c94abf6e1d1ad66e77c9546" | |
| }, | |
| "src/eval_general_phrase.py": { | |
| "bytes": 8650, | |
| "sha256": "25309a244e85572f030435681cc3c5575aeae586278dde92fbcfe71251a01172" | |
| }, | |
| "src/eval_realworld_noise.py": { | |
| "bytes": 10024, | |
| "sha256": "f10db4ec7616e40c52fe4b7c4b36df49324fb5b8bf1a787d506efd24e78cce9d" | |
| }, | |
| "src/eval_suite_fast.py": { | |
| "bytes": 3830, | |
| "sha256": "50070719eb8a57fb72d3a3fbc05a2704066482d24bf8457795ffc08d899a96a4" | |
| }, | |
| "src/eval_typo_stress.py": { | |
| "bytes": 4509, | |
| "sha256": "a7daeb9c349da484fa12a209ea36c3936889c9d9cf0e2d147b656c6dcdce9264" | |
| }, | |
| "src/general_phrase.py": { | |
| "bytes": 25963, | |
| "sha256": "599a0275388134eea6dcc2d1f4f636167ad9f3f714f168f6230b47366281f653" | |
| }, | |
| "src/infer.py": { | |
| "bytes": 2609, | |
| "sha256": "d7e62521f3623068cebc4cfb3f37c0b4e4ef61412ce03d4c2b37ad7f838b00f5" | |
| }, | |
| "src/infer_candidates.py": { | |
| "bytes": 19485, | |
| "sha256": "5862faa1dde70f4f34bfa3fff757b5963457cf98828c28bcbe4634cc616eb510" | |
| }, | |
| "src/infer_fast.py": { | |
| "bytes": 112355, | |
| "sha256": "5b0a403f6c35cb15494070b6110699a82ea4ea9c47cef3115ca57627dcbc6a0f" | |
| }, | |
| "src/normalization.py": { | |
| "bytes": 484, | |
| "sha256": "446bcfd6586642ca8ed561a955f543f4555c0f73b0bea6ff758bcf220c8b28e5" | |
| }, | |
| "src/romaji_kana.py": { | |
| "bytes": 18210, | |
| "sha256": "196baeb7ee40e6e54e81e458919afa1bcc63cf6715d5fcd7569a6b0cb493096e" | |
| } | |
| } | |
| } | |
| } | |