Skip to content

用 Docker 进行安装的方法 #90

Description

@Jenlybein

首先进行整个项目的克隆

git clone https://github.com/hgneng/ekho.git

然后,去对应下载页下载需要的语音文件

https://sourceforge.net/projects/e-guidedog/files/Ekho-Voice-Data/0.2/

比如我需要台山话,按以下步骤配置:

然后修改 Dockerfile 配置,用本地项目启动:

# Local Dockerfile for Ekho - 使用本地源码构建
FROM jess/pulseaudio AS base

USER root

RUN apt-get update && apt-get install --no-install-recommends -y \
    libc6 \
    libespeak-ng1 \
    libpulse0 \
    libsndfile1 \
    && rm -rf /var/lib/apt/lists/*

USER pulseaudio

FROM base AS builder

USER root

RUN apt-get update && apt-get install --no-install-recommends -y \
    autoconf \
    automake \
    libtool \
    g++ \
    gcc \
    libc6-dev \
    libespeak-ng-dev \
    libpulse-dev \
    libsndfile1-dev \
    make \
    libutfcpp-dev \
    && rm -rf /var/lib/apt/lists/*

WORKDIR /home/pulseaudio/ekho

# 复制本地源码
COPY . /home/pulseaudio/ekho/

# 生成 configure 脚本
RUN dos2unix autogen.sh || (sed -i 's/\r$//' autogen.sh)
RUN ./autogen.sh

# 配置和编译
RUN ./configure --disable-dependency-tracking
RUN make

# 安装二进制文件
RUN mkdir -p /usr/local/bin /usr/local/include /usr/local/share
RUN cp ekho /usr/local/bin/
RUN cp src/*.h /usr/local/include/
RUN cp -R ekho-data /usr/local/share/

USER pulseaudio

FROM base as runner

USER root
COPY --from=builder /usr/local/ /usr/local/

USER pulseaudio
ENTRYPOINT [ "ekho" ]
CMD [ "--help" ]

最后,执行命令(我的执行环境为 windows cmd):

docker run --rm -v "./output:/output" --user root --entrypoint sh ekho-local:latest -c "mkdir -p /output && ekho -v Toisanese \"你好犀利哇\" -o /output/toisanese_hello.wav && ls -lh /output/"

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions