180 likes | 288 Vues
Explore the benefits, challenges, and remedies in developing Voice over IP for iPhone with insights on encoding, network jitter, latency, packetization, and more.
E N D
Voice Over IP Developing IPHONE Jeremy Stanley CS 460 section 1
VoIP Advantages • No long distance fees • No dedicated circuit • More efficient use of networks • 64 Kbps raw audio vs. 13 Kbps compressed • Data need not be transmitted during silence
VoIP Issues • Latency • Packetization • Network jitter • Quality of Service • Real-time requirements • Addressing Issues • IPv6 is a pratical necessity
Voice Encoding • PCM (pulse code modulation) • ADPCM - adaptive delta PCM • Fast 4:1 Compression, Good quality • Vocoders (LPC, CELP, GSM) • Slower, 12-30x compression common • Voice only - Music does not work well
Introduction to IPHONE • Win32 application • Uses Windows Multimedia and Sockets APIs for audio and communication • Two-way, full duplex voice channel (PC to PC) • Runs over UDP or TCP, supports data compression and silence detection
The Naïve Algorithm • Receive thread • Receive a packet • Decode and play audio • Return to step 1 • Send thread • Record audio • Encode, packetize, and send • Return to step 1
Problems • Sounds like talking into a fan • Latency quickly rises to intolerable levels
Solutions • Asynchronous sound processing • Encode and send previous packet while recording current packet • Receive and decode next packet while playing current packet • At least two send and receive buffers required
Network Jitter • The double-buffered solution last described works well on a LAN • Delay still accumulates when receive buffer empties due to delayed packets • Increasing receive buffer only does so much - it will eventually be exhausted
Jitter Solutions • Drop late packets • Imperceptibly increase playback speed • Shorten delays between words • Use silence detection • IPHONE does this
Silence Detection • Do not send audio chunks whose maximum amplitude is below a silence threshold • Phone conversations are 60% silence • Turns voice into bursty data
Comfort Noise • Total silence construed as dead line • Substitute pre-recorded "open mic" • Play low-volume white noise • Record and repeat periods of silence during conversation