Como instalar e executar o Tacotron2 no Ubuntu WSL?

Aug 17 2020

Estou executando o Ubuntu 20.04 no WSL Windows 10 Pro 2004 (19041.388) e estou desejando muito executar o Tacotron2 e testar a funcionalidade. Eu instalei o Tacotron2 do git via linha de comando, mas não tenho certeza se ele foi construído com sucesso. Sou um iniciante no Linux e no Docker, e as instruções de instalação do Tacotron2 vinculado acima parecem confusas.

Então, aqui é onde estou:

  1. Docker instalado, confirmado instalado e funcionando, tudo bem.
  2. Baixado Tacotron2 via git cmd-line - o sucesso.
  3. Executado este comando: sudo docker build -t tacotron-2_image -f docker/Dockerfile docker/- muitas coisas aconteceram que pareciam bem sucedidas, mas no final, ocorreu um erro:

Package libav-tools is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source However the following packages replace it:

ffmpeg

E: Package 'libav-tools' has no installation candidate The command '/bin/bash -c apt-get install -y libasound-dev portaudio19-dev libportaudio2 libportaudiocpp0 ffmpeg libav-tools wget git vim'

returned a non-zero code: 100

Neste ponto, estou preso. É verdade que estou tentando me desvencilhar desse erro, mas de forma abrangente estou procurando as etapas exatas para ser capaz de executar o Tacotron2 e, finalmente, ser capaz de alimentá-lo com um arquivo mp3 com a voz de alguém e, em seguida, poder alimentá-lo algum texto, que então "falará" naquela voz.

Esse é o meu entendimento do que é o Tacotron2, mas estou ansioso para saber se estou indo pelo caminho errado.

Respostas

2 wisp Aug 19 2020 at 14:48

Seu problema é bastante semelhante a https://github.com/Rayhane-mamah/Tacotron-2/issues/475

O problema ocorre porque você tem libav-toolsdiretivas de instalação em seu Dockerfile que não tem mais candidatos à instalação.

Para eliminar o erro, você precisa abrir docker/Dockerfileem qualquer editor de texto e remover libav-toolsda linha que contém

apt-get install -y libasound-dev portaudio19-dev libportaudio2 libportaudiocpp0 ffmpeg libav-tools wget git vim

ter algo como

apt-get install -y libasound-dev portaudio19-dev libportaudio2 libportaudiocpp0 ffmpeg wget git vim

Como o pacote ffmpegjá está nesta lista, você não precisa adicioná-lo novamente.

Você também pode remover libav-toolsdo Dockerfile usando o comando sed no shell WSL (pode ser necessário adicionar sudoantes do sed se houver erro com as permissões):

sed -i docker/Dockerfile -e 's/libav-tools\ //g'

Então, seu comando de construção deve passar.