c语言获取麦克风函数 c语言调用音频

用C语言编程 , 获取麦克风声音并转化为数字格式怎么实现获取到的声音默认就是 PCM 格式的,当然本身就是数字格式了 。。。
去研究一下 waveInOpen 之类的函数吧
c语言问题视窗系统有个自带软件 “sound recorder" 图标是个麦克风,你可以用它来录一个警报声,用来播放 。也可以用 beep 函数 发声 。
至于 写字,你可以在 命令窗 输出,也可以 弄个图形显示 。
多来米法少 的发音方法如下:
#include stdio.h
#include stdlib.h
#include windows.h
main()
{
Beep(523,500); Beep(587,500); Beep(659,500);
Beep(698,500); Beep(784,500); Beep(880,500);
Beep(980,500); Beep(1060,500);
Sleep(500);
Beep(523,500); Beep(587,500); Beep(659,500);
Beep(698,500); Beep(784,500);
}
Beep() 函数 参数 1 是 发声的频率 , 参数2是 发声时间 。你可以调整2个参数和多个函数组合 发出 你要的声音 。
简单的输出 字符 用printf("The characters you want\n");
图形显示等 你可以 用system(命令字); 函数调用 实现。
音频播放参照下面程序:
#include stdio.h
#include windows.h
#include mmsystem.h
#pragma comment(lib, "winmm.lib")
voidmain()
{
PlaySound (TEXT("D:\\zzz\\zzd.wav"), NULL, SND_ASYNC | SND_NODEFAULT);
// PlaySound (TEXT("D:/zzz/YJ_MAY/yj_xqy_wn.wma"), NULL, SND_ASYNC | SND_NODEFAU
LT);
while (1)
{
printf("program is running... here\n");
Sleep(1000);
}
exit(0);
}
C语言调用麦克风打开运行————cmdc语言获取麦克风函数,输入sndrec32-------录音机 c语言获取麦克风函数,记得采纳c语言获取麦克风函数,朋友
请问,如何用C实时获取话筒输入的音量大小如果自己完成,不使用其他库的话,就是 录音,然后分析录音数据 , 录音的话我有代码
/* 录音wave部分
*
* 曙光 2014年8月2日
*/
#include windows.h
#include mmsystem.h
#pragma comment(lib, "winmm.lib")
static WAVEFORMATEX WaveFormat;
static HWAVEINWaveIn;
static WAVEHDRWaveHdr[2];
static shortData1[8820], Data2[8820];
static BOOLWaveOver = FALSE;
static volatile int HdrIndex;
// extern void WaveRecordStart(void);
// extern void WaveRecordStop(void);
extern void OutputWaveData(short *data, DWORD dataLen);// 导出数据,此函数需要注意线程安全
// 回调函数
static void CALLBACK WaveProc(HWAVEOUT, UINT uMsg, DWORD, DWORD, DWORD) {
if ((uMsg != WIM_DATA) || WaveOver) {
return;
}
OutputWaveData((short *) WaveHdr[HdrIndex].lpData, WaveHdr[HdrIndex].dwBytesRecorded);
waveInAddBuffer(WaveIn, WaveHdrHdrIndex, sizeof(WAVEHDR));// 有人说这里不能调用,可能会线程死锁 , 但是测试没发现问题
HdrIndex = ! HdrIndex;// 0 or 1
}
// 初始化设备并且开始录音
void WaveRecordStart(void) {
【c语言获取麦克风函数 c语言调用音频】 WaveFormat.cbSize = 0;
WaveFormat.nChannels = 2;
WaveFormat.nSamplesPerSec = 44100;
WaveFormat.nBlockAlign = 4;
WaveFormat.nAvgBytesPerSec = 88200;
WaveFormat.wBitsPerSample = 16;
WaveFormat.wFormatTag = 1;
waveInOpen(WaveIn, WAVE_MAPPER, WaveFormat, (DWORD_PTR) WaveProc, 0, CALLBACK_FUNCTION);
WaveOver = FALSE;
HdrIndex = 0;
WaveHdr[0].lpData = https://www.04ip.com/post/(LPSTR) Data1;
WaveHdr[0].dwBufferLength = sizeof(Data1);
WaveHdr[1].lpData = https://www.04ip.com/post/(LPSTR) Data2;
WaveHdr[1].dwBufferLength = sizeof(Data2);
WaveHdr[0].dwBytesRecorded = WaveHdr[1].dwBytesRecorded = 0;
WaveHdr[0].dwUser = WaveHdr[1].dwUser = 0;
WaveHdr[0].dwFlags = WaveHdr[1].dwFlags = 1;
WaveHdr[0].dwLoops = WaveHdr[1].dwLoops = 1;
WaveHdr[0].lpNext = WaveHdr[1].lpNext = 0;
WaveHdr[0].reserved = WaveHdr[1].reserved = 0;
waveInPrepareHeader(WaveIn, WaveHdr, sizeof(WAVEHDR));
waveInAddBuffer(WaveIn, WaveHdr, sizeof(WAVEHDR));
waveInPrepareHeader(WaveIn, WaveHdr1, sizeof(WAVEHDR));
waveInAddBuffer(WaveIn, WaveHdr1, sizeof(WAVEHDR));
waveInStart(WaveIn);
}
// 结束录音
void WaveRecordStop(void) {
WaveOver = TRUE;
waveInStop(WaveIn);
waveInReset(WaveIn);
waveInUnprepareHeader(WaveIn, WaveHdr, sizeof(WAVEHDR));
waveInUnprepareHeader(WaveIn, WaveHdr1, sizeof(WAVEHDR));
waveInClose(WaveIn);
}
如何在ubuntu中用c语言打开麦克风1.最简单c语言获取麦克风函数的方法c语言获取麦克风函数:
public static String reverse1(String str)
{
return new StringBuffer(str).reverse().toString();
}
2.最常用的方法c语言获取麦克风函数:
public static String reverse3(String s)
{
char[] array = s.toCharArray();
String reverse = "";//注意这是空串c语言获取麦克风函数,不是null
for (int i = array.length - 1; i = 0; i--)
reverse= array[i];
return reverse;
}
3.常用方法的变形:
public static String reverse2(String s)
{
int length = s.length();
String reverse = "";//注意这是空串c语言获取麦克风函数,不是null
for (int i = 0; ilength; i)
reverse = s.charAt(i)reverse;//在字符串前面连接,而非常见的后面
return reverse;
}
4.C语言中常用的方法:
public static String reverse5(String orig)
{
char[] s = orig.toCharArray();
int n = s.length - 1;
int halfLength = n / 2;
for (int i = 0; i = halfLength; i) {
char temp = s[i];
s[i] = s[n - i];
s[n - i] = temp;
}
return new String(s);//知道char数组和String相互转化
}
speexdsp 是怎么获取麦克风的数据的Speex是一套主要针对语音c语言获取麦克风函数的开源免费,无专利保护的音频压缩格式 。Speex工程着力于通过提供一个可以替代高性能语音编解码来降低语音应用输入门槛 。另外,相对于其它编解码器,Speex也很适合网络应用,在网络应用上有着自己独特的优势 。同时,Speex还是GNU工程的一部分 , 在改版的BSD协议中得到c语言获取麦克风函数了很好的支持 。
Speex一个编码的函数,这种方法是基于帧的,并不是一个文件一个文件处理 , 而是定一个帧的长度基于帧的编码为你想要的一个Speex格式,最后Speex添加Speex文件的头信息,然后通过Socket发送Speex文件数据到服务器,服务器传到另外一台设备 , 设备接受为Speex文件并解码为PCM音频数据 。这个Speex还有很多很多的功能,包括录制之前的设置和降噪都可以设置 。通过解码将PCM数据恢复为WAVE文件格式,可以播放这个文件 。
关于c语言获取麦克风函数和c语言调用音频的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读