Nhiệm vụ: Tách runtime VoiceScenario thành một module chung cho bộ tổng hợp và bộ trực quan hóa
Tách runtime VoiceScenario thành một module chung cho bộ tổng hợp và bộ trực quan hóa
Loại bỏ việc trùng lặp logic thực thi VoiceScenario giữa synthesizeScenario và ScenarioVisualizer.
Nhiệm vụ
Tách logic thực thi chung của VoiceScenario thành một module runtime duy nhất và sử dụng nó đồng thời trong cả bộ tổng hợp (synthesizer) và bộ trực quan hóa (visualizer).
Hiện tại, logic của prepareScenario, evaluateBezier, updateAutomations, executeCommand và việc tính toán VoiceControlState hiện tại đang bị trùng lặp. Điều này tạo ra rủi ro lệch pha: bộ trực quan hóa có thể hiển thị trạng thái không giống với trạng thái mà DSP thực sự đang sử dụng.
Những việc cần làm
- Tạo một module runtime chung cho
VoiceScenario(ví dụ:VoiceSynthesizer/src/runtime.ts). - Tách phần chuẩn bị bố cục kịch bản và timeline chung vào đó.
- Tách phần diễn giải
setvàanimate. - Tách phần tính toán cubic bezier.
- Tách phần cập nhật automation đang hoạt động và ngữ nghĩa giữ lại giá trị
tosau khi kết thúcduration. - Đảm bảo khả năng lấy
VoiceControlStatethực tế theo thời gian hoặc lặp trạng thái dọc theo thang thời gian. - Chuyển
synthesizeScenariosang sử dụng runtime này. - Chuyển
ScenarioVisualizersang dùng chung runtime đó để biểu đồ là sự phản ánh trạng thái thực tế của bộ tổng hợp, chứ không phải là một cách diễn giải kịch bản riêng biệt. - Giữ nguyên ngữ nghĩa kết hợp mảng kịch bản hiện tại:
initialchỉ có ở kịch bản đầu tiên, các kịch bản tiếp theo tiếp tục trạng thái hiện tại mà không reset.
Tiêu chí hoàn thành
Đối với cùng một VoiceScenario, bộ tổng hợp và bộ trực quan hóa sử dụng chung một triển khai state machine. Sau khi thay đổi ngữ nghĩa runtime, không thể xảy ra tình huống DSP thực thi kịch bản theo một cách còn bộ trực quan hóa hiển thị theo một cách khác.