Howto for TTS with Emacs-Reveal

Jens Lechtenbörger

View source

Press “play” once in audio-controls below (or type “a”) to start the presentation, which advances automatically afterwards.

1. General thoughts

  • All of this builds on emacs-reveal (Lechtenbörger 2019a, 2019b)
    • Check out its howto first
  • Text-To-Speech (TTS) should read notes (#+begin_notes ... #+end_notes)
    • Controlled by option reveal-with-tts
      • Use customization for available speakers
    • Audio is played with the audio slideshow plugin for Reveal.js
  • If slides with audio advance automatically, this is a video mode
    • Then, notes are required for every slides
    • Reveal.js “fragments” (animations) are still possible

1.1. Technical Idea

  • Implement TTS as two-stage process
    • First, extract notes from presentation
      • Generate a text file for each note
        • Its name is a hash value of the contents
      • Generate one index file that stores names (and other information) for all text files
      • This happens during export/publication of Org files into reveal.js presentations
    • Second, run TTS software on index file to generate audio
      • Implemented in Docker image emacs-reveal/tts
      • Generated audio shares hash value of its text as part of its name, enabling caching of unchanged audio
  • Use audio slideshow plugin to play audio

1.2. Docker image emacs-reveal/tts

2. Slide with notes and fragments

Notes on this slide clarify some aspects of the text generated by org-re-reveal as basis for TTS.

Besides, for demonstration purposes, this slide contains fragments with separate notes:

  • First appearing point, with notes

  • Second appearing point

3. Slides with notes, no fragments

  • First point
    • Notes only for overall slide
  • Second point

3.1. Slide on second level of nesting

  • Foo
  • Bar

3.1.1. Third level of nesting

3.1.2. Third level of nesting, again

3.2. Another test case

4. The End

Person taking steps to top

The road ahead …

Figure” under CC0 1.0; converted from Pixabay

4.1. Final slide (silent)

  • Here, the notes specify the names for the text and audio file as another-slide-audio
    • Thus, the audio plugin will not play this properly with the current configuration

4.2. Bibliography

Lechtenbörger, Jens. 2019a. “Emacs-reveal: A software bundle to create OER presentations.” Journal of Open Source Education (Jose) 2 (18).
———. 2019b. “Simplifying license attribution for OER with emacs-reveal.” In 17. Fachtagung Bildungstechnologien (DELFI 2019), edited by Niels Pinkwart and Johannes Konert, 205–16. Bonn: Gesellschaft für Informatik e.V.

License Information

Except where otherwise noted, the work “Howto for TTS with Emacs-Reveal”, © 2023-2024 Jens Lechtenbörger, is published under the Creative Commons license CC BY-SA 4.0.

No warranties are given. The license may not give you all of the permissions necessary for your intended use.

In particular, trademark rights are not licensed under this license. Thus, rights concerning third party logos (e.g., on the title slide) and other (trade-) marks (e.g., “Creative Commons” itself) remain with their respective holders.