우분투에서 VOICEVOX ENGINE을 개발하고 싶을 때

VOICEVOX 0.2.0을 Ubuntu 21.04 환경에 설치 계속

지금까지의 배경



이전 기사에서는 Ubuntu에서 VOICEVOX를 사용할 수 있습니다.
동시에 프론트엔드측(VOICEVOX 소프트웨어)의 개발을 위한 환경 정비가 가능했습니다.
이와 같이 API 서버측(VOICEVOX 엔진)에 대해서는 반드시 그렇지는 않았습니다.

이 몇 주간의 시행 착오로부터 현재 상황에 대해 이해한 것을 정리합니다.
  • 결국 엔진은, 제품판이 필수(아직 오픈 소스가 되어 있지 않은 부분이 있다)
  • 공식 README에 작성된 기술을 사용하여 정식 버전과 개발중인 코드를 결합하여 실행할 수 있습니다.
  • 이것은 Windows 전용 지원 (바이너리는 Windows 용으로 빌드됨)

  • 이미 알려진 바와 같이, 정식 버전은 Wine을 사용하여 실행 가능
  • Linux 또는 macOS에서의 작동 예보고가 있습니다

  • VOICEVOX(주로 엔진)를 Docker 컨테이너화하는 사례가 복수 공개되어 있다

  • 그렇다면 docker-compose를 사용하여 제품 버전과 개발중인 코드의 조합을 일괄 시작 및 종료 할 수 있도록 해 보았습니다.

    ▷ GitHub 저장소 UnisonUnum

    문서 등, 설정이나 사용법의 설명을 쓸 수 없기 때문에, 누구라도 곧바로 사용할 수 있는 곳까지 만들어 넣고 있지 않습니다만,
    Docker나 git등에 익숙한 분이라면, 이것을 참고로 해, 개발 환경의 정비의 단서가 될까라고 생각합니다.

    정책


  • 정식 버전 패키지 또는 배포 후 크기가 매우 크기 때문에 컨테이너에 복사하지 않고 볼륨으로 마운트합니다.
  • 서버의 소스 코드를 개발하는 동안 사용하는 가정이므로 이것도 볼륨으로 마운트됩니다.
  • 정식 버전의 전단에 위치한 서버는 엔진과 동일한 FastAPI, Uvicorn을 사용하여 구현합니다.
  • 지금은 단순히 요청을 후단으로 리디렉션하는 것만으로 구현됩니다.
  • 원하는 기능에 따라 한 번 수신 한 요청을 별도의 에이전트로 중계하는 것이 좋습니다.

  • 기능을 middleware로 구현하여 이식 (엔진에 통합) 할 수 있습니다 (잠재적)
  • 앞으로는 VOICEVOX에 독자적인 부가 기능(연계하는 소프트웨어)을 개발해 나가고 싶다

  • 구성도





    런타임 기록(예)


    (/PATH_TO/UnisonUnum/docker)docker-compose up
    Creating network "docker_default" with the default driver
    Creating docker_voicevox_engine_wine_1 ... done
    Creating docker_voicevox_engine_dev_1  ... done
    Attaching to docker_voicevox_engine_dev_1, docker_voicevox_engine_wine_1
    voicevox_engine_dev_1   | INFO:     Started server process [9]
    voicevox_engine_dev_1   | INFO:     Waiting for application startup.
    voicevox_engine_dev_1   | INFO:     Application startup complete.
    voicevox_engine_dev_1   | INFO:     Uvicorn running on http://0.0.0.0:50021 (Press CTRL+C to quit)
    voicevox_engine_wine_1  | 0090:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.
    voicevox_engine_wine_1  | 0090:err:winediag:nodrv_CreateWindow Make sure that your X server is running and that $DISPLAY is set correctly.
    voicevox_engine_wine_1  | 0090:err:systray:initialize_systray Could not create tray window
    voicevox_engine_wine_1  | 0024:fixme:seh:EnumProcessModulesEx (FFFFFFFFFFFFFFFF, 0000000000000000, 0, 0000000000988E80, 2) semi-stub
    voicevox_engine_wine_1  | 0024:fixme:seh:EnumProcessModulesEx (FFFFFFFFFFFFFFFF, 000000006042E270, 1672, 0000000000988E80, 2) semi-stub
    voicevox_engine_wine_1  | INFO:     Started server process [32]
    voicevox_engine_wine_1  | INFO:     Waiting for application startup.
    voicevox_engine_wine_1  | INFO:     Application startup complete.
    voicevox_engine_wine_1  | INFO:     Uvicorn running on http://0.0.0.0:50031 (Press CTRL+C to quit)
    voicevox_engine_wine_1  | INFO:     172.19.0.1:41238 - "GET /docs HTTP/1.1" 200 OK
    voicevox_engine_wine_1  | INFO:     172.19.0.1:41238 - "GET /openapi.json HTTP/1.1" 200 OK
    voicevox_engine_dev_1   | Namespace(host='0.0.0.0', port=50021, use_gpu=False, voicevox_dir=PosixPath('/opt/voicevox'), voicelib_dir=None, backend_endpoint='http://127.0.0.1:50031')
    voicevox_engine_dev_1   | INFO:     172.19.0.1:53220 - "POST /audio_query?text=%E9%9F%B3%E5%A3%B0%E5%90%88%E6%88%90%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%B3%E3%81%A7&speaker=0 HTTP/1.1" 307 Temporary Redirect
    voicevox_engine_wine_1  | INFO:     172.19.0.1:41252 - "POST /audio_query?text=%E9%9F%B3%E5%A3%B0%E5%90%88%E6%88%90%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%B3%E3%81%A7&speaker=0 HTTP/1.1" 200 OK
    

    좋은 웹페이지 즐겨찾기