get_text(separator=' ') collapsed all paragraphs into one line. Now inserts \n\n at block-level element boundaries (p, h1-h6, div, li, br, tr) before extraction, then normalises whitespace. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- nodes/generator.py: swap torchaudio.save for soundfile.write to avoid torchcodec/FFmpeg dependency crash in environments without FFmpeg shared libs - nodes/epub_loader.py: new OmniVoiceEpubLoader node for loading EPUB chapters - tests/test_epub_loader.py: 8 tests for the EPUB loader - install.py: add beautifulsoup4 to runtime deps - __init__.py, nodes/__init__.py: register OmniVoiceEpubLoader Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>