Skip to content

Instantly share code, notes, and snippets.

@amrutadotorg
Last active December 8, 2025 10:20
Show Gist options
  • Select an option

  • Save amrutadotorg/c5b274f0210b6be0d17b5a93677b13a6 to your computer and use it in GitHub Desktop.

Select an option

Save amrutadotorg/c5b274f0210b6be0d17b5a93677b13a6 to your computer and use it in GitHub Desktop.
readbeyond/aeneas with Debian Trixie - Currently Python 3.13
# Use Debian Trixie - Currently Python 3.13
FROM debian:trixie-slim
ENV DEBIAN_FRONTEND=noninteractive
# 1. Fix Shell Encoding Warning
# This fixes the [WARN] you saw in diagnostics
ENV PYTHONIOENCODING=UTF-8
ENV LANG=C.UTF-8
ENV LC_ALL=C.UTF-8
# 2. Install System Dependencies
# python3-dev is REQUIRED for headers
# libespeak-ng-dev is REQUIRED for linking
RUN apt-get update && apt-get install -y \
python3 \
python3-venv \
python3-pip \
python3-dev \
build-essential \
git \
ffmpeg \
espeak-ng \
libespeak-ng-dev \
festival \
festival-dev \
&& rm -rf /var/lib/apt/lists/*
# 3. Setup Virtual Environment
ENV VIRTUAL_ENV=/opt/venv
RUN python3 -m venv $VIRTUAL_ENV
ENV PATH="$VIRTUAL_ENV/bin:$PATH"
# 4. Upgrade build tools
RUN pip install --no-cache-dir --upgrade pip setuptools wheel packaging numpy
WORKDIR /tmp/aeneas_build
# 5. Clone the Python 3.12+ compatible fork
RUN git clone -b py312_support https://github.com/avinashvarna/aeneas.git .
# 6. FIX: Symlink Headers for Espeak
RUN ln -s /usr/include/espeak-ng /usr/include/espeak
# 7. FIX: Patch setup.py for Linker (espeak -> espeak-ng)
# This was the magic fix for "ld: cannot find -lespeak"
RUN sed -i 's/"espeak"/"espeak-ng"/g' setup.py
# 8. Install Aeneas
# (We don't force Festival here because CEW/Espeak is working and sufficient)
RUN pip install .
# 9. Cleanup
WORKDIR /app
RUN rm -rf /tmp/aeneas_build
# 10. Verify
RUN python -m aeneas.diagnostics
CMD ["/bin/bash"]
docker build -t aeneas-final .
docker run --rm \
-e PYTHONIOENCODING=UTF-8 \
-v $(pwd):/data \
aeneas-final \
python -m aeneas.tools.execute_task \
/data/audio.wav \
/data/text.txt \
"task_language=eng|is_text_type=plain|os_task_file_format=vtt" \
/data/alignment.vtt
or tweaked:
docker run --rm \
-e PYTHONIOENCODING=UTF-8 \
-v $(pwd):/data \
aeneas-final \
python -m aeneas.tools.execute_task \
/data/audio.wav \
/data/text.txt \
"task_language=eng|is_text_type=plain|os_task_file_format=vtt|os_task_head_tail_format=hidden|task_adjust_boundary_algorithm=percent" \
/data/alignment.vtt
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment