这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 活动中心 » 有奖活动 » 基于语音合成技术的数据识读

共2条 1/1 1 跳转至

基于语音合成技术的数据识读

菜鸟
2026-02-13 12:41:41     打赏

语音合成模块可以实现字符、数字及中文的语音合成,利用它的这一性能,可探索数据识读功能实现。

其处理流程如下:

提供一个待识读的数值,确定其数值大小及位数,依次从最高位进行处理,即提取当前数位的数值及权值,以便合成出数值及数量级的读音,直至处理完全部数据位。此外,还需配置一个零值读音的处理。 

在使用RA2E1开发板的情况下,其测试电路如图1所示,鉴于RA2E1开发板没有USB口供电的条件,特选取了一个供能量稍强的ESP开发板来提供电压,在供电能力稍差的情况下,将无法驱动语音合成模块。

image.png

1 测试电路连接 

在功能实现方面,其涉及的程序如下:

1)发送播放指令的函数

void fszl(uint8_t p)
{
     uint16_t i; 
      z[5]= s[p*2] ;
      z[6]= s[p*2+1];  
     for ( i= 0 ; i< 7; i++)
     {
                                fputch(z[i]); 
     }
     R_BSP_SoftwareDelay (2000, BSP_DELAY_UNITS_MILLISECONDS);
}


2)实现数据识读的功能函数

void szsd(uint16_t k) 
{
    uint16_t u=1;  
    uint8_t  w,p=0,f=0;
    if(k>10)   
    {
        w=1; 
        u=10;
    } 
    if(k>100)
    {
        w=2; 
        u=100;
    } 
    if(k>1000)
    {
        w=3; 
        u=1000;
    }
    while(w>0)
     {
            p=k/u;
            if(p>0) 
            {
              fszl(p); 
              if(w==3) 
              {
                 fszl(14); 
              }
              if(w==2)
              {
           fszl(13);
              }         
              if(w==1) 
              {
                 fszl(12);
              }   
              f=1;
           }
           else
           {   
              if(f==1) 
              {
                     fszl(0);
            }
              f=0;
           }      
           k=k%u;      
           if(w>0) 
           {
               w=w-1;
               u=u/10;
           }       
       }    
     fszl((k%10)); 
}


3)数据识读功能的测试主程序

void hal_entry(void)
{
  err = R_SCI_UART_Open(&g_uart9_ctrl, &g_uart9_cfg);
   assert(FSP_SUCCESS == err); 
  szsd(1024);
  while(1);
}

经程序的编译和下载,其测试结果如图2所示。

image.png

2 测试结果

至此,关于语音合成模块方面的探索和研究就暂时告一段落啦! 

演示视频:









关键词: 数据识读    

助工
2026-02-13 17:07:01     打赏
2楼

学习学习


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]