⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 adin_mic_sp.c

📁 about sound recognition.i want to downlod
💻 C
字号:
/** * @file   adin_mic_sp.c * @author Akinobu LEE * @date   Sun Feb 13 19:16:43 2005 *  * <JA> * @brief  マイク掐蜗 (spAudioライブラリ) * * spAudioライブラリを蝗脱したマイク掐蜗のための你レベル簇眶ですˉ * 蝗脱するには configure 箕に "--with-mictype=sp" を回年して布さいˉ * * JuliusはLinuxではミキサ〖デバイスの肋年を办磊乖いませんˉ峡不デバイスの * 联买∈マイク/ライン∷や峡不ボリュ〖ムの拇泪は xmixer など戮のツ〖ルで * 乖なって布さいˉ * * このコ〖ドは轰填建践さんの侯ですˉspAudio については笆布もご枉布さいˉ * * @sa http://www.sp.m.is.nagoya-u.ac.jp/people/banno/spLibs/index-j.html *  * </JA> * <EN> * @brief  Microphone input using spAudio library * * Low level I/O functions for microphone input using spAudio library. * To use, please specify "--with-mictype=sp" options to configure script. * * Julius does not alter any mixer device setting at all on Linux.  You should * configure the mixer for recording source (mic/line) and recording volume * correctly using other audio tool such as xmixer. * * This code has been contributed by Hideaki Banno. * * @sa http://www.sp.m.is.nagoya-u.ac.jp/people/banno/spLibs/index.html *  * </EN> *  * $Revision: 1.1.1.1 $ *  *//* adin_mic_sp.c --- adin microphone library for spAudio * by Hideki Banno */#include <sp/spAudioLib.h>#include <sent/stddefs.h>#include <sent/adin.h>static spAudio audio = NULL;	///< Audio descriptorstatic long buffer_length = 256; ///< Buffer lengthstatic float rate;		///< Sampling rate specified in adin_mic_standby()/**  * Device initialization: check device capability and open for recording. *  * @param sfreq [in] required sampling frequency. * @param dummy [in] a dummy data *  * @return TRUE on success, FALSE on failure. */booleanadin_mic_standby(int sfreq, void *dummy){  rate = sfreq;  if (adin_mic_start() == FALSE) return FALSE;  if (adin_mic_stop() == FALSE) return FALSE;  return TRUE;}/**  * Start recording. *  * @return TRUE on success, FALSE on failure. */booleanadin_mic_start(){  if (audio == NULL) {    audio = spInitAudio();  }  spSetAudioSampleRate(audio, rate);  spSetAudioChannel(audio, 1);  spSetAudioSampleBit(audio, 16);#ifdef SP_AUDIO_NONBLOCKING  spSetAudioBlockingMode(audio, SP_AUDIO_NONBLOCKING);#endif    if (!spOpenAudioDevice(audio, "ro")) {    j_printerr("Error: adin_mic_sp: spOpenAudioDevice\n");    return FALSE;  }      return TRUE;}/**  * Stop recording. *  * @return TRUE on success, FALSE on failure. */booleanadin_mic_stop(){  spCloseAudioDevice(audio);  return TRUE;}/** * @brief  Read samples from device *  * Try to read @a sampnum samples and returns actual number of recorded * samples currently available.  This function will block until * at least some samples are obtained. *  * @param buf [out] samples obtained in this function * @param sampnum [in] wanted number of samples to be read *  * @return actural number of read samples, -2 if an error occured. */intadin_mic_read(SP16 *buf, int sampnum){  long nread;#ifdef SP_AUDIO_NONBLOCKING  nread = sampnum;#else  if (sampnum <= buffer_length) {      nread = sampnum;  } else {      nread = buffer_length;  }#endif  nread = spReadAudio(audio, (short *)buf, nread);    return nread;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -