จะติดตั้งและเรียกใช้ Tacotron2 บน Ubuntu WSL ได้อย่างไร
ฉันใช้ Ubuntu 20.04 บน WSL Windows 10 Pro 2004 (19041.388) และฉันต้องการเรียกใช้Tacotron2เป็นอย่างมากและลองใช้ฟังก์ชันนี้ ฉันติดตั้ง Tacotron2 จากคอมไพล์ผ่านบรรทัดคำสั่งแล้ว แต่ฉันไม่แน่ใจว่าสร้างสำเร็จหรือไม่ ฉันเป็นมือใหม่กับ Linux และ Docker และคำแนะนำในการติดตั้งจาก Tacotron2 ที่เชื่อมโยงด้านบนดูเหมือนจะสับสน
นี่คือที่ที่ฉันอยู่:
- ติดตั้ง Docker ยืนยันและใช้งานได้ดีทั้งหมด
- ดาวน์โหลดTacotron2ผ่าน git cmd-line - สำเร็จ
- ดำเนินการคำสั่งนี้:
sudo docker build -t tacotron-2_image -f docker/Dockerfile docker/
- มีหลายสิ่งเกิดขึ้นซึ่งดูเหมือนจะประสบความสำเร็จ แต่ในตอนท้ายมีข้อผิดพลาด:
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
ตอนนี้กำลังติด เป็นเรื่องจริงที่ฉันต้องการจะไม่ติดข้อผิดพลาดนี้ แต่โดยรวมแล้วฉันกำลังมองหาขั้นตอนที่แน่นอนเพื่อให้สามารถเรียกใช้ Tacotron2 และในที่สุดก็สามารถฟีดไฟล์ mp3 ด้วยเสียงของใครบางคนจากนั้นจึงสามารถป้อนข้อมูลได้ ข้อความบางส่วนซึ่งจะ "พูด" ด้วยเสียงนั้น
นั่นคือความเข้าใจของฉันเกี่ยวกับ Tacotron2 แต่ฉันอยากรู้ว่าฉันกำลังเดินไปผิดทางหรือไม่
คำตอบ
ปัญหาของคุณค่อนข้างคล้ายกับ https://github.com/Rayhane-mamah/Tacotron-2/issues/475
ปัญหาเกิดขึ้นเนื่องจากคุณมีlibav-tools
คำสั่งการติดตั้งใน Dockerfile ซึ่งไม่มีตัวเลือกการติดตั้งอีกต่อไป
ในการกำจัดข้อผิดพลาดคุณต้องเปิดdocker/Dockerfile
ในโปรแกรมแก้ไขข้อความใด ๆ และลบออกlibav-tools
จากบรรทัดที่มี
apt-get install -y libasound-dev portaudio19-dev libportaudio2 libportaudiocpp0 ffmpeg libav-tools wget git vim
จะมีบางอย่างเช่น
apt-get install -y libasound-dev portaudio19-dev libportaudio2 libportaudiocpp0 ffmpeg wget git vim
เนื่องจากแพ็คเกจffmpeg
อยู่ในรายการนี้แล้วคุณจึงไม่จำเป็นต้องเพิ่มอีก
คุณยังสามารถลบออกlibav-tools
จาก Dockerfile โดยใช้คำสั่ง sed ในเชลล์ WSL (อาจต้องเพิ่มsudo
ก่อน sed หากคุณมีข้อผิดพลาดเกี่ยวกับสิทธิ์):
sed -i docker/Dockerfile -e 's/libav-tools\ //g'
จากนั้นคำสั่ง build ของคุณควรผ่าน