mirror of
https://github.com/harry0703/MoneyPrinterTurbo.git
synced 2026-02-21 16:37:21 +08:00
1, add voice volume
2, code optimization
This commit is contained in:
parent
416a446b5e
commit
ebe47d2507
@ -98,6 +98,7 @@ class VideoParams:
|
||||
video_language: Optional[str] = "" # auto detect
|
||||
|
||||
voice_name: Optional[str] = ""
|
||||
voice_volume: Optional[float] = 1.0
|
||||
bgm_type: Optional[str] = "random"
|
||||
bgm_file: Optional[str] = ""
|
||||
bgm_volume: Optional[float] = 0.2
|
||||
@ -231,18 +232,18 @@ class VideoTermsResponse(BaseResponse):
|
||||
}
|
||||
|
||||
|
||||
class BgmListResponse(BaseResponse):
|
||||
class BgmRetrieveResponse(BaseResponse):
|
||||
class Config:
|
||||
json_schema_extra = {
|
||||
"example": {
|
||||
"status": 200,
|
||||
"message": "success",
|
||||
"data": {
|
||||
"bgm_list": [
|
||||
"files": [
|
||||
{
|
||||
"filename": "output000.mp3",
|
||||
"size": 2249517,
|
||||
"filepath": "C:\\Users\\cathy\\Desktop\\MoneyPrinterTurbo\\resource\\songs\\output000.mp3"
|
||||
"name": "output013.mp3",
|
||||
"size": 1891269,
|
||||
"file": "/MoneyPrinterTurbo/resource/songs/output013.mp3"
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -257,7 +258,7 @@ class BgmUploadResponse(BaseResponse):
|
||||
"status": 200,
|
||||
"message": "success",
|
||||
"data": {
|
||||
"uploaded_path": "/root/home/MoneyPrinterTurbo/resource/songs/example.mp3"
|
||||
"file": "/MoneyPrinterTurbo/resource/songs/example.mp3"
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
@ -229,6 +229,11 @@ def generate_video(video_path: str,
|
||||
result = CompositeVideoClip(clips)
|
||||
|
||||
audio = AudioFileClip(audio_path)
|
||||
try:
|
||||
audio = audio.volumex(params.voice_volume)
|
||||
except Exception as e:
|
||||
logger.warning(f"failed to set audio volume: {e}")
|
||||
|
||||
result = result.set_audio(audio)
|
||||
|
||||
temp_output_file = f"{output_file}.temp.mp4"
|
||||
@ -302,6 +307,8 @@ if __name__ == "__main__":
|
||||
cfg.n_threads = 2
|
||||
cfg.paragraph_number = 1
|
||||
|
||||
cfg.voice_volume = 3.0
|
||||
|
||||
generate_video(video_path=video_file,
|
||||
audio_path=audio_file,
|
||||
subtitle_path=subtitle_file,
|
||||
|
||||
@ -224,7 +224,7 @@ with left_panel:
|
||||
params.video_script = st.text_area(
|
||||
tr("Video Script"),
|
||||
value=st.session_state['video_script'],
|
||||
height=180
|
||||
height=280
|
||||
)
|
||||
if st.button(tr("Generate Video Keywords"), key="auto_generate_terms"):
|
||||
if not params.video_script:
|
||||
@ -295,6 +295,8 @@ with middle_panel:
|
||||
cfg['voice_name'] = voice_name
|
||||
save_config()
|
||||
|
||||
params.voice_volume = st.selectbox(tr("Speech Volume"),
|
||||
options=[0.6, 0.8, 1.0, 1.2, 1.5, 2.0, 3.0, 4.0, 5.0], index=2)
|
||||
bgm_options = [
|
||||
(tr("No Background Music"), ""),
|
||||
(tr("Random Background Music"), "random"),
|
||||
@ -373,6 +375,19 @@ if start_button:
|
||||
logger.info(utils.to_json(params))
|
||||
scroll_to_bottom()
|
||||
|
||||
tm.start(task_id=task_id, params=params)
|
||||
result = tm.start(task_id=task_id, params=params)
|
||||
|
||||
video_files = result.get("videos", [])
|
||||
st.success(tr("Video Generation Completed"))
|
||||
try:
|
||||
if video_files:
|
||||
# center the video player
|
||||
player_cols = st.columns(len(video_files) * 2 + 1)
|
||||
for i, url in enumerate(video_files):
|
||||
player_cols[i * 2 + 1].video(url)
|
||||
except Exception as e:
|
||||
pass
|
||||
|
||||
open_task_folder(task_id)
|
||||
logger.info(tr("Video Generation Completed"))
|
||||
scroll_to_bottom()
|
||||
|
||||
@ -23,6 +23,7 @@
|
||||
"Number of Videos Generated Simultaneously": "Anzahl der parallel generierten Videos",
|
||||
"Audio Settings": "**Audio Einstellungen**",
|
||||
"Speech Synthesis": "Sprachausgabe",
|
||||
"Speech Volume": "Lautstärke der Sprachausgabe",
|
||||
"Male": "Männlich",
|
||||
"Female": "Weiblich",
|
||||
"Background Music": "Hintergrundmusik",
|
||||
@ -46,6 +47,7 @@
|
||||
"Video Script and Subject Cannot Both Be Empty": "Das Video-Thema und Drehbuch dürfen nicht beide leer sein",
|
||||
"Generating Video": "Video wird erstellt, bitte warten...",
|
||||
"Start Generating Video": "Beginne mit der Generierung",
|
||||
"Video Generation Completed": "Video erfolgreich generiert"
|
||||
"Video Generation Completed": "Video erfolgreich generiert",
|
||||
"You can download the generated video from the following links": "Sie können das generierte Video über die folgenden Links herunterladen"
|
||||
}
|
||||
}
|
||||
@ -23,6 +23,7 @@
|
||||
"Number of Videos Generated Simultaneously": "Number of Videos Generated Simultaneously",
|
||||
"Audio Settings": "**Audio Settings**",
|
||||
"Speech Synthesis": "Speech Synthesis Voice",
|
||||
"Speech Volume": "Speech Volume (1.0 represents 100%)",
|
||||
"Male": "Male",
|
||||
"Female": "Female",
|
||||
"Background Music": "Background Music",
|
||||
@ -46,6 +47,7 @@
|
||||
"Video Script and Subject Cannot Both Be Empty": "Video Subject and Video Script cannot both be empty",
|
||||
"Generating Video": "Generating video, please wait...",
|
||||
"Start Generating Video": "Start Generating Video",
|
||||
"Video Generation Completed": "Video Generation Completed"
|
||||
"Video Generation Completed": "Video Generation Completed",
|
||||
"You can download the generated video from the following links": "You can download the generated video from the following links"
|
||||
}
|
||||
}
|
||||
@ -22,7 +22,8 @@
|
||||
"Clip Duration": "视频片段最大时长(秒)",
|
||||
"Number of Videos Generated Simultaneously": "同时生成视频数量",
|
||||
"Audio Settings": "**音频设置**",
|
||||
"Speech Synthesis": "朗读声音",
|
||||
"Speech Synthesis": "朗读声音(:red[尽量与文案语言保持一致])",
|
||||
"Speech Volume": "朗读音量(1.0表示100%)",
|
||||
"Male": "男性",
|
||||
"Female": "女性",
|
||||
"Background Music": "背景音乐",
|
||||
@ -46,6 +47,7 @@
|
||||
"Video Script and Subject Cannot Both Be Empty": "视频主题 和 视频文案,不能同时为空",
|
||||
"Generating Video": "正在生成视频,请稍候...",
|
||||
"Start Generating Video": "开始生成视频",
|
||||
"Video Generation Completed": "视频生成完成"
|
||||
"Video Generation Completed": "视频生成完成",
|
||||
"You can download the generated video from the following links": "你可以从以下链接下载生成的视频"
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user