1 个不稳定版本
0.1.4 | 2024年3月28日 |
---|
#1257 in 文本处理
165KB
3K SLoC
SSML解析器
这个crate用于处理解析SSML(语音合成标记语言)。其主要目标是便于开发TTS(文本到语音)和利用合成音频的应用。对于编写XML的功能有限,并且在易用性方面有待改进。
目前它包含SSML 1.1规范的完整实现,包括自定义标签。自定义标签内的文本默认为可合成的,但在提取文本时可以更改此行为。
以下是一个简单的示例
use ssml_parser::parse_ssml;
let ssml = r#"<?xml version="1.0"?>
<speak version="1.1"
xmlns="http://www.w3.org/2001/10/synthesis"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3.org/2001/10/synthesis
http://www.w3.org/TR/speech-synthesis11/synthesis.xsd"
xml:lang="en-US">
<p>
<s>You have 4 new messages.</s>
<s>The first is from Stephanie Williams and arrived at <break/> 3:45pm.
</s>
<s>
The subject is <prosody rate="20%">ski trip</prosody>
</s>
</p>
</speak>"#;
let result = parse_ssml(ssml).unwrap();
// We can now see the text with tags removed:
println!("{}", result.get_text());
// And can loop over all the SSML tags and get their character indexes:
for tag in result.tags() {
println!("{:?}", tag);
}
依赖项
~8.5MB
~148K SLoC