
이 저장소의 아이디어는 주어진 비디오에 대한 여러 트레일러 후보를 자동으로 생성하는 것입니다. 사용자는 비디오 파일과 몇 개의 텍스트 매개 변수 만 제공하면됩니다.
먼저, 우리는 선택적으로 IMDB에서 비디오의 플롯을 가져 와서 서브 플로트로 나누고, IMDB에서 가져 오는 대신 자신의 플롯을 제공하거나 수정할 수 있습니다. 해당 서브 플롯은 비디오의 주요 부분을 대략 설명하고 다음 서브 플롯에 대한 음성을 생성합니다. 이제 트레일러의 구어체 부분이 있으므로 각 서브 플롯에 해당하는 짧은 클립을 가져 와서 음성을 적용해야합니다. 비디오에서 많은 프레임을 샘플링하고 각 서브 플롯과 가장 유사한 프레임을 가져 와서 각 서브 플롯을 가장 잘 나타내는 이미지가 있습니다. 다음 단계는 각 프레임에서 몇 초의 클립을 가져가는 것입니다. 트레일러의 오디오 및 시각적 부분을 생성 한 후 각 오디오를 해당 클립과 결합하고 마지막으로 모든 클립을 최종 트레일러에 결합하면됩니다.
이 모든 단계는 결과를 개선하고 싶지 않은 것을 검사하고 수동으로 제거 할 수있는 중간 파일을 생성합니다.
참고 : 기본 매개 변수를 사용하면 각 서브 플롯마다 하나의 오디오와 하나의 클립 만 생성되어 하나의 트레일러 후보 만 생성됩니다. 더 많은 트레일러 후보자를 만들거나 더 많은 오디오 및 클립 옵션을 선택할 수 있으려면
n_audios및n_retrieved_images증가시킬 수 있습니다. 트레일러 후보자는n_audios = 3및n_retrieved_images = 3에 대해이와 함께 기하학적으로 증가한다는 점을 명심하십시오.
이 저장소를 사용하는 것이 권장되는 접근 방식은 Docker와 함께 있지만 사용자 정의 Venv를 사용할 수도 있습니다. 모든 종속성을 설치하십시오.
사용자는 해당 비디오의 두 가지 입력, 비디오 파일과 IMDB ID 만 제공하면됩니다 . 그런 다음 configs.yaml 파일로 이동하여 값을 조정할 수 있습니다. video_id imdb id가되며 video_path 비디오 파일을 가리킬 수 있으므로 project_name 비디오 이름으로 업데이트하고 reference_voice_path 로 참조 음성을 제공 할 수도 있습니다.
IMDB의 모든 영화의 URL 은이 "https://www.imdb.com/title/ttt0063350"처럼 0063350 것입니다. ID는 title/ 이후의 정수 부분이 될 것입니다.
project_dir: 'projects'
project_name: Natural_History_Museum
video_path: 'movies/Natural_History_Museum.mp4'
plot_filename: 'plot.txt'
video_retrieval:
video_url: 'https://www.youtube.com/watch?v=fdcEKPS6tOQ'
plot_retrieval:
video_id:
subplot:
split_char:
voice:
model_id: 'tts_models/multilingual/multi-dataset/xtts_v2'
device: cpu
reference_voice_path: 'voices/sample_voice.wav'
tts_language: en
n_audios: 1
frame_sampling:
n_frames: 500
frame_ranking:
model_id: 'clip-ViT-B-32'
device: cpu
n_retrieved_images: 1
similarity_batch_size: 128
clip:
min_clip_len: 3
audio_clip:
clip_volume: 0.1
voice_volume: 1.0
Docker 이미지를 작성하십시오
make build전체 파이프 라인을 실행하여 비디오와 플롯에서 시작하여 트레일러를 만듭니다.
make trailer전체 파이프 라인을 실행하여 비디오에서 시작하여 트레일러를 만들고 IMDB에서 플롯을 검색하십시오.
make trailer_imdb전체 파이프 라인을 실행하여 플롯에서 시작하여 예고편을 만들고 YouTube에서 비디오를 다운로드하십시오.
make trailer_youtube전체 파이프 라인을 실행하여 YouTube에서 비디오를 다운로드하는 트레일러를 작성하고 IMDB에서 플롯 검색
make trailer_imdb_youtube비디오 검색 단계를 실행하십시오
make video_retrieval플롯 검색 단계를 실행하십시오
make plot_retrieval서브 플롯 단계를 실행하십시오
make subplot음성 단계를 실행하십시오
make voice프레임 단계 실행 (프레임 샘플링)
make frameimage_retrieval 단계 실행 (프레임 순위)
make image_retrieval클립 단계를 실행하십시오
make clipAudio_Clip 단계를 실행하십시오
make audio_clipjoin_clip 단계를 실행하십시오
make join_clip보풀 및 서식을 코드에 적용합니다 (개발에만 필요)
make lint 개발을 위해 요구 requirements-dev.txt 설치하고 make lint 유지하여 코딩 스타일을 유지하십시오.
기본적으로 나는 Coqui ai의 XTTS를 사용하고 있습니다. 모델은 Coqui Public 모델 라이센스 아래에 있습니다.