이제 델파이 시작한지 2달째 접어드는 델파이 초보입니다.
음성채팅을 만들구 싶어서 시작했는데
ACM컴포넌트를 이용해서 구현을 해보았습니다.
자료실에 있는 소스를 보고 그대루 따라했죠.
근데 이넘이 엄청나게 지연된다는 것입니다.
첨에는 잘 들리다가도 좀 지나면 환장하게 뒤에 옵니다.
제 생각에는 말하지 않아도 잡음이 전송되고 그래서 인거 같은데
필터링을 해주면 좀 빨라질것 같고 또 여러명이 대화를 할경우 여러명의 소리를 하나로 믹싱하는 것도 좋을것 같은데 관련 컴포넌트가 어떤건지 멀라서요.
초보에 영어도 약해서 아무리 돌아다니구 뒤져도 잘 모르겠습니다.
답변좀 해 주십시오.
염체없이 부탁드립니다.
1. Transfer Delay.
실제로 네트워크상으로 전송에 걸리는 지연으로 이는 Application으로는 해결할 수 없는 지연입니다.
2. Process Delay
Peer로부터 음성이 온 직후 Sound Device로 출력(재상)할 때까지의 지연을 말합니다.
일반적으로 음성통신을 구현할 때 Peer(상대방)로부터 음성데이터가 왔을 때 곧바로 Play를 하는 것이 아니고 어느정도의 버퍼링을 한 후에 Play를 합니다.
3. Play Delay
Sound Device가 일반적으로 Queue 방식을 사용하기 때문에 기존에 n sec만큼의 재생해야 할 음성데이터가 이미 Sound Device상으로 출력되어 있는 상태이면 지금 출력(재상)하고자 하는 음성데이터는 n sec이후에 출력(재생)이 됩니다.
일반적으로 네트워크 송수신에는 jitter가 생기게 되는 데, 이 jitter때문에 수신측(재생측)에서 약간의 빈 공백이 생기게 되며, 이 빈 공백이 누적되게 되면서 지연이 커지게 됩니다.
말씀하신 질문은 3번 Delay로 예상되며, 해결할 수 있는 방법은 송신측에서 Silence Detection(VAD)을 하여 묵음일 경우 송신을 하지 않는 방법을 사용하거나
수신측에서 주기적으로(10초정도) 버퍼에 싸여 있는 내용들을 Flush하는 방법을 구현하면 됩니다.
MSN 음성채팅에는 이 기능이 구현되어 있으므로 테스트해 보시기 바랍니다.
아울러 브이드림(http://www.vdream.co.kr)에서도 관련 모듈을 다운받을 수 있습니다.