API Reference
This page documents the public API of the SSMD library.
Core Classes
Document
The primary class for creating and managing SSMD/SSML documents.
.. autoclass:: ssmd.Document :members: :undoc-members: :show-inheritance:
Construction Methods:
.. automethod:: ssmd.Document.init
.. automethod:: ssmd.Document.from_ssml
.. automethod:: ssmd.Document.from_text
Building Methods:
.. automethod:: ssmd.Document.add
.. automethod:: ssmd.Document.add_sentence
.. automethod:: ssmd.Document.add_paragraph
Export Methods:
.. automethod:: ssmd.Document.to_ssml
.. automethod:: ssmd.Document.to_ssmd
.. automethod:: ssmd.Document.to_text
Properties:
.. autoproperty:: ssmd.Document.ssmd
.. autoproperty:: ssmd.Document.config
.. autoproperty:: ssmd.Document.capabilities
.. autoproperty:: ssmd.Document.source
.. autoproperty:: ssmd.Document.voice_bindings
.. autoproperty:: ssmd.Document.pause_defaults
Document parses YAML front matter by default. doc.ssmd is the body-only SSMD;
doc.source and doc.to_ssmd(include_header=True) include a deterministic header when
one was present. Pass parse_yaml_header=False when literal leading front matter syntax
is required.
Sentence/list APIs such as sentences(), split(), indexing, and len() operate on
unversioned legacy and SSMD 0.8 documents. SSMD 0.9 documents, including those created
by Document.from_ssml(), reject sentence-level APIs; use structural parsing and
explicit sentence spans instead.
Iteration:
.. automethod:: ssmd.Document.sentences
.. automethod:: ssmd.Document.iter
.. automethod:: ssmd.Document.len
List-like Interface:
.. automethod:: ssmd.Document.getitem
.. automethod:: ssmd.Document.setitem
.. automethod:: ssmd.Document.delitem
.. automethod:: ssmd.Document.iadd
Editing Methods:
.. automethod:: ssmd.Document.insert
.. automethod:: ssmd.Document.remove
.. automethod:: ssmd.Document.clear
.. automethod:: ssmd.Document.replace
Advanced Methods:
.. automethod:: ssmd.Document.merge
.. automethod:: ssmd.Document.split
.. automethod:: ssmd.Document.get_fragment
TTSCapabilities
Define TTS engine capabilities for automatic feature filtering.
.. autoclass:: ssmd.TTSCapabilities :members: :undoc-members: :show-inheritance:
SSMLParser
Parse SSML and convert to SSMD format.
.. autoclass:: ssmd.SSMLParser :members: :undoc-members: :show-inheritance:
Convenience Functions
Parser Functions
Extract structured data from SSMD text.
parse_structure() is the preferred structural API for strict SSMD 0.9. It returns
clean text, annotations, structural events, front matter, and diagnostics without
sentence detection. Use parse_spans() when only clean text and annotation spans are
needed. Both preserve the offset-based metadata needed by downstream TTS normalization
and sentence segmentation.
parse_paragraphs(), parse_sentences(), parse_segments(), and
parse_voice_blocks() are sentence-/segment-oriented compatibility APIs for unversioned
legacy input and SSMD 0.8; do not use them with strict 0.9 documents. See
Parser API for dialect guidance.
.. autofunction:: ssmd.parse_paragraphs
.. autofunction:: ssmd.parse_sentences
.. autofunction:: ssmd.parse_segments
.. autofunction:: ssmd.parse_voice_blocks
.. autofunction:: ssmd.parse_spans
.. autofunction:: ssmd.parse_structure
.. autofunction:: ssmd.iter_sentences_spans
.. autofunction:: ssmd.lint
Conversion Functions
Convert between SSMD, SSML, and plain text.
to_ssml
Convert SSMD markup to SSML.
.. autofunction:: ssmd.to_ssml
to_text
Convert SSMD to plain text (strips all markup).
.. autofunction:: ssmd.to_text
from_ssml
Convert SSML back to SSMD format.
The default result is a complete SSMD 0.9 document. Pass complete_document=False when
a body fragment is required.
.. autofunction:: ssmd.from_ssml
SentenceSpanLike
Protocol for external sentence boundaries supplied to Document.to_ssml() or
ssmd.to_ssml(). Implementations expose zero-based, half-open char_start and
char_end offsets in the structural clean-text coordinate space.
Parser Data Structures
Sentence (alias: SSMDSentence)
Represents a sentence with voice context and segments.
.. autoclass:: ssmd.Sentence :members: :undoc-members: :show-inheritance:
Segment (alias: SSMDSegment)
Represents a text segment with metadata.
.. autoclass:: ssmd.Segment :members: :undoc-members: :show-inheritance:
VoiceAttrs
Voice configuration attributes.
.. autoclass:: ssmd.VoiceAttrs :members: :undoc-members: :show-inheritance:
ProsodyAttrs
Prosody (volume, rate, pitch) attributes.
.. autoclass:: ssmd.ProsodyAttrs :members: :undoc-members: :show-inheritance:
BreakAttrs
Pause/break attributes.
.. autoclass:: ssmd.BreakAttrs :members: :undoc-members: :show-inheritance:
SayAsAttrs
Say-as interpretation attributes.
.. autoclass:: ssmd.SayAsAttrs :members: :undoc-members: :show-inheritance:
PhonemeAttrs
Phonetic pronunciation attributes.
.. autoclass:: ssmd.PhonemeAttrs :members: :undoc-members: :show-inheritance:
AudioAttrs
Audio file attributes.
.. autoclass:: ssmd.AudioAttrs :members: :undoc-members: :show-inheritance:
Structure Data Types
StructuralEvent
A zero-width break, mark, or paragraph event in clean-text boundary coordinates.
.. autoclass:: ssmd.StructuralEvent :members:
ParseStructureResult
The sentence-neutral result returned by parse_structure().
.. autoclass:: ssmd.ParseStructureResult :members:
Capability Presets
Pre-configured capability sets for common TTS engines.
.. autodata:: ssmd.MINIMAL_CAPABILITIES
.. autodata:: ssmd.PYTTSX3_CAPABILITIES
.. autodata:: ssmd.ESPEAK_CAPABILITIES
.. autodata:: ssmd.GOOGLE_TTS_CAPABILITIES
.. autodata:: ssmd.AZURE_TTS_CAPABILITIES
.. autodata:: ssmd.AMAZON_POLLY_CAPABILITIES
.. autodata:: ssmd.FULL_CAPABILITIES
.. autofunction:: ssmd.get_preset
Internal Modules
SSML Parser
Internal SSML to SSMD parsing engine.
.. automodule:: ssmd.ssml_parser :members: :undoc-members: :show-inheritance:
Document Module
Document container implementation.
.. automodule:: ssmd.document :members: :undoc-members: :show-inheritance:
Parser Module
SSMD parsing functions for extracting structured data.
.. automodule:: ssmd.parser :members: :undoc-members: :show-inheritance:
Segment Module
Segment class for representing text portions with attributes.
.. automodule:: ssmd.segment :members: :undoc-members: :show-inheritance:
Sentence Module
Sentence class for representing collections of segments.
.. automodule:: ssmd.sentence :members: :undoc-members: :show-inheritance:
Types Module
Data types used throughout the SSMD library.
.. automodule:: ssmd.types :members: :undoc-members: :show-inheritance:
Utilities
Helper functions for SSML processing.
.. automodule:: ssmd.utils :members: :undoc-members: :show-inheritance: