Alpine 上的 Mozilla DeepSpeech

Mozilla DeepSpeech on Alpine

我正在尝试在我的 Alpine 容器中安装 DeepSpeech,虽然我似乎满足了文档中的所有要求,但我得到 'not compatible with this Python error'。

这是我 运行 pip install --verbose deepspeech

时的日志
Step 10/13 : RUN uname -a
 ---> Running in dd5b145a0055
Linux dd5b145a0055 4.9.125-linuxkit #1 SMP Fri Sep 7 08:20:28 UTC 2018 x86_64 Linux
Removing intermediate container dd5b145a0055
 ---> e2324a616bc9
Step 11/13 : RUN python3 --version
 ---> Running in 127dd70a437e
Python 3.6.5
Removing intermediate container 127dd70a437e
 ---> 5c479002edcc
Step 12/13 : RUN pip3 --version
 ---> Running in 644ef37e87b1
pip 19.1.1 from /usr/local/lib/python3.6/site-packages/pip (python 3.6)
Removing intermediate container 644ef37e87b1
 ---> 4913080991d8
Step 13/13 : RUN pip3 install --verbose deepspeech
 ---> Running in a1e82420debc
Created temporary directory: /tmp/pip-ephem-wheel-cache-6thq7neq
Created temporary directory: /tmp/pip-req-tracker-89xh1p6c
Created requirements tracker '/tmp/pip-req-tracker-89xh1p6c'
Created temporary directory: /tmp/pip-install-rxt4ntrq
Collecting deepspeech
  1 location(s) to search for versions of deepspeech:
  * https://pypi.org/simple/deepspeech/
  Getting page https://pypi.org/simple/deepspeech/
  Looking up "https://pypi.org/simple/deepspeech/" in the cache
  Request header has "max_age" as 0, cache bypassed
  Starting new HTTPS connection (1): pypi.org:443
  https://pypi.org:443 "GET /simple/deepspeech/ HTTP/1.1" 200 55772
  Updating cache with response from "https://pypi.org/simple/deepspeech/"
  Caching due to etag
  Analyzing links from page https://pypi.org/simple/deepspeech/
    Skipping link https://files.pythonhosted.org/packages/4f/71/3fbcf9309730496777375a51d441d33ec9c6a036dd0f9da5c09848625801/deepspeech-0.0.2-cp27-cp27m-macosx_10_12_x86_64.whl#sha256=b186405784bb989759a241d2f75e2aa88b4f88dd6377393620e45865cfcc0af8 (from https://pypi.org/simple/deepspeech/); it is not compatible with this Python
…

[91m  ERROR: Could not find a version that satisfies the requirement deepspeech (from versions: none)
[0mCleaning up...
Removed build tracker '/tmp/pip-req-tracker-89xh1p6c'
[91mERROR: No matching distribution found for deepspeech

我认为这是 Windows 环境中的一个常见问题,但这是一个 Alpine 基础映像。我错过了什么?

deepspeech 仅在 64 位版本中可用。您的 python 可能是 32 位的。用

验证
python -c "import struct; print(struct.calcsize('P') * 8)"

如果显示 32 位,则需要重新安装 64 位 Python。

来自https://github.com/mozilla/DeepSpeech/tree/v0.5.1#installing-bindings-from-source

If pre-built binaries aren't available for your system, you'll need to install them from scratch. Follow these native_client installation instructions.

Alpine Linux 使用 musl libc 而不是 glibc。 "manylinux" 可用的 DeepSpeech Python 轮子在 Alpine 上不起作用。您需要通过源文档进行编译。但是,仍然可能存在从源代码编译的其他 musl libc 不兼容问题。

如果 Alpine 不是硬性要求,您可能会使用另一个支持 pre-compiled 轮子的 Linux 基础映像获得更好的安装体验。