i´m a newbie on programming audio.
I try to capture speech from Microphone and streaming fragments of a capture buffer to network.
I send the fragments by catching the Notification Event.
My Capture Buffer is 2560b big and is seperated in 4 segments.
Every segment gets 20ms of speech. The Samplerate is 16kHz with 16 bits per sample.
Here my Code of the Notification Thread.
DWORD capturePos, readPos; m_captureBuffer->GetCurrentPosition(&capturePos, &readPos); DWORD diff; readPos >= m_NextOffset ? diff = readPos - m_NextOffset : diff = readPos + m_BufferSize - m_NextOffset; if(diff < m_NotifySize) return; //Lock the capture Buffer VOID* lockedBufferPointer = NULL; DWORD lockedBufferSize; m_captureBuffer->Lock(m_NextOffset, m_NotifySize, &lockedBufferPointer, &lockedBufferSize, NULL, NULL, 0L); //Put data to Output Sink const int SIZE = lockedBufferSize/2; //write to wave file write((BYTE*)lockedBufferPointer, lockedBufferSize); //edit the sample pSink->on_NewAudioDataCaptured((short*)lockedBufferPointer, SIZE); //Unlock the capture Buffer m_captureBuffer->Unlock(lockedBufferPointer, lockedBufferSize, NULL, 0); //Move the capture offset along m_NextOffset += lockedBufferSize; m_NextOffset %= m_BufferSize;
My Problem is that the speech I´m sending is very noisy after capturing.
What could I do wrong by Capturing?
I don´t know on and it´s hard to find some good information about capturing by directsound.