C 언어 는 음성 낭독 기능 을 간단하게 실현 한다.
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void selectbuf(unsigned char *buf)
{
//printf(">>%s<<
",buf);
unsigned char *p;
for(p=buf;*p!=NULL;)
{
if((*p-'0'>=0&&*p-'9'<=0)||(*p-'a'>=0&&*p-'z'<=0) ||(*p-'A'>=0&&*p-'Z'<=0) )
{
p++;
continue;
}
else if(*p>=0xb0&&*p<=0xf7&&*(p+1)>=0xa1&&*(p+1)<=0xfe)
{
p+=2;
continue;
}
else if((*p>='!'&&*p<='/')||(*p>=':'&&*p<='@'))
{
*p =' ';
p++;
}
else
{
*p=' ';
p++;
*p=' ';
p++;
}
}
// printf("
[%s]
",buf);
}
int main(int argc,char *argv[])
{
system("title ");
system("mode con cols=80 lines=30") ;
system("color f0");
FILE *fp,*fq;
char buffer[1000],*del;
unsigned char buf[1000];
fp = fopen(argv[1],"r");
if(fp!=NULL)
{
while(fgets(buffer,999,fp)!=NULL)
{
printf("
:%s",buffer);
while((del=strchr(buffer,' '))!=NULL)
*del =',';
while((del=strchr(buffer,'\t'))!=NULL)
*del =',';
*buf ='\0';
sscanf(buffer,"%s",buf);
selectbuf(buf);
printf("
:[%s]
",buf);
fq =fopen("voice.vbs","w");
if(fq!=NULL)
{
fprintf(fq,"CreateObject(\"SAPI.Spvoice\").Speak\"%s\"",buf);// CreateObject("SAPI.SpVoice").Speak "I LOVE YOU"
fclose(fq);
system("voice.vbs");
system("del voice.vbs");
}
}
}
else
{
while(1){
printf(" , TXT ( : )!
");
printf("
:");
fflush(stdin);
fgets(buffer,1000,stdin);
if(strstr(buffer,"。 。")!=NULL)
break;
printf("
:%s",buffer);
while((del=strchr(buffer,' '))!=NULL)
*del =',';
while((del=strchr(buffer,'\t'))!=NULL)
*del =',';
sscanf(buffer,"%s",buf);
selectbuf(buf);
printf("
:[%s]
",buf);
fq =fopen("voice.vbs","w");
if(fq!=NULL)
{
fprintf(fq,"CreateObject(\"SAPI.Spvoice\").Speak\"%s\"",buf);// CreateObject("SAPI.SpVoice").Speak "I LOVE YOU"
fclose(fq);
system("voice.vbs");
system("del voice.vbs");
}
printf(" “。 。 ” !
");
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Docker를 사용한 React 및 .NET Core 6.0 샘플 프로젝트 - 1부이 기사에서는 Entity Framework Core Code First 접근 방식을 사용하는 ASP.NET Core 6.0 WEP API의 CRUD(만들기, 읽기, 업데이트 및 삭제) 작업에 대해 설명합니다. 웹 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.