當前位置:首頁 » 編程語言 » hmmc語言
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

hmmc語言

發布時間: 2022-02-06 02:15:03

Ⅰ Hmm Hmm (Radio Edit) 歌詞

歌曲名:Hmm Hmm (Radio Edit)
歌手:Beenie Man
專輯:Hmm Hmm

M.C The Max - Hmm Hmm
baby

Ⅱ 怎麼在C程序里插音樂

sound(500); // 一直發出頻率為500Hz的聲音
delay(1); // 持續一秒
nosound(); // 停止發聲

將游標停留在sound上,鍵入CTRL+F1,找到相應的庫函數頭文件,#include 之
好像是 stdlib.h 庫

Ⅲ 如何使用SSE指令集編寫應用程序

1、編譯器的自動矢量化

-mfpmath=sse

僅建議在P4和K8以上級別的處理器上使用該選項。

-mmmx

-msse
-msse2
-msse3
-m3dnow
-mssse3(gcc-4.3新增)
-msse4.1(gcc-4.3新增)
-msse4.2(gcc-4.3新增)
-msse4(含4.1和4.2,gcc-4.3新增)
是否使用相應的擴展指令集以及內置函數,需要按照自己的cpu做選擇。

2、使用C/C++類庫

目前,GNU
GCC等大多數編譯器都提供了對SSE指令集的變成支持,允許用戶在C++代碼中不用編寫匯編代碼,就可以直接通過調用庫函數而直接使用SSE指令。

3、使用編譯器的內嵌原語(Intrinsics)

SSE的intrinsics的規則

_mm_<opcode>_<suffix>

其中,<opcode>是指令的類別,像add、sub等等,<suffix>是指令的種類。在SSE浮點運算指令中,只有兩種:ps和ss。

ps:Packed
Single-precision,指對寄存器中的四個單精度浮點同時進行運算。

ss:Scaler
Single-precision,指對寄存器中的DATA0進行運算。

編程時需要包含下表所示的頭文件:

mmintrin.h

MMX

xmmintrin.h

SSE

emmintrin.h

SSE2

pmmintrin.h

SSE3

tmmintrin.h

SSSE3

intrin.h

SSE4A

smmintrin.h

SSE4.1

nmmintrin.h

SSE4.2

mm3dnow.h

3DNOW

說明:如果導入一個高版本的指令集頭文件,那麼一般就不需要在導入低版本的指令了。

4、使用內嵌匯編

指令語法特徵

如:PADDUSW(無符號飽和模式的字組相加)

前綴:P代表成組數據類型

操作指令:如ADD、SUB等

後綴:US為無符號飽和處理

S為有符號飽和處理

B、W、D、Q分別為位元組組、字組、雙字組、四字。

GCC的asm結構

用匯編編寫的程序運行速度快,但開發速度非常慢,效率也很低。如果只是想對關鍵代碼段進行優化,更好的辦法是將匯編指令嵌入到c語言程序中,充分利用高級語言和匯編語言各自的優點。一般來講,在C代碼中嵌入匯編語句要比「純粹」的匯編語言代碼復雜的多,因為需要解決如何分配寄存器,以及如何與C代碼中的變數相結合等問題。內聯匯編能夠靈活操作,而且可以使其輸出通過C變數顯示出來。因為它具有這種能力,所以asm可以用作匯編指令和C程序之間的介面。使用__asm__關鍵字,如果超過一行的指令,每行要加上雙引號,並且後面加上\n\t。如果希望確保編譯器不會在「asm」內部優化指令,可以在「__asm__」後面使用關鍵字「volatile」。

內聯匯編的基本要素

具體語法結構,請看我的一篇博文:《GCC內嵌匯編》文章連接:

http://blog.chinaunix.net/u3/119372/showart_2417924.html

基本要素說明:

限定符

意義

「m」 「v」 「o」

內存單元

「r」

任意寄存器

「q」

寄存器eax,ebx,ecx,edx之一

「i」 「h」

直接操作數

「E」 「F」

浮點數

「g」

任意

「a」 」b」 」c」 」d」

分別表示寄存器eax,ebx,ecx,edx

「S」 」D」

寄存器esi,edi

「I」

常數(0至31)

5、SSE編程注意事項

數據對齊

CPU內存單元以16Byte為邊界,如果數據在運算之前不進行對齊,會是指令運算產生大量延時。

GCC:

float
__attribute__((aligned(16))) a[4]={1.2f,3.5f,1.7f,2.8f};

VC:

__declspec(align(16)) float a[4]={1.2f,3.5f,1.7f,2.8f};

Ⅳ c語言 登錄系統身份驗證 編程

#include<stdio.h>
#include<stdlib.h>

unsignedchar*name="admin";
unsignedchar*password="admin";
unsignedcharname_input[56]={0};
unsignedcharpassword_input[56]={0};
voidmain(void)
{
while(1)
{
memset(name_input,0,sizeof(name_input));
memset(password_input,0,sizeof(password_input));
printf("請輸入賬號密碼,空格分割 ");
scanf("%s%s",name_input,password_input);
if((strcmp(name,name_input)==0)&&(strcmp(password,password_input)==0))
{
printf("welcome,admin ");
return;
}
else
{
printf("nameorpassworderror ");
}
}
}

Ⅳ C語言編程

http://hi..com/mysolarstar/blog/item/a55450c234b6d731e5dd3bb9.html(自己做的有錯誤,請多多指正)
一.
struct student
{long num;
float score;
char *name;
};
struct student *new()
{struct student *st;
float f;
st=(struct student *)malloc(sizeof(struct student));
printf("請輸入學生學號:");
scanf("%ld",&st->num);
printf("請輸入學生姓名");
scanf("%s",st->name);
printf("請輸入學生學習成績:");
scanf("%f",&f);
st->score=f;
return st;
}
void print(stu,n)
struct student *stu;
int n;
{int i;
for(i=0;i<n;i++)
{
printf("學號:%ld\t姓名:%s\t成績:%f\n",stu[i].num,stu[i].name,stu[i].score);
}
}
void sort(stu,n)
struct student *stu;
int n;
{struct student tem;
int i,j,k;
for(i=0;i<n-1;i++)
{k=i;
for(j=i+1;j<n;j++)
if(stu[k].score<stu[j].score)k=j;

tem.score=stu[j].score;
tem.name=stu[j].name;
tem.num=stu[j].num;

stu[j].score=stu[i].score;
stu[j].name=stu[i].name;
stu[j].num=stu[i].num;

stu[i].score=tem.score;
stu[i].name=tem.name;
stu[i].num=tem.num;
}
}

main()
{struct student *newst,stu[10];
int i=0,n;/*定義一個n來等待輸入的幾個學生*/
printf("請輸入要輸入的學生個數");
scanf("%d",&n);
for(i=0;i<n;i++)
{newst=new();
stu[i].num=newst->num;
stu[i].score=newst->score;
stu[i].name=newst->name;
}
print(stu,n);
sort(stu,n);
print(stu,n);
}

Ⅵ 單片機做的音樂盒有沒有可以修改音樂的C語言程序啊

#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar Count;

sbit Speak =P1^2; //蜂鳴器器控制腳
/*以下數組是音符編碼*/
unsigned char code SONG[] ={ //祝你平安
0x26,0x20,0x20,0x20,0x20,0x20,0x26,0x10,0x20,0x10,0x20,0x80,0x26,0x20,0x30,0x20,
0x30,0x20,0x39,0x10,0x30,0x10,0x30,0x80,0x26,0x20,0x20,0x20,0x20,0x20,0x1c,0x20,
0x20,0x80,0x2b,0x20,0x26,0x20,0x20,0x20,0x2b,0x10,0x26,0x10,0x2b,0x80,0x26,0x20,
0x30,0x20,0x30,0x20,0x39,0x10,0x26,0x10,0x26,0x60,0x40,0x10,0x39,0x10,0x26,0x20,
0x30,0x20,0x30,0x20,0x39,0x10,0x26,0x10,0x26,0x80,0x26,0x20,0x2b,0x10,0x2b,0x10,
0x2b,0x20,0x30,0x10,0x39,0x10,0x26,0x10,0x2b,0x10,0x2b,0x20,0x2b,0x40,0x40,0x20,
0x20,0x10,0x20,0x10,0x2b,0x10,0x26,0x30,0x30,0x80,0x18,0x20,0x18,0x20,0x26,0x20,
0x20,0x20,0x20,0x40,0x26,0x20,0x2b,0x20,0x30,0x20,0x30,0x20,0x1c,0x20,0x20,0x20,
0x20,0x80,0x1c,0x20,0x1c,0x20,0x1c,0x20,0x30,0x20,0x30,0x60,0x39,0x10,0x30,0x10,
0x20,0x20,0x2b,0x10,0x26,0x10,0x2b,0x10,0x26,0x10,0x26,0x10,0x2b,0x10,0x2b,0x80,
0x18,0x20,0x18,0x20,0x26,0x20,0x20,0x20,0x20,0x60,0x26,0x10,0x2b,0x20,0x30,0x20,
0x30,0x20,0x1c,0x20,0x20,0x20,0x20,0x80,0x26,0x20,0x30,0x10,0x30,0x10,0x30,0x20,
0x39,0x20,0x26,0x10,0x2b,0x10,0x2b,0x20,0x2b,0x40,0x40,0x10,0x40,0x10,0x20,0x10,
0x20,0x10,0x2b,0x10,0x26,0x30,0x30,0x80,0x00,
//路邊的野華不要采
0x30,0x1C,0x10,0x20,0x40,0x1C,0x10,0x18,0x10,0x20,0x10,0x1C,0x10,0x18,0x40,0x1C,
0x20,0x20,0x20,0x1C,0x20,0x18,0x20,0x20,0x80,0xFF,0x20,0x30,0x1C,0x10,0x18,0x20,
0x15,0x20,0x1C,0x20,0x20,0x20,0x26,0x40,0x20,0x20,0x2B,0x20,0x26,0x20,0x20,0x20,
0x30,0x80,0xFF,0x20,0x20,0x1C,0x10,0x18,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,
0x20,0x2B,0x40,0x20,0x20,0x1C,0x10,0x18,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,
0x20,0x2B,0x40,0x20,0x30,0x1C,0x10,0x18,0x20,0x15,0x20,0x1C,0x20,0x20,0x20,0x26,
0x40,0x20,0x20,0x2B,0x20,0x26,0x20,0x20,0x20,0x30,0x80,0x20,0x30,0x1C,0x10,0x20,
0x10,0x1C,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,0x20,0x2B,0x40,0x20,0x15,0x1F,
0x05,0x20,0x10,0x1C,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,0x20,0x2B,0x40,0x20,
0x30,0x1C,0x10,0x18,0x20,0x15,0x20,0x1C,0x20,0x20,0x20,0x26,0x40,0x20,0x20,0x2B,
0x20,0x26,0x20,0x20,0x20,0x30,0x30,0x20,0x30,0x1C,0x10,0x18,0x40,0x1C,0x20,0x20,
0x20,0x26,0x40,0x13,0x60,0x18,0x20,0x15,0x40,0x13,0x40,0x18,0x80,0x00,

};

/********************************************************************
* 名稱 : Time0_Init()
* 功能 : 定時器的初始化,定時時間可用光碟中軟體計算,11.0592MZ晶振,10ms
* 輸入 : 無
* 輸出 : 無
***********************************************************************/
void Time0_Init()
{
TMOD = 0x01;
IE = 0x82;
TH0 = 0xDC;
TL0 = 0x00;
}

/********************************************************************
* 名稱 : Time0_Int()
* 功能 : 定時器中斷,中斷中實現 Count 加一
* 輸入 : 無
* 輸出 : 無
***********************************************************************/
void Time0_Int() interrupt 1
{
TH0 = 0xDC;
TL0 = 0x00;
Count++; //長度加1
}

/********************************************************************
* 名稱 : Delay_xMs()
* 功能 : 延時子程序,經過軟體調試,測得延時程序大概為55us.
* 輸入 : x
* 輸出 : 無
***********************************************************************/
void Delay_xMs(uint x)
{
uint i,j;
for(i=0; i<x; i++)
{
for(j=0; j<3; j++);
}
}

/********************************************************************
* 名稱 : Play_Song()
* 功能 : 播放蜂鳴器控製程序
* 輸入 : i (選擇播放哪首歌曲,0為「祝你平安」,1為「路邊的野花你不要采」
* 輸出 : 無
***********************************************************************/
void Play_Song(uchar i)
{
uchar Temp1,Temp2;
uint Addr;
Count = 0; //中斷計數器清0
Addr = i * 217;
while(1)
{
Temp1 = SONG[Addr++];
if (Temp1 == 0xFF) //休止符
{
TR0 = 0;
Delay_xMs(100);
}
else if (Temp1 == 0x00) //歌曲結束符
{
return;
}
else
{
Temp2 = SONG[Addr++];
TR0 = 1;
while(1)
{
Speak = ~Speak;
Delay_xMs(Temp1);
if(Temp2 == Count)
{
Count = 0;
break;
}
}
}
}
}
/********************************************************************
* 名稱 : Main()
* 功能 : 主函數
* 輸入 : 無
* 輸出 : 無
***********************************************************************/
void Main()
{
Time0_Init(); //定時器0中斷初始化
while(1)
{
Play_Song(0); //Play_Song(0)為祝你平安 Play_Song(1)為路邊的野花你不要裁
}
}
看看

Ⅶ 請將匯編語言翻譯成C語言

程序不全呀,貼全再給你做吧

Ⅷ 想使用馬爾科夫模型,用什麼語言編程

將C語言實現的隱馬爾科夫模型演算法(UMDHMM)改為C#語言實現。
功能描述:
前向演算法(forward algorithm):給定HMM求一個觀察序列的概率(評估)
後向演算法(backward algorithm):給定HMM求一個觀察序列的概率(評估)
前向-後向演算法(forward-backward algorithm):根據觀察序列生成隱馬爾科夫模型(學習)
維特比演算法(Viterbi algorithm):搜索最有可能生成一個觀察序列的隱藏狀態序列(解碼)

Ⅸ 怎麼用c語言打開一個MP3文件(直接給代碼),需要什麼軟體進行輸入

VC++中播放聲音的方法
2009-09-23 14:58
聲音是多媒體的一個重要組成部分,在應用程序中加入聲音可以使界面更友好。在VC++中可以根據不同的應用要求,用不同的方法實現聲音的播放。

一.播放聲音文件的簡單方法
在VC++ 中的多媒體動態連接庫中提供了一組與音頻設備有關的函數。利用這些函數可以方便地播放聲音。最簡單的播放聲音方法就是直接調用VC++中提供的聲音播放函數BOOL sndPlaySound ( LPCSTR lpszSound,UINT fuSound ); 或BOOL PlaySound( LPCSTR lpszSound, HMODULE hmod, DWORD fuSound );其中參數lpszSound是需要播放聲音的.WAV文件的路徑和文件名, hmod在這里為NULL,fuSound是播放聲音的標志,詳細說明請參考VC++中的幫助。 例如播放C:soundmusic.wav可以用sndPlaySound ("c:\sound\music.wav",SND_ASYNC);或PlaySound("c:\sound\music.wav",NULL, SND_ASYNC|SND_NODEFAULT );如果沒有找到music.wav文件,第一種格式將播放系統默認的聲音,第二種格式不會播放系統默認的聲音。

二.將聲音文件加入到程序中
在VC++的程序設計中,可以利用各種標準的資源,如點陣圖,菜單,對話框等。同時VC++也允許用戶自定義資源,因此我們可以將聲音文件作為用戶自定義資源加入程序資源文件中,經過編譯連接生成EXE文件,實現無.WAV文件的聲音播放。
要實現作為資源的聲音文件的播放,首先要在資源管理器中加入待播放的聲音文件(實現過程並不復雜,這里不在敘述)。假設生成的聲音文件資源標識符為IDR_WAVE1。在播放時只需要調用下面的語句:
PlaySound(MAKEINTRESOURCE(IDR_WAVE1),AfxGetResourceHandle(), SND_ASYNC|SND_RESOURCE|SND_NODEFAULT|SND_LOOP);
其中MAKEINTRESOURCE()宏將整數資源標識符轉變為字元串,AfxGetResourceHandle()函數返回包含資源的模塊句柄,
SND_RESOURCE是必須的標志。
作為資源的聲音文件的第二種播放方法是把資源讀入內存後作為內存數據播放。具體步驟入下:
1.獲得包含資源的模塊句柄:
HMODULE hmod=AfxGetResourceHandle();
2.檢索資源塊信息:
HRSRC hSndResource=FindResource(hmod,MAKEINTRESOURCE(IDR_WAVE1),_T("WAVE"));
3. 裝載資源數據並加鎖:
HGLOBAL hGlobalMem=LoadResource(hmod,hSndResource);
LPCTSTR lpMemSound=(LPCSTR)LockResource(hGlobalMem);
4.播放聲音文件:
sndPlaySound(lpMemSound,SND_MEMORY));
5.釋放資源句柄:
FreeResource(hGlobalMem);

三.播放聲音文件的高級方法
在VC++中提供了一組對音頻設備及多媒體文件直接進行操作的函數。利用這些函數可以靈活地對聲音文件進行各種處理。
首先介紹幾個要用到的數據結構。WAVEFORMATEX結構定義了WAVE音頻數據文件的格式。WAVEHDR結構定義了波形音頻緩沖區。讀出的數據首先要填充此緩沖區才能送音頻設備播放。WAVEOUTCAPS結構描述了音頻設備的性能。MMCKINFO結構包含了RIFF文件中一個塊的信息。詳細的說明請參考VC++中的幫助。
下面給出程序流程簡圖及程序源代碼清單,在VC++環境下可直接使用:

源程序清單如下:
LPSTR szFileName;//聲音文件名
MMCKINFO mmckinfoParent;
MMCKINFO mmckinfoSubChunk;
DWORD dwFmtSize;
HMMIO m_hmmio;//音頻文件句柄
DWORD m_WaveLong;
HPSTR lpData;//音頻數據
HANDLE m_hData;
HANDLE m_hFormat;
WAVEFORMATEX * lpFormat;
DWORD m_dwDataOffset;
DWORD m_dwDataSize;
WAVEHDR pWaveOutHdr;
WAVEOUTCAPS pwoc;
HWAVEOUT hWaveOut;
//打開波形文件
if(!(m_hmmio=mmioOpen(szFileName,NULL,MMIO_READ|MMIO_ALLOCBUF)))
{
//File open Error
Error("Failed to open the file.");//錯誤處理函數
return false;
}
//檢查打開文件是否是聲音文件
mmckinfoParent.fccType =mmioFOURCC('W','A','V','E');
if(mmioDescend(m_hmmio,(LPMMCKINFO)&mmckinfoParent,NULL,MMIO_FINDRIFF))
{
//NOT WAVE FILE AND QUIT
}
//尋找 'fmt' 塊
mmckinfoSubChunk.ckid =mmioFOURCC('f','m','t',' ');
if(mmioDescend(m_hmmio,&mmckinfoSubChunk,&mmckinfoParent,MMIO_FINDCHUNK))
{
//Can't find 'fmt' chunk
}
//獲得 'fmt '塊的大小,申請內存
dwFmtSize=mmckinfoSubChunk.cksize ;
m_hFormat=LocalAlloc(LMEM_MOVEABLE,LOWORD(dwFmtSize));
if(!m_hFormat)
{
//failed alloc memory
}
lpFormat=(WAVEFORMATEX*)LocalLock(m_hFormat);
if(!lpFormat)
{
//failed to lock the memory
}
if((unsigned long)mmioRead(m_hmmio,(HPSTR)lpFormat,dwFmtSize)!=dwFmtSize)
{
//failed to read format chunk
}
//離開 fmt 塊
mmioAscend(m_hmmio,&mmckinfoSubChunk,0);
//尋找 'data' 塊
mmckinfoSubChunk.ckid=mmioFOURCC('d','a','t','a');
if(mmioDescend(m_hmmio,&mmckinfoSubChunk,&mmckinfoParent,MMIO_FINDCHUNK))
{
//Can't find 'data' chunk
}
//獲得 'data'塊的大小
m_dwDataSize=mmckinfoSubChunk.cksize ;
m_dwDataOffset =mmckinfoSubChunk.dwDataOffset ;
if(m_dwDataSize==0L)
{
//no data in the 'data' chunk
}
//為音頻數據分配內存
lpData=new char[m_dwDataSize];
if(!lpData)
{
//faile
}
if(mmioSeek(m_hmmio,SoundOffset,SEEK_SET)<0)
{
//Failed to read the data chunk
}
m_WaveLong=mmioRead(m_hmmio,lpData,SoundLong);
if(m_WaveLong<0)
{
//Failed to read the data chunk
}
//檢查音頻設備,返迴音頻輸出設備的性能
if(waveOutGetDeVCaps(WAVE_MAPPER,&pwoc,sizeof(WAVEOUTCAPS))!=0)
{
//Unable to allocate or lock memory
}
//檢查音頻輸出設備是否能播放指定的音頻文件
if(waveOutOpen(&hWaveOut,DevsNum,lpFormat,NULL,NULL,CALLBACK_NULL)!=0)
{
//Failed to OPEN the wave out devices
}
//准備待播放的數據
pWaveOutHdr.lpData =(HPSTR)lpData;
pWave

OutHdr.dwBufferLength =m_WaveLong;
pWaveOutHdr.dwFlags =0;
if(waveOutPrepareHeader(hWaveOut,&pWaveOutHdr,sizeof(WAVEHDR))!=0)
{
//Failed to prepare the wave data buffer
}
//播放音頻數據文件
if(waveOutWrite(hWaveOut,&pWaveOutHdr,sizeof(WAVEHDR))!=0)
{
//Failed to write the wave data buffer
}
//關閉音頻輸出設備,釋放內存
waveOutReset(hWaveOut);
waveOutClose(hWaveOut);
LocalUnlock(m_hFormat);
LocalFree(m_hFormat);
delete [] lpData;
說明:1)以上使用的音頻設備和聲音文件操作函數的聲明包含在mmsystem.h頭文件中,因此在程序中必須用#include "mmsystem.h"語句加入頭文件。同時在編譯時要加入動態連接導入庫winmm.lib,具體實現方法是從Developer Studio的Project菜單中選擇Settings,然後在Link選項卡上的Object/Library Moles控制中加入winmm.lib。2)在pWaveOutHdr.lpData中指定不同的數據,可以播放音頻數據文件中任意指定位置的聲音。3) 以上程序均在VC++6.0中調試通過,在文中省略了對錯誤及異常情況的處理,在實際應用中必須加入。
四.結論
在VC++中可以根據應用需要採用不同的方法播放聲音文件。簡單應用可以直接調用聲音播放函數。第二種方法可以把聲音作為資源加入可執行文件中。如果在播放之前要對聲音數據進行處理,可用第三種方法。

參考書目:
1. 美 Paul Perry 陳向群 等譯《多媒體開發指南》 清華大學出版社
2. 美 Peter Norton, Rob McGregor 孫鳳英 等譯《MFC開發Windows95/NT4應用程序》 清華大學出版社 1998
3. 周敬利 《多媒體音效卡技術及應用》 電子工業出版社 1998

Ⅹ 有沒有HMM模型數字語音識別C語言代碼

1阿近 2得va 3特例 4其特例 5比啊及 6誰是切 7些木 8Vao些木 9接Vei切 10接系切
11阿近拿次切 12得vie拿次切 13特例拿次切 14其特例拿次切 15比及拿次切 16誰是拿次切
17些木拿次切 18Vao些木拿次切 19接Vei拿次切
20得va次 21~29為20的讀音加上1~9的讀音 如21得va次阿近 22得va次得va .....
30特例次 31~39為30的讀音加上1~9的讀音
40縮勒克 41~49為40的讀音加上1~9的讀音
50比及下特 51~59為50的讀音加上1~9的讀音
60誰及下特 61~69為60的讀音加上1~9的讀音
70些木節下特 71~79為60的讀音加上1~9的讀音
80Vao些木節下特 81~89為80的讀音加上1~9的讀音
90接Vei諾斯特 91~99為90的讀音加上1~9的讀音
100斯多