Repository navigation
v0.1.2
tifa.cpp v0.1.2
这一版把 G2P / PFML 抽成可以脱离 ggml 单独链接的库,并补全了 PFML 1.0 的完整发音树。
新增
- 公开 G2P API(
include/tifa_ggml/g2p.h):文本/PFML 转词(convert/
convert_pfml)、写回 PFML(to_pfml,带 round-trip 保证)、纯语法校验
(validate_pfml,不需要模型)、候选读音(candidates)、音素校验
(resolve_phoneme)。 - ggml-free 构建:
-DTIFA_GGML_BUILD_MODEL=OFF只构建tifa_ggml_g2p,
完全不拉取 ggml,适合"对齐器之前"的标注编辑器(如
MaxLabel):set(TIFA_GGML_BUILD_MODEL OFF) add_subdirectory(tifa.cpp) target_link_libraries(your_editor PRIVATE tifa_ggml::g2p)
- 完整 PFML 1.0 发音树:
<reading>/<path>/<group>嵌套,<phoneme>
的language/symbol属性,以及省略容器只写音素的片段。
修正
- 标签填充只在属性缺失时生效:
text=""/script=""是作者显式给的空值,
往返后保持不变(此前会被音素"填"上,破坏 round-trip 保证)。 <word><phoneme>a</phoneme><phoneme>b</phoneme></word>此前解析成空序列直接
报错,现在正常。<phoneme language="zh">ong</phoneme>现在解析为zh/ong(此前忽略 language)。<word text="重" ...>现在认text属性(此前忽略,用音素拼接当词形)。
兼容性
<word phonemes=...>、裸 <phoneme> 串、<scope> 这三种经典写法行为完全不变
(同一批输入对比,输出的 TextGrid 逐字节相同)。上面几条"修正"只影响此前报错或
标错的输入。
下载
与 v0.1.1 相同的布局:三平台 GUI 自包含包(tifa-label-<平台>)+ 三平台
CLI 包(tifa-cli-<平台>-{full,q4})+ BreathLab 模型源文件。用法见包内
USAGE.md(中英双语)。命令行务必带 -l(如 -l zh)。
CUDA 包由独立的 cuda workflow 编译,完成后自动补挂到本 release
(tifa-cuda-<平台>-{full,q4}.tar.gz)。
English
G2P and PFML are now a library you can link without ggml, and the PFML 1.0
pronunciation tree is complete.
New — a public API in include/tifa_ggml/g2p.h (convert, convert_pfml,
to_pfml with a round-trip guarantee, model-free validate_pfml, candidates,
resolve_phoneme); a ggml-free build (-DTIFA_GGML_BUILD_MODEL=OFF) that
fetches no ggml at all, for editors that sit before the aligner; and full
<reading>/<path>/<group> trees with language/symbol phoneme
attributes.
Fixed — label filling now applies only when an attribute is absent, so an
explicit text=""/script="" survives a round trip; <word> with <phoneme>
children no longer parses to an empty sequence; phoneme-level language and the
word-level text attribute are honoured.
Compatible — the three classic forms (<word phonemes=...>, bare
<phoneme> runs, <scope>) are byte-for-byte unchanged; the fixes only affect
inputs that previously errored or were mislabelled.
Same packaging as v0.1.1. Pass -l (e.g. -l zh) on the command line. CUDA
packages are appended to this release when the separate cuda build finishes.