TTS 真人发音 SYN6288 模块-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

楼主: Zoologist

TTS 真人发音 SYN6288 模块

[复制链接]
发表于 2018-8-4 13:47 | 显示全部楼层
为什么我Serial1.begin报错呀
 楼主| 发表于 2018-8-8 11:13 | 显示全部楼层
553445903 发表于 2018-8-4 13:47
为什么我Serial1.begin报错呀

我用的是 arduino leonardo
发表于 2018-8-25 00:19 | 显示全部楼层
你好,我用的是: XFS5152真人发音TTS语音模块
上传后没有声音,请问有没有原代码下载》?

前两步,串口数据监测一致
到第三步了监测有数据, 数据有差异,不发声
请问是什么原因?
发表于 2018-8-25 01:00 | 显示全部楼层
本帖最后由 share366 于 2018-8-25 12:58 编辑

问题更新……看楼下
发表于 2018-8-25 12:35 | 显示全部楼层
本帖最后由 share366 于 2018-8-25 13:00 编辑

从串口监测数据看差不多,就是无声音,请帮帮我 12.png




现在的代码如下
-------------------------------------------------------------------------
//接下来在上面代码的基础上继续修改,集成直接串口发送
//要输出的字符串
char buffer[]="宇音天下";

//实际汉字长度
#define BSIZE (sizeof(buffer)/3)

//存放转化后的汉字 Unicode值
char character[BSIZE * 2];


//根据字符串计算计算出来的送到串口的值
char output[BSIZE*2+6];
char shuo[BSIZE*2+6];



void setup() {
//Serial1.begin(9600);
Serial.begin(9600);
delay(5000);

}


void loop() {




//将 UTF8 转化为Unicode
for (int i =0;i<BSIZE;i=i+1)
{
character[i*2]=((buffer[i*3]&0xF)<<4)+((buffer[i*3+1]>>2)&0xF);
character[i*2+1]=((buffer[i*3+1]&0x3)<<6)+(buffer[i*3+2]&0x3F);
Serial.print(character[i*2]&0xFF,HEX);
Serial.print(' ');
Serial.print(character[i*2+1]&0xFF,HEX);
Serial.print(' ');
}
Serial.println("");


output[0]=0xFD;
output[1]=(BSIZE*2+3)>>8;
output[2]=((BSIZE*2+3)&0xFF);
output[3]=0x01;
output[4]=0x03;
//把字符串定义搬过去
for (int i=0;i<BSIZE*2;i++)
{
output[i+5]=character;
}

//计算一个校验和
output[BSIZE*2+5]=output[0];
for (int i=1;i<BSIZE*2+5;i++)
{
output[BSIZE*2+5]=output[BSIZE*2+5] ^ output;
}

for (int i=0;i<BSIZE*2+6;i++) {
Serial.print(output&0xFF,HEX);
Serial.print(' ');
Serial.write(output);  //Serial1.write(output);这1去掉了
}
Serial.println(' ');


//首先输出一次Arduino
//原始字符串
//UTF8 的值

for (int i=0;i<BSIZE*3;i++)
{
Serial.print(buffer&0xFF,HEX);
Serial.print(' ');
}
Serial.println(' ');





Serial.println(' ');
delay(15000);

}



XFS5152CE.png
发表于 2018-9-7 23:54 | 显示全部楼层
好东西,留个足迹,谢谢分享
发表于 2019-10-6 15:01 | 显示全部楼层
本帖最后由 zhangchangsheng 于 2019-10-6 15:07 编辑

您好, 我用了您的代码 现在 Serial.print(buffer&0xFF,HEX);  报错
Sound2:37:25: error: invalid operands of types 'char [13]' and 'int' to binary 'operator&'

Sound2:91:43: error: invalid operands of types 'char' and 'char [14]' to binary 'operator^'

Sound2:99:26: error: invalid operands of types 'char [14]' and 'int' to binary 'operator&'
可以给解决一下是哪里问题吗?


char buffer[] = "宇音天下";
//实际汉字长度
#define BSIZE (sizeof(buffer)/3)
//存放转化后的汉字 Unicode值
char character[BSIZE * 2];
//根据字符串计算计算出来的送到串口的值
char output[BSIZE*2+6];
void setup() {
  Serial.begin(9600);
  Serial.begin(9600);
      delay(5000);
}
void loop() {
  //首先输出一次Arduino 原始字符串 UTF8 的值
  for (int i =0;i<BSIZE*3;i++) {
     Serial.print(buffer&0xFF,HEX);
      Serial.print(' ');
  }
  Serial.println(' ');
  //将 UTF8 转化为 Unicode
    for (int i =0;i<BSIZE;i=i+1) {
      character[i*2]=((buffer[i*3]&0xF)<<4)+((buffer[i*3+1]>>2)&0xF);
      character[i*2+1]=((buffer[i*3+1]&0x3)<<6)+(buffer[i*3+2]&0x3F);
      Serial.print(character[i*2]&0xFF,HEX);
      Serial.print(' ');
      Serial.print(character[i*2+1]&0xFF,HEX);
      Serial.print(' ');     
    }
  Serial.println("");
  output[0]=0xFD;
  output[1]=(BSIZE*2+3)>>8;
  output[2]=((BSIZE*2+3)&0xFF);
  output[3]=0x01;
  output[4]=0x03;
  //把字符串定义搬过去
  for (int i=0;i<BSIZE*2;i++) {
      output[i+5]=character;
    }
  //计算一个校验和
  output[BSIZE*2+5]=output[0];
  for (int i=1;i<BSIZE*2+5;i++) {
      output[BSIZE*2+5]=output[BSIZE*2+5] ^ output;
    }  
  for (int i =0;i<BSIZE*2+6;i++) {
      Serial.print(output&0xFF,HEX);
      Serial.print(' ');
      Serial.write(output);
    }   
Serial.println(' ');
delay(15000);
}

 楼主| 发表于 2019-10-6 20:14 | 显示全部楼层
zhangchangsheng 发表于 2019-10-6 15:01
您好, 我用了您的代码 现在 Serial.print(buffer&0xFF,HEX);  报错
Sound2:37:25: error: invalid operan ...

试试这个哈

[mw_shl_code=arduino,true]//要输出的字符串
char buffer[]="宇音天下";
//实际汉字长度
#define BSIZE (sizeof(buffer)/3)
//存放转化后的汉字 Unicode值
char character[BSIZE * 2];

//根据字符串计算计算出来的送到串口的值
char output[BSIZE*2+6];

void setup() {
  Serial1.begin(9600);
  Serial.begin(9600);
      delay(5000);
}

void loop() {
  //首先输出一次Arduino 原始字符串 UTF8 的值
  for (int i =0;i<BSIZE*3;i++) {
     Serial.print(buffer&0xFF,HEX);
      Serial.print(' ');
  }
  Serial.println(' ');
  //将 UTF8 转化为 Unicode
    for (int i =0;i<BSIZE;i=i+1) {
      character[i*2]=((buffer[i*3]&0xF)<<4)+((buffer[i*3+1]>>2)&0xF);
      character[i*2+1]=((buffer[i*3+1]&0x3)<<6)+(buffer[i*3+2]&0x3F);
      Serial.print(character[i*2]&0xFF,HEX);
      Serial.print(' ');
      Serial.print(character[i*2+1]&0xFF,HEX);
      Serial.print(' ');      
    }
  Serial.println("");

  output[0]=0xFD;
  output[1]=(BSIZE*2+3)>>8;
  output[2]=((BSIZE*2+3)&0xFF);
  output[3]=0x01;
  output[4]=0x03;
  //把字符串定义搬过去
  for (int i=0;i<BSIZE*2;i++) {
      output[i+5]=character;
    }
  //计算一个校验和  
  output[BSIZE*2+5]=output[0];
  for (int i=1;i<BSIZE*2+5;i++) {
      output[BSIZE*2+5]=output[BSIZE*2+5] ^ output;
    }   
  
  for (int i =0;i<BSIZE*2+6;i++) {
      Serial.print(output&0xFF,HEX);
      Serial.print(' ');
      Serial1.write(output);
    }     
  
Serial.println(' ');

    delay(15000);
}
[/mw_shl_code]
发表于 2019-10-7 07:46 | 显示全部楼层
Zoologist 发表于 2019-10-6 20:14
试试这个哈

[mw_shl_code=arduino,true]//要输出的字符串

Arduino:1.8.10 (Windows 7), 开发板:"Arduino Nano, ATmega328P (Old Bootloader)"

D:\BaiduYunDownload\语音合成模块V2.0资料\6288原创资料\安然之家原创\Syn6288_Arduino例程\Sound2\Sound2.ino: In function 'void loop()':

Sound2:20:25: error: invalid operands of types 'char [13]' and 'int' to binary 'operator&'

Sound2:47:43: error: invalid operands of types 'char' and 'char [14]' to binary 'operator^'

Sound2:51:26: error: invalid operands of types 'char [14]' and 'int' to binary 'operator&'

exit status 1
invalid operands of types 'char [13]' and 'int' to binary 'operator&'

在文件 -> 首选项开启
“编译过程中显示详细输出”选项
这份报告会包含更多信息。
还是会报错,您编译不报错?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 11:41 , Processed in 0.093259 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表