Record and playback compressed audio
Last reviewed: 9/10/2008
HOW Article ID: H090814
The information in this article applies to:
- SpeechKit 6
The ChantAudio component provides a simple way to record and playback wave audio from/to buffers, files, and streams.
With SpeechKit 6, you can record and playback compressed audio formats.
The ChantAudio component serves as a helper class to manage wave audio and audio devices on your system.
In SpeechKit 6, the ChantAudio component now supports Microsoft's DirectShow API to playback and record compressed audio formats.
For audio playback, the audio rendering objects in DirectShow attempt to find the appropriate audio filter (codec) for the file type. If Windows Media Player is installed, you likely can playback .wma and .mp3 files as illustrated in the following example:
// Playback the file ChantAudio.StartPlayback(-1, "c:\\pathtomyfile\\myinaudiofile.wma", CPSAsynchronous) // When done, release the resources. Use CCDAudioStop event for knowing when playback is done. ChantAudio.StopPlayback() // Record audio ChantAudio.StartRecording(-1, "c:\\pathtomyfile\\myoutaudiofile.wma", CRRFile, CAFDefault); // When done, stop recording and release the resources ChantAudio.StopRecording()
For recording compressed audio, the ChantAudio component automatically generates a profile that best matches the requested audio format.
The ChantAudio methods are not queued. If you want take advantage of the ChantTTS queue for scheduling playbacks, then invoke your playback via the ChantTTS StartPlayabck method as illustrated in the following example:
// Playback the file ChantTTS.StartPlayback("c:\\pathtomyfile\\myinaudiofile.wma",0,CPOFile) // No need to StopPlayback when playback done since ChantTTS queue manager handles automatically at end of playback.