@@ -30,34 +30,33 @@ RUN apt-get update \
3030 libespeak-ng1 \
3131 ca-certificates \
3232 curl \
33+ libc-bin \
34+ passwd \
35+ && rm -rf /var/lib/apt/lists/* \
3336 && mkdir -p /usr/local/share/piper-voices \
34- && curl -fsSL "https://github.com/rhasspy/piper/releases/download/${PIPER_VERSION}/piper_amd64.tar.gz" -o /tmp/piper.tar.gz \
37+ && curl -fsSL --retry 3 --retry-delay 5 "https://github.com/rhasspy/piper/releases/download/${PIPER_VERSION}/piper_amd64.tar.gz" -o /tmp/piper.tar.gz \
3538 && tar -xzf /tmp/piper.tar.gz -C /tmp \
3639 && mv /tmp/piper/piper /usr/local/bin/piper \
3740 && chmod +x /usr/local/bin/piper \
3841 && find /tmp/piper -name '*.so*' -exec cp {} /usr/local/lib/ \; \
3942 && if [ -d /tmp/piper/espeak-ng-data ]; then cp -R /tmp/piper/espeak-ng-data /usr/share/; else ln -sf /usr/lib/x86_64-linux-gnu/espeak-ng-data /usr/share/espeak-ng-data; fi \
4043 && ldconfig \
4144 && rm -rf /tmp/piper /tmp/piper.tar.gz \
42- && curl -fsSL "https://huggingface.co/rhasspy/piper-voices/resolve/main/en/en_US/norman/medium/en_US-norman-medium.onnx" -o /usr/local/share/piper-voices/en_US-norman-medium.onnx \
43- && curl -fsSL "https://huggingface.co/rhasspy/piper-voices/resolve/main/en/en_US/norman/medium/en_US-norman-medium.onnx.json" -o /usr/local/share/piper-voices/en_US-norman-medium.onnx.json \
44- && curl -fsSL "https://huggingface.co/rhasspy/piper-voices/resolve/main/es/es_MX/claude/high/es_MX-claude-high.onnx" -o /usr/local/share/piper-voices/es_MX-claude-high.onnx \
45- && curl -fsSL "https://huggingface.co/rhasspy/piper-voices/resolve/main/es/es_MX/claude/high/es_MX-claude-high.onnx.json" -o /usr/local/share/piper-voices/es_MX-claude-high.onnx.json \
46- && curl -fsSL "https://huggingface.co/rhasspy/piper-voices/resolve/main/sv/sv_SE/nst/medium/sv_SE-nst-medium.onnx" -o /usr/local/share/piper-voices/sv_SE-nst-medium.onnx \
47- && curl -fsSL "https://huggingface.co/rhasspy/piper-voices/resolve/main/sv/sv_SE/nst/medium/sv_SE-nst-medium.onnx.json" -o /usr/local/share/piper-voices/sv_SE-nst-medium.onnx.json \
48- && curl -fsSL "https://huggingface.co/rhasspy/piper-voices/resolve/main/de/de_DE/thorsten/medium/de_DE-thorsten-medium.onnx" -o /usr/local/share/piper-voices/de_DE-thorsten-medium.onnx \
49- && curl -fsSL "https://huggingface.co/rhasspy/piper-voices/resolve/main/de/de_DE/thorsten/medium/de_DE-thorsten-medium.onnx.json" -o /usr/local/share/piper-voices/de_DE-thorsten-medium.onnx.json \
50- && curl -fsSL "https://huggingface.co/rhasspy/piper-voices/resolve/main/fr/fr_FR/siwis/medium/fr_FR-siwis-medium.onnx" -o /usr/local/share/piper-voices/fr_FR-siwis-medium.onnx \
51- && curl -fsSL "https://huggingface.co/rhasspy/piper-voices/resolve/main/fr/fr_FR/siwis/medium/fr_FR-siwis-medium.onnx.json" -o /usr/local/share/piper-voices/fr_FR-siwis-medium.onnx.json \
52- && curl -fsSL "https://huggingface.co/rhasspy/piper-voices/resolve/main/it/it_IT/paola/medium/it_IT-paola-medium.onnx" -o /usr/local/share/piper-voices/it_IT-paola-medium.onnx \
53- && curl -fsSL "https://huggingface.co/rhasspy/piper-voices/resolve/main/it/it_IT/paola/medium/it_IT-paola-medium.onnx.json" -o /usr/local/share/piper-voices/it_IT-paola-medium.onnx.json \
54- && curl -fsSL "https://huggingface.co/rhasspy/piper-voices/resolve/main/pl/pl_PL/gosia/medium/pl_PL-gosia-medium.onnx" -o /usr/local/share/piper-voices/pl_PL-gosia-medium.onnx \
55- && curl -fsSL "https://huggingface.co/rhasspy/piper-voices/resolve/main/pl/pl_PL/gosia/medium/pl_PL-gosia-medium.onnx.json" -o /usr/local/share/piper-voices/pl_PL-gosia-medium.onnx.json \
56- && curl -fsSL "https://huggingface.co/rhasspy/piper-voices/resolve/main/uk/uk_UA/ukrainian_tts/medium/uk_UA-ukrainian_tts-medium.onnx" -o /usr/local/share/piper-voices/uk_UA-ukrainian_tts-medium.onnx \
57- && curl -fsSL "https://huggingface.co/rhasspy/piper-voices/resolve/main/uk/uk_UA/ukrainian_tts/medium/uk_UA-ukrainian_tts-medium.onnx.json" -o /usr/local/share/piper-voices/uk_UA-ukrainian_tts-medium.onnx.json \
58- && curl -fsSL "https://huggingface.co/rhasspy/piper-voices/resolve/main/ar/ar_JO/kareem/medium/ar_JO-kareem-medium.onnx" -o /usr/local/share/piper-voices/ar_JO-kareem-medium.onnx \
59- && curl -fsSL "https://huggingface.co/rhasspy/piper-voices/resolve/main/ar/ar_JO/kareem/medium/ar_JO-kareem-medium.onnx.json" -o /usr/local/share/piper-voices/ar_JO-kareem-medium.onnx.json \
60- && rm -rf /var/lib/apt/lists/* \
45+ && for f in \
46+ "en/en_US/norman/medium/en_US-norman-medium" \
47+ "es/es_MX/claude/high/es_MX-claude-high" \
48+ "sv/sv_SE/nst/medium/sv_SE-nst-medium" \
49+ "de/de_DE/thorsten/medium/de_DE-thorsten-medium" \
50+ "fr/fr_FR/siwis/medium/fr_FR-siwis-medium" \
51+ "it/it_IT/paola/medium/it_IT-paola-medium" \
52+ "pl/pl_PL/gosia/medium/pl_PL-gosia-medium" \
53+ "uk/uk_UA/ukrainian_tts/medium/uk_UA-ukrainian_tts-medium" \
54+ "ar/ar_JO/kareem/medium/ar_JO-kareem-medium" \
55+ ; do \
56+ name=$(basename "$f" ); \
57+ curl -fsSL --retry 3 --retry-delay 5 "https://huggingface.co/rhasspy/piper-voices/resolve/main/${f}.onnx" -o "/usr/local/share/piper-voices/${name}.onnx" ; \
58+ curl -fsSL --retry 3 --retry-delay 5 "https://huggingface.co/rhasspy/piper-voices/resolve/main/${f}.onnx.json" -o "/usr/local/share/piper-voices/${name}.onnx.json" ; \
59+ done \
6160 && groupadd --gid 10001 appgroup \
6261 && useradd --uid 10001 --gid appgroup --create-home --shell /usr/sbin/nologin appuser
6362
0 commit comments