#include <sent/stddefs.h>
#include <sent/speech.h>
#include <sent/adin.h>
#include "pa/portaudio.h"
マクロ定義 | |
| #define | MAX_FRAGMENT_MSEC 128 |
| Maximum Data fragment Length in msec. | |
関数 | |
| static int | Callback (void *inbuf, void *outbuf, unsigned long len, PaTimestamp outTime, void *userdata) |
| PortAudio callback to store the incoming speech data into the cycle buffer. | |
| boolean | adin_mic_standby (int sfreq, void *dummy) |
| Device initialization: check device capability and open for recording. | |
| boolean | adin_mic_begin () |
| Start recording. | |
| boolean | adin_mic_end () |
| Stop recording. | |
| int | adin_mic_read (SP16 *buf, int sampnum) |
| Read samples from device | |
変数 | |
| static SP16 * | speech |
| cycle buffer for incoming speech data | |
| static int | current |
| writing point | |
| static int | processed |
| reading point | |
| static boolean | buffer_overflowed = FALSE |
| TRUE if buffer overflowed | |
| static int | cycle_buffer_len |
| length of cycle buffer based on INPUT_DELAY_SEC | |
| static PortAudioStream * | stream |
| Stream information | |
portaudiooライブラリを使用したマイク入力のための低レベル関数です. 使用するには configure 時に "--with-mictype=portaudio" を指定して下さい. Linux および Win32 で使用可能です.Win32モードではこれが デフォルトとなります.
Juliusはミキサーデバイスの設定を一切行いません.録音デバイスの 選択(マイク/ライン)や録音ボリュームの調節はWindowsの 「ボリュームコントロール」 や Linux の xmixer など,他のツールで 行なって下さい.
portaudio はフリーでクロスプラットホームのオーディオ入出力ライブラリ です.ソースは libsent/src/adin/pa/ に含まれています.このプログラムでは スレッドを利用したcallback を利用して入力音声をリングバッファに取り込んで います.
adin_portaudio.c で定義されています。
| #define MAX_FRAGMENT_MSEC 128 |
Maximum Data fragment Length in msec.
Input can be delayed to this time. You can override this value by specifying environment valuable "LATENCY_MSEC".
adin_portaudio.c の 72 行で定義されています。
| static int Callback | ( | void * | inbuf, | |
| void * | outbuf, | |||
| unsigned long | len, | |||
| PaTimestamp | outTime, | |||
| void * | userdata | |||
| ) | [static] |
PortAudio callback to store the incoming speech data into the cycle buffer.
| inbuf | [in] portaudio input buffer | |
| outbuf | [in] portaudio output buffer (not used) | |
| len | [in] length of above | |
| outTime | [in] output time (not used) | |
| userdata | [in] user defined data (not used) |
adin_portaudio.c の 94 行で定義されています。
参照元 adin_mic_standby().
| boolean adin_mic_standby | ( | int | sfreq, | |
| void * | dummy | |||
| ) |
Device initialization: check device capability and open for recording.
| sfreq | [in] required sampling frequency. | |
| dummy | [in] a dummy data |
adin_portaudio.c の 160 行で定義されています。
参照元 adin_select().
| boolean adin_mic_begin | ( | ) |
Start recording.
adin_portaudio.c の 224 行で定義されています。
参照元 adin_select().
| boolean adin_mic_end | ( | ) |
Stop recording.
adin_portaudio.c の 244 行で定義されています。
参照元 adin_select().
| int adin_mic_read | ( | SP16 * | buf, | |
| int | sampnum | |||
| ) |
Read samples from device
Try to read sampnum samples and returns actual number of recorded samples currently available. This function will block until at least some samples are obtained.
| buf | [out] samples obtained in this function | |
| sampnum | [in] wanted number of samples to be read |
adin_portaudio.c の 271 行で定義されています。
参照元 adin_select().
1.5.1