// turbo c code
#include <stdio.h>
#include <math.h>
#include <conio.h>
#include <stdlib.h>
// #include <graphics.h>
#define channel 1 // channel (byte)
#define epd 700 // ending point detection
#define y1 2000 // graph
#define amplitude 3 // graph
#define pixel 2 // graph
#define r 10 // graph
#define frmsize 128*channel
#define overlap 64*channel
#define prevol atol(volume[sample-1])
#define nowvol atol(volume[sample])
#define preslope frmslope[i-1]*zcrslope[i-1]
#define nowslope frmslope[i]*zcrslope[i]
char *volume[], *filename, *fnstring="c:\tc\";
unsigned long sample=1, frmnum=1, zcrnum=1, pronun1, pronun2, i;
long frame[], zcr[], zcrslope[], frmslope[];
short mode;
volume[0]="0", frame[1]=0, zcr[1]=0, frmslope[0]=0, zcrslope[0]=0;
FILE *fp1, *fp2;
main()
{
// file I/O
clrscr();
printf("Input file name : ");
scanf("%s", filename);
strcat(fnstring, filename);
if((fp1=fopen(fnstring, "r"))!=NULL);
fp2=fopen("c:\tc\sound.dat", "w+")
else
{
printf("\n");
printf("File not found");
exit();
}
fseek(fp1, 44L, 0);
while((fread(volume[sample], channel, 1, fp1))!=NULL)
{
fwrite(volume[sample], channel, 1, fp2);
i=0;
frame[frmnum]=frame[frmnum]+(labs(nowvol));
if(prevol*nowvol=<0)
zcr[zcrnum]=zcr[zcrnum]+1;
if((sample==(frmsize+(i*overlap)))
{
frmnum=frmnum+1;
zcrnum=zcrnum+1;
fseek(fp1, "-"+overlap+"L", 1);
sample=sample-overlap;
}
sample=sample+1;
i=i+1;
} // file I/O eld
fclose(fp1); fclose(fp2);
// 1
for(i=1;i=<(ceil(frmnum/2));i++)
{
zcrslope[1]=(labs(zcr[i+1]-zcr[i]));
frmslope[i]=(labs(frame[i+1]-frame[i]));
if(preslope=<nowslope)
pronun1=i;
}
// 2
for(i=((ceil(frmnum/2))+1);i=<(frmnum-1);i++)
{
zcrslope[i]=(labs(zcr[i+1]-zcr[i]));
frmslope[i]=(labs(frame[i+1]-frame[i]));
if(preslope>=nowslope)
{
if(zcr[i]<epd){
pronun2=i;
goto graph; }
}
}
// graph
graph:
int graphdriver=DETECT, graphmode;
initgraph(&graphdriver, &graphmode, "");
cleardevice();
for(mode=1;mode=<3;mode++)
{
line(pixel, y1*mode, sample*pixel, y1*mode);
switch(mode)
{
case 1: //
for(i=1;volume[i]!=NULL; i++)
{
if(volume[i+1]!=NULL)
line(pixel*i, (y1*mode)-(amplitude*volume[i], pixel*(i+1), (y1*mode)-(amplitude*volume[i+1]));
}
break;
case 2: // volume
for(i=1;i=<frmnum;i++)
{
circle(pixel*(frmsize+((i-1)*overlap)), (y1*mode)-(amplitude*frame[i]), r);
if ((i+1)=<frmnum)
line(pixel*(frmsize+((i-1)*overlap)), (y1*mode)-(amplitude*frame[i]), pixel*(frmsize+(i*overlap)), (y1*mode)-(amplitude*frame[i+1]));
}
break;
default: // zcr
for(i=1;i=<zcrnum;i++)
{
circle(pixel*(frmsize+((i-1)*overlap)), (y1*mode)-(amplitude*zcr[i]), r);
if((i+1)=<zcrnum)
line(pixel*(frmsize+((i-1)*overlap)), (y1*mode)-(amplitude*zcr[i]), pixel*(frmsize+(i*overlap)), (y1*mode)-(amplitude*zcr[i+1]));
}
break;
}
line(pixel*pronun1, y1-(ceil(y1*(3/4))), pixel*pronun1, (y1*3)+(ceil(y1*(1/4))));
line(pixel*pronun2, y1-(ceil(y1*(3/4))), pixel*pronun2, (y1*3)+(ceil(y1*(1/4))));
closegraph();
} // graph end
} // main end
터보c 코드인데.... 비주얼 c(터보c 명령어도 다 인식 한다고 들어서..)로 돌려보니 아래와 같은 에러가 3개 뜨는데 뭐가 잘못된건지 모르겠네요.... 아시는 분은 꼭 좀 알려주시길 부탁드립니다...
최대한 빨리 부탁 드립니다...
코드내용은 웨이브파일을 읽어서 음성파형을 구현하는 프로그램입니다...
그리고 한가지 더..
그래픽스 해더파일은 터보c 프로그램에서만 사용가능 한가요?
비주얼 c에서는 인클루드 안하고 그래픽 명령들 그냥 써도 되는 건지...
이것도 아시는 분은 부디 부탁드립니다... 혹시 해더파일 이름이 다르다면 좀 알려주시면 감사드리겠습니다
C:\TC_file\SPEECH.CPP(22) : error C2001: newline in constant
C:\TC_file\SPEECH.CPP(23) : error C2144: syntax error : missing ';' before type 'unsigned long'
C:\TC_file\SPEECH.CPP(23) : fatal error C1004: unexpected end of file found
|