作成日: 2024-08-11
更新日: 2024-07-30

macOSではdockerのespeak-ngは動作しない

espeak-ngをportでインストール

dockerでespeak-ngを使う

sszuev/ubuntu-jammy-openjdk-17-espeak-ng

sszuev/ubuntu-jammy-openjdk-17-espeak-ngというdocker imageが公開されているので、こちらをpullして試してみます。

docker pull sszuev/ubuntu-jammy-openjdk-17-espeak-ng
Using default tag: latest
latest: Pulling from sszuev/ubuntu-jammy-openjdk-17-espeak-ng
Digest: sha256:4ecfd2fe2689ea9392665594b5225137718bc6f8f2153d2c5ffb76fd0095089e
Status: Image is up to date for sszuev/ubuntu-jammy-openjdk-17-espeak-ng:latest
docker.io/sszuev/ubuntu-jammy-openjdk-17-espeak-ng:latest

What's next:
    View a summary of image vulnerabilities and recommendations → docker scout quickview sszuev/ubuntu-jammy-openjdk-17-espeak-ng
docker run -it  sszuev/ubuntu-jammy-openjdk-17-espeak-ng espeak-ng -w test.wav 'this is a pen'
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested

Warningが出ていますが、とりあえず動かしてみましょう。

/usr/bin/espeak-ng: /usr/bin/espeak-ng: cannot execute binary file
docker run --platform linux/x86_64 -it  sszuev/ubuntu-jammy-openjdk-17-espeak-ng espeak-ng -w test.wav 'this is a pen'
/usr/bin/espeak-ng: /usr/bin/espeak-ng: cannot execute binary file

containerに入って実行してみましょう。

root@09f830188c86:/# espeak-ng 'This is a pen'
ALSA lib confmisc.c:855:(parse_card) cannot find card '0'
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_card_inum returned error: No such file or directory
ALSA lib confmisc.c:422:(snd_func_concat) error evaluating strings
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1334:(snd_func_refer) error evaluating name
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5701:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM default
error: No such file or directory
ALSA lib confmisc.c:855:(parse_card) cannot find card '0'
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_card_inum returned error: No such file or directory
ALSA lib confmisc.c:422:(snd_func_concat) error evaluating strings
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1334:(snd_func_refer) error evaluating name
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5701:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM default
error: No such file or directory
root@09f830188c86:/#

ホスト側のサウンドカードを鳴らそうとして、失敗しているように見えます。

(追記) その後、以下の情報を見つけました。

https://stackoverflow.com/questions/42013102/how-to-use-alsa-sound-and-or-snd-pcm-open-in-docker

lukeum/espeak-ng

lukeum/espeak-ngというdocker imageが公開されているので、こちらをpullして試してみます。

docker pull lukeum/espeak-ng
Using default tag: latest
latest: Pulling from lukeum/espeak-ng
Digest: sha256:b78ccbe9da2f1cdc66dabf34e0643681e75976f477640fe0ec0513fa5e81b8e9
Status: Image is up to date for lukeum/espeak-ng:latest
docker.io/lukeum/espeak-ng:latest

What's next:
    View a summary of image vulnerabilities and recommendations → docker scout quickview lukeum/espeak-ng

同じくWarningが出ていますが、とりあえず動かしてみましょう。 i

docker run -it lukeum/espeak-ng espeak-ng -w test.wav 'this is a pen'
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
docker run --platform linux/x86_64 -it lukeum/espeak-ng espeak-ng -w test.wav 'this is a pen'

エラーも出ずに終了しましたが、肝心のtest.wavが見つかりません。

そこで、containerに入って実行してみます。

root@09f830188c86:/# espeak-ng 'This is a pen'
ALSA lib confmisc.c:855:(parse_card) cannot find card '0'
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_card_inum returned error: No such file or directory
ALSA lib confmisc.c:422:(snd_func_concat) error evaluating strings
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1334:(snd_func_refer) error evaluating name
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5701:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM default
error: No such file or directory
ALSA lib confmisc.c:855:(parse_card) cannot find card '0'
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_card_inum returned error: No such file or directory
ALSA lib confmisc.c:422:(snd_func_concat) error evaluating strings
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1334:(snd_func_refer) error evaluating name
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5701:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM default
error: No such file or directory
root@09f830188c86:/#

先ほどと同様に、ホスト側のサウンドカードを鳴らそうとして、失敗しているように見えます。

今日はここまで。