feat: Implement segment update and regeneration features in Audiobook API and frontend

This commit is contained in:
2026-03-12 15:48:35 +08:00
parent a1ee476e0f
commit bb6ad9b0a3
13 changed files with 485 additions and 31 deletions

View File

@@ -640,6 +640,26 @@ def update_audiobook_segment_status(
return seg
def update_audiobook_segment(
db: Session,
segment_id: int,
text: str,
emo_text: Optional[str],
emo_alpha: Optional[float],
) -> Optional[AudiobookSegment]:
seg = db.query(AudiobookSegment).filter(AudiobookSegment.id == segment_id).first()
if not seg:
return None
seg.text = text
seg.emo_text = emo_text or None
seg.emo_alpha = emo_alpha
seg.status = "pending"
seg.audio_path = None
db.commit()
db.refresh(seg)
return seg
def delete_audiobook_segments(db: Session, project_id: int) -> None:
db.query(AudiobookSegment).filter(AudiobookSegment.project_id == project_id).delete()
db.commit()