accentik / inference.py
TeraSpace's picture
Update Accentik to audio v3 with opt-in ё placement
daad4bf verified
Raw History Blame Contribute Delete
1.43 kB
"""Run Accentik from Hugging Face or a downloaded model folder."""
import argparse
from pathlib import Path
import torch
from transformers import AutoModel
def main():
parser = argparse.ArgumentParser(description=__doc__)
parser.add_argument("--model", default="TeraSpace/accentik")
parser.add_argument("--revision", help="Optional pinned Hub commit")
parser.add_argument("--device", default="cpu")
parser.add_argument("--threads", type=int, default=2)
parser.add_argument("--restore-yo", action="store_true", help="Enable experimental е → ё placement")
parser.add_argument("--yo-threshold", type=float, help="Override the validation-selected ё threshold")
inputs = parser.add_mutually_exclusive_group(required=True)
inputs.add_argument("--text")
inputs.add_argument("--input", type=Path)
parser.add_argument("--output", type=Path)
args = parser.parse_args()
torch.set_num_threads(args.threads)
model = AutoModel.from_pretrained(
args.model, revision=args.revision, trust_remote_code=True,
).to(args.device).eval()
text = args.text if args.text is not None else args.input.read_text(encoding="utf-8")
result = model.accentuate(text, restore_yo=args.restore_yo, yo_threshold=args.yo_threshold)
if args.output:
args.output.write_text(result, encoding="utf-8")
else:
print(result)
if __name__ == "__main__":
main()