이번 목표
보이스 녹음 및 더빙 프로그램에 필요한 주요 클래스가 무엇인지 탐색하고 구성 해 보기로 한다.
그 결과를 클래스 다이어그램으로 구성함으로써 추후 프로그램을 개발할 때 소요되는 시간을 절약하고 유지 보수를 용이하게 한다.
주요 클래스 다이어그램
기본적으로 목소리를 녹음하는 건, 단순히 한 문장을 녹음하기 보다, 특정 장면에 대해서, 특정 시간에 대해 목소리를 구성할 수 있다. 예를 들어 주인공 A와 주인공 B가 서로 투닥투닥하는 장면이 있다고 할 때, 사용자Actor은 장면 "투닥거리는 장면"을 생성하고 그 안에 투닥 거리는 목소리 보이스들을 녹음 해 넣을 수 있다. 즉 하나의 보이스들을 의미하는 객체가 필요하며, 이 객체의 상위 부모 객체를 Obj로 임의 구성하였다.
장면 1
A : 나... 배고파
B : 여기 고구마 있어 먹을래?
"먹는다"를 선택한 경우
A : 헉... 고구마다
A : 어... 먹을래...
"안 먹는다"를 선택한 경우
위 상황에서, 해당 소프트웨어를 이용해 더빙을 구성한다고 할 때, 장면 1에서의 분기에 따라 등장 인물 A의 헉... 고구마다의 음성은 동일하다. 이런 경우 음성을 별도로 두 번 오브젝트로 가지고 있으면 공간 상 비효율적이기 때문에 이를 중복 적으로 참조할 수 있도록 인스턴스를 하나만 만들어 관리할 수 있도록 한다.
결과적으로 인스턴스 목록은 다음과 같다.
A : 헉... 고구마다
A : 어...음... 됐어...
B : 정말? 내가 다 쳐먹는다!..
장면 1 내 인스턴스
- Track 1 인스턴스
SoundObj [0]나... 배고파
SoundObj [1]여기 고구마 있어 먹을래?
장면 2 내 인스턴스
- Track 1 인스턴스
SoundObj [2-1]헉... 고구마다
SoundObj [3]어... 먹을래...
장면 3 내 인스턴스
- Track 1 인스턴스
SoundObj [2-2]헉... 고구마다
SoundObj [4]어... 음... 됐어...
SoundObj [5]정말? 내가 다 쳐먹는다!..
Data Instances
주의 할 점은 SoundObj 자체는 서로 다른 인스턴스이다. 왜냐하면 다른 장면에 들어가는 다른 오브젝트이기 때문, 다만 이 오브젝트에 필요로 하는 AudioData 는 같은 Audio를 참조하게 되는 것 이다. 실제 Data Instances 를 보면 AudioData [2]는 하나만 존재하며 버퍼를 같이 사용하게 된다.
이러한 과정을 목표로, 마저 진행하기로 한다. AudioData [0]나... 배고파
AudioData [1]여기 고구마 있어 먹을래?
AudioData [2]헉... 고구마다
AudioData [3]어... 먹을래...
AudioData [4]어... 음... 됐어...
AudioData [5]정말? 내가 다 쳐먹는다!..