HRESULT KinectSpeechRecognizer::OpenAudioStreams()
{
    IAudioSource* audioSource = NULL;
    IAudioBeamList* audioBeamList = NULL;

    HRESULT hr = speechReader->GetKinectReader()->GetKinectSensor()->get_AudioSource(&audioSource);

    if(SUCCEEDED(hr))
    {
        hr = audioSource->get_AudioBeams(&audioBeamList);
    }

    if(SUCCEEDED(hr))
    {
        hr = audioBeamList->OpenAudioBeam(0, &audioBeam);
    }

    if(SUCCEEDED(hr))
    {
        hr = audioBeam->OpenInputStream(&audioStream);
        audioStream16Bit = new KinectAudioStream(audioStream);
    }

    //These are no longer needed
    if(audioSource)
    {
        audioSource->Release();
        audioSource = NULL;
    }
    if(audioBeamList)
    {
        audioBeamList->Release();
        audioBeamList = NULL;
    }

    return hr;
}