Steam Voice

Introduction

Steam Voice (Steamworks Documentation)
Steam Voice helps you record voice data from the local user and prepare it for sending. It also helps you consume that data and play it back.
Steam Voice does not deal with the sending of data. How you choose to send data from one user to another is a matter of how you handle networking in your game. Steam does provide networking tools or you can use any other networking solution you might like.

Tools

Heathen's Steamworks Complete includes two tools to simplify the process of capturing and playing back voice data.
The voice recorder componenet can be used to capture the local user's voice data and prepare it for transmission over your network connection. It provides the data via a simple event feeding a byte[] of data that should be easily handled by any networking solution.
The idea is that you connect the Voice Stream event up to a method that can send that data over your network.
1
voiceRecorded.evtVoiceStream.AddListener(SendVoiceData);
Copied!
The Voice Stream event gets invoked when the buffer is full and ready for transmission.
The voice stream componenet can be used to play back voice data produced by the voice recorded component. The intent is that your network system receiving voice data from a Voice Recorded would call the Play Voice Data method on this component.
Typically you would have one voice stream componenet per connected player (excluding the local player) you can attach these voice stream components to the player's character or controller such that voice audio can (optionally) be accurately represented as 3D audio.