FMUSER 무선 전송 비디오 및 오디오가 더 쉬워졌습니다!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> 아프리칸스어
sq.fmuser.org -> 알바니아어
ar.fmuser.org -> 아랍어
hy.fmuser.org -> 아르메니아어
az.fmuser.org -> 아제르바이잔 어
eu.fmuser.org -> 바스크
be.fmuser.org -> 벨로루시 어
bg.fmuser.org -> 불가리아어
ca.fmuser.org -> 카탈로니아 어
zh-CN.fmuser.org -> 중국어 (간체)
zh-TW.fmuser.org -> 중국어 (번체)
hr.fmuser.org -> 크로아티아어
cs.fmuser.org -> 체코
da.fmuser.org -> 덴마크어
nl.fmuser.org -> 네덜란드어
et.fmuser.org -> 에스토니아어
tl.fmuser.org -> 필리피노
fi.fmuser.org -> 핀란드어
fr.fmuser.org -> 프랑스어
gl.fmuser.org -> 갈리시아어
ka.fmuser.org -> 조지아 어
de.fmuser.org -> 독일어
el.fmuser.org -> 그리스
ht.fmuser.org -> 아이티 크리올
iw.fmuser.org -> 히브리어
hi.fmuser.org -> 힌디어
hu.fmuser.org 헝가리어
is.fmuser.org -> 아이슬란드 어
id.fmuser.org -> 인도네시아어
ga.fmuser.org -> 아일랜드어
it.fmuser.org -> 이탈리아어
ja.fmuser.org -> 일본어
ko.fmuser.org -> 한국어
lv.fmuser.org -> 라트비아어
lt.fmuser.org 리투아니아어
mk.fmuser.org -> 마케도니아 어
ms.fmuser.org -> 말레이어
mt.fmuser.org -> 몰타어
no.fmuser.org -> 노르웨이어
fa.fmuser.org -> 페르시아어
pl.fmuser.org -> 폴란드어
pt.fmuser.org -> 포르투갈어
ro.fmuser.org -> 루마니아어
ru.fmuser.org -> 러시아어
sr.fmuser.org -> 세르비아어
sk.fmuser.org -> 슬로바키아어
sl.fmuser.org -> 슬로베니아어
es.fmuser.org -> 스페인어
sw.fmuser.org -> 스와힐리
sv.fmuser.org -> 스웨덴어
th.fmuser.org -> 태국
tr.fmuser.org -> 터키어
uk.fmuser.org -> 우크라이나어
ur.fmuser.org -> 우르두어
vi.fmuser.org -> 베트남어
cy.fmuser.org -> 웨일스 어
yi.fmuser.org -> 이디시어
Skype 및 QQ와 같은 도구를 사용하여 친구들과 음성 및 영상 채팅을 원활하게 수행 할 때 그 뒤에 어떤 강력한 기술이 있는지 궁금한 적이 있습니까? 이 기사에서는 표범을 엿볼 수있는 네트워크 음성 통화에 사용되는 기술에 대해 간략하게 소개합니다.
1. 개념 모델
인터넷 음성 통화는 일반적으로 양방향이며 모델 수준에서 대칭입니다. 단순화를 위해 한 방향으로 채널을 논의 할 수 있습니다. 한 쪽은 말하고 다른 쪽은 음성을 듣습니다. 간단하고 빠르지 만 그 과정은 상당히 복잡합니다.
이것은 획득, 인코딩, 전송, 디코딩 및 재생의 다섯 가지 중요한 링크로 구성된 가장 기본적인 모델입니다.
(1) 음성 수집
음성 수집은 마이크의 오디오 데이터 수집, 즉 사운드 샘플을 디지털 신호로 변환하는 것을 말합니다. 여기에는 샘플링 주파수, 샘플링 비트 수 및 채널 수와 같은 몇 가지 중요한 매개 변수가 포함됩니다.
간단히 말해 : 샘플링 주파수는 1 초 동안 수집 작업의 수입니다. 샘플링 비트 수는 각 수집 작업에 대해 얻은 데이터의 길이입니다.
오디오 프레임의 크기는 다음과 같습니다. (샘플링 주파수 × 샘플링 비트 수 × 채널 수 × 시간)
일반적으로 샘플링 프레임의 지속 시간은 10ms입니다. 즉, 10ms의 데이터가 오디오 프레임을 구성합니다. 샘플링 속도가 16k이고 샘플링 비트 수가 16 비트이고 채널 수가 1이라고 가정하면 10ms 오디오 프레임의 크기는 (16000 * 16 * 1 * 0.01) / 8 = 320 바이트입니다. 계산식에서 0.01은 10 초, 즉 XNUMXms입니다.
(2) 코딩
수집 된 오디오 프레임을 인코딩없이 직접 전송한다고 가정하면 필요한 대역폭 요구 사항을 계산할 수 있습니다. 여전히 위의 예 : 320 * 100 = 32KBytes / s, 비트 / s로 변환하면 256kb / s입니다. 이것은 많은 대역폭 사용량입니다. 네트워크 트래픽 모니터링 도구를 사용하면 QQ와 같은 IM 소프트웨어를 사용하여 음성 통화를 할 때 트래픽이 원래 트래픽보다 훨씬 작은 3-5KB / s임을 알 수 있습니다. 이것은 주로 오디오 코딩 기술 때문입니다. 따라서 실제 음성 통화 응용 프로그램에서 이러한 코딩 링크는 필수 불가결합니다. G.729, iLBC, AAC, SPEEX 등과 같이 일반적으로 사용되는 음성 코딩 기술이 많이 있습니다.
(3) 네트워크 전송
오디오 프레임이 인코딩되면 네트워크를 통해 발신자에게 전송할 수 있습니다. 음성 대화와 같은 실시간 애플리케이션의 경우 낮은 대기 시간과 안정성이 매우 중요하므로 네트워크를 매우 원활하게 전송해야합니다.
(4) 디코딩
상대방이 인코딩 된 프레임을 수신하면이를 디코딩하여 사운드 카드에서 직접 재생할 수있는 데이터로 복원합니다.
(5) 음성 재생
디코딩이 완료되면 얻은 오디오 프레임을 사운드 카드에 제출하여 재생할 수 있습니다. 첨부 : 음성 재생 컴포넌트 인 MPlayer의 소개 및 데모 소스 코드와 SDK 다운로드를 참조 할 수 있습니다.
2. 실제 적용의 어려움과 해결책
위에서 언급 한 기술에만 의존하여 광역 네트워크에 적용된 음성 대화 시스템을 구현할 수 있다면이 글을 쓸 필요가별로 없습니다. 많은 현실적 요인들이 위에서 언급 한 개념 모델에 많은 도전을 불러 일으켰고, 이는 많은 전문 기술을 포함하는 네트워크 음성 시스템의 실현을 그렇게 간단하지 않게 만듭니다. 물론 이러한 과제의 대부분에는 이미 성숙한 솔루션이 있습니다. 우선, "좋은 효과"음성 대화 시스템을 정의해야합니다. 다음 사항을 달성해야한다고 생각합니다.
(1) 낮은 지연. 대기 시간이 짧은 경우에만 통화중인 두 당사자가 실시간에 대해 강한 감각을 가질 수 있습니다. 물론 이것은 주로 네트워크 속도와 통화중인 두 당사자의 물리적 위치 사이의 거리에 따라 달라집니다. 순수 소프트웨어의 관점에서 보면 최적화 가능성은 매우 적습니다.
(2) 낮은 배경 소음.
(3) 소리가 매끄럽고 멈추거나 멈추는 느낌이 없습니다.
(4) 응답이 없습니다.
아래에서는 실제 네트워크 음성 대화 시스템에서 사용되는 추가 기술에 대해 하나씩 설명합니다.
1. 에코 제거 AEC 이제 거의 모든 사람들이 음성 채팅 중에 PC 또는 노트북 음성 재생 기능을 직접 사용하는 데 익숙해졌습니다. 모두가 알고 있듯이이 작은 습관은 음성 기술에 큰 도전이되었습니다. 라우드 스피커 기능을 사용하면 스피커에서 재생되는 사운드가 마이크에 다시 수집되어 상대방에게 다시 전송되어 상대방이 자신의 에코를들을 수 있습니다. 따라서 실제 응용에서 에코 제거 기능이 필요합니다. 수집 된 오디오 프레임을 얻은 후 인코딩 전이 간격은 에코 제거 모듈이 작동하는 시간입니다. 원리는 단순히 에코 제거 모듈이 방금 재생 한 오디오 프레임에 따라 수집 된 오디오 프레임에서 취소와 유사한 작업을 수행하여 수집 된 프레임에서 에코를 제거하는 것입니다. 이 과정은 매우 복잡하며 채팅 할 때있는 방의 크기 및 방에서의 위치와도 관련이 있습니다.이 정보는 음파 반사의 길이를 결정하기 때문입니다. 지능형 에코 제거 모듈은 현재 환경에 가장 잘 적응하도록 내부 매개 변수를 동적으로 조정할 수 있습니다.
2. 노이즈 억제 DENOISE 노이즈 감소 처리라고도하는 노이즈 억제는 음성 데이터의 특성을 기반으로하여 배경 노이즈의 일부를 식별하고 오디오 프레임에서 필터링합니다. 많은 인코더에이 기능이 내장되어 있습니다.
3. JitterBuffer 지터 버퍼는 네트워크 지터 문제를 해결하는 데 사용됩니다. 소위 네트워크 지터는 네트워크 지연이 점점 더 작아진다는 것을 의미합니다. 이 경우 발신자가 데이터 패킷을 정기적으로 전송하더라도 (예 : 100ms마다 패킷 전송) 수신자는 동일한 타이밍을 수신 할 수 없습니다. 어떤 경우에는 한주기에 패킷을 수신 할 수없고, 한주기에 여러 패킷을 수신하는 경우도 있습니다. 이런 식으로 수신기가 듣는 소리는 하나의 카드 하나의 카드입니다. JitterBuffer는 디코더 이후와 음성 재생 전에 작동합니다. 즉, 음성 디코딩이 완료된 후 디코딩 된 프레임을 JitterBuffer에 넣고 사운드 카드의 재생 콜백이 도착하면 JitterBuffer에서 가장 오래된 프레임을 검색하여 재생합니다. JitterBuffer의 버퍼 깊이는 네트워크 지터의 정도에 따라 다릅니다. 네트워크 지터가 클수록 버퍼 깊이가 커지고 오디오 재생 지연이 커집니다. 따라서 JitterBuffer는 부드러운 사운드 재생을 위해 더 높은 딜레이를 사용합니다. 왜냐하면 한 카드 한 카드 사운드에 비해 약간 더 큰 딜레이이지만 부드러운 효과이므로 주관적인 경험이 더 좋습니다. 물론 JitterBuffer의 버퍼 깊이는 일정하지 않지만 네트워크 지터 정도의 변화에 따라 동적으로 조정됩니다. 네트워크가 매우 매끄럽고 방해받지 않도록 복원되면 버퍼 깊이가 매우 작아 지므로 JitterBuffer로 인한 재생 지연 증가는 무시할 수 있습니다.
4. 음소거 감지 VAD 음성 대화에서 한 사람이 말하지 않으면 트래픽이 생성되지 않습니다. 이를 위해 음소거 감지가 사용됩니다. 음소거 감지는 일반적으로 인코딩 모듈에도 통합됩니다. 이전 소음 억제 알고리즘과 결합 된 무음 감지 알고리즘은 현재 음성 입력이 있는지 여부를 식별 할 수 있습니다. 음성 입력이없는 경우 특수 코딩 된 프레임 (예 : 길이 0)을 인코딩 및 출력 할 수 있습니다. 특히 여러 사람이 참여하는 화상 회의에서는 일반적으로 한 사람 만 말하고 있습니다. 이 경우에도 무음 감지 기술을 사용하여 대역폭을 절약하는 것은 여전히 매우 중요합니다.
5. 믹싱 알고리즘 다자간 음성 채팅에서는 여러 사람의 음성 데이터를 동시에 재생해야하며 사운드 카드는 하나의 버퍼 만 재생합니다. 따라서 여러 음성을 하나로 믹싱해야합니다. 이것이 믹싱 알고리즘이하는 일입니다. 믹싱을 우회하고 여러 사운드를 동시에 재생하는 방법을 찾을 수 있더라도 에코 제거를 위해 하나의 재생으로 믹싱해야합니다. 그렇지 않으면 에코 제거를 사용하면 여러 사운드 중 일부만 제거 할 수 있습니다. 대부분. 모든 방법. 믹싱은 클라이언트 측 또는 서버 측에서 수행 할 수 있습니다 (다운 스트림 대역폭을 절약 할 수 있음). P2P 채널을 사용하는 경우 믹싱은 클라이언트 측에서만 수행 할 수 있습니다. 클라이언트에서 믹싱하는 경우 일반적으로 믹싱은 재생 전 마지막 링크입니다. 이 기사는 OMCS의 음성 부분을 구현 한 경험을 대략적으로 요약 한 것입니다. 여기서 우리는 그림의 각 링크에 대한 간단한 설명을 만들었으며 그중 하나는 긴 종이나 책에 쓸 수 있습니다. 따라서이 기사는 네트워크 음성 시스템 개발을 처음 접하는 사람들을위한 소개 맵을 제공하고 몇 가지 단서를 제공하기위한 것입니다.
|
놀라움을 얻으려면 이메일을 입력하십시오.
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> 아프리칸스어
sq.fmuser.org -> 알바니아어
ar.fmuser.org -> 아랍어
hy.fmuser.org -> 아르메니아어
az.fmuser.org -> 아제르바이잔 어
eu.fmuser.org -> 바스크
be.fmuser.org -> 벨로루시 어
bg.fmuser.org -> 불가리아어
ca.fmuser.org -> 카탈로니아 어
zh-CN.fmuser.org -> 중국어 (간체)
zh-TW.fmuser.org -> 중국어 (번체)
hr.fmuser.org -> 크로아티아어
cs.fmuser.org -> 체코
da.fmuser.org -> 덴마크어
nl.fmuser.org -> 네덜란드어
et.fmuser.org -> 에스토니아어
tl.fmuser.org -> 필리피노
fi.fmuser.org -> 핀란드어
fr.fmuser.org -> 프랑스어
gl.fmuser.org -> 갈리시아어
ka.fmuser.org -> 조지아 어
de.fmuser.org -> 독일어
el.fmuser.org -> 그리스
ht.fmuser.org -> 아이티 크리올
iw.fmuser.org -> 히브리어
hi.fmuser.org -> 힌디어
hu.fmuser.org 헝가리어
is.fmuser.org -> 아이슬란드 어
id.fmuser.org -> 인도네시아어
ga.fmuser.org -> 아일랜드어
it.fmuser.org -> 이탈리아어
ja.fmuser.org -> 일본어
ko.fmuser.org -> 한국어
lv.fmuser.org -> 라트비아어
lt.fmuser.org 리투아니아어
mk.fmuser.org -> 마케도니아 어
ms.fmuser.org -> 말레이어
mt.fmuser.org -> 몰타어
no.fmuser.org -> 노르웨이어
fa.fmuser.org -> 페르시아어
pl.fmuser.org -> 폴란드어
pt.fmuser.org -> 포르투갈어
ro.fmuser.org -> 루마니아어
ru.fmuser.org -> 러시아어
sr.fmuser.org -> 세르비아어
sk.fmuser.org -> 슬로바키아어
sl.fmuser.org -> 슬로베니아어
es.fmuser.org -> 스페인어
sw.fmuser.org -> 스와힐리
sv.fmuser.org -> 스웨덴어
th.fmuser.org -> 태국
tr.fmuser.org -> 터키어
uk.fmuser.org -> 우크라이나어
ur.fmuser.org -> 우르두어
vi.fmuser.org -> 베트남어
cy.fmuser.org -> 웨일스 어
yi.fmuser.org -> 이디시어
FMUSER 무선 전송 비디오 및 오디오가 더 쉬워졌습니다!
문의하기
주소:
No.305 Room HuiLan Building No.273 Huanpu Road 광저우 중국 510620
카테고리
MMCC 뉴스레터