搜索
bottom↓
回复: 43

[原创]偶地第1件独立作品:用SYN6288语音合成芯片制作的简易公交车报站器[图片+视频]

[复制链接]

出0入0汤圆

发表于 2010-11-27 04:38:00 | 显示全部楼层 |阅读模式
好久没来啦,发个新作品。

学单片机一年了,总算独立完成一件完整的东东,先上照片:



(原文件名:11.jpg)


(原文件名:12.jpg)


(原文件名:13.jpg)

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

 楼主| 发表于 2010-11-27 04:41:06 | 显示全部楼层
视频来啦
用SYN6288中文语音合成芯片制作的超简单公交车报站系统实验

出0入0汤圆

发表于 2010-11-27 07:52:07 | 显示全部楼层
LZ不是来光SHOW图片的吧,对这个语音芯片感兴趣,能给出详细点的资料吗?

出0入0汤圆

发表于 2010-11-27 07:56:12 | 显示全部楼层
不错,很实用,很想买一块玩玩!

出0入0汤圆

发表于 2010-11-27 08:15:34 | 显示全部楼层
芯片价格太贵了,而且还不提供免费样片 供客户测试。。。。。。

出0入0汤圆

发表于 2010-11-27 08:18:12 | 显示全部楼层
样片55。。。。。。。。是有点那个。。。。。。

出0入0汤圆

发表于 2010-11-27 08:33:41 | 显示全部楼层
这个年代,不提供免费样品的,我们一般是直接 干掉,不会采用,因为前期合作不好,后期也不会好到哪里。。。。我们用量不大,一年也就是个200KK的样子。。。

我现在用VS1003B来解决这个问题。。。总体成本比他的还低。。。。

顺便说一下北京的大部分芯片生产厂家都是这个样子。。。。不提供样片,而且还卖样片,居然卖的还贼贵。。缺钱不至于缺倒这种地步吧。。。。

出0入0汤圆

发表于 2010-11-27 08:40:15 | 显示全部楼层
VS1003B 还要外挂SD卡存MP3文件,感觉成本太高了。。。

出0入0汤圆

发表于 2010-11-27 09:27:33 | 显示全部楼层
而且VS1003B要先录音吧?

出0入0汤圆

发表于 2010-11-27 10:38:29 | 显示全部楼层
楼上的,就SYN6288发出的那个语音 硬邦邦的 没有一点感情_色彩,要是半夜发音,就跟鬼叫似的。。。

VS1003B那个声音比他好N多倍。。。。

出0入0汤圆

发表于 2010-11-27 10:48:10 | 显示全部楼层
发音的效果是说一字,停顿,然后在发一字的吧。
TTS合成的就是机械声音,没办法哈。
估计XF-4041还要贵。。。

BTW: yuming兄,你不上QQ么,俺call你呢

出0入0汤圆

发表于 2010-11-27 10:55:43 | 显示全部楼层
VS1003B的声音要比SYN6288好N倍,前提是录音的人发出的话音要好N倍,这两个根本就不是同一类的.



科大讯飞的在线演示效果不错,有用过的吗,实际效果是不是也这样?

http://www.iflytek.com/TtsDemo/interPhonicShow.aspx

出0入0汤圆

发表于 2010-11-27 10:57:07 | 显示全部楼层
回复【10楼】hahacomcn
发音的效果是说一字,停顿,然后在发一字的吧。
tts合成的就是机械声音,没办法哈。
估计xf-4041还要贵。。。
btw: yuming兄,你不上qq么,俺call你呢
-----------------------------------------------------------------------

可以一段一段地发(长度有限制),词组会自己连起来读.

出0入0汤圆

发表于 2010-11-27 10:58:38 | 显示全部楼层
LS,多音字怎么办?

出0入0汤圆

发表于 2010-11-27 11:00:37 | 显示全部楼层
回复【7楼】benladn911 AVR猎手
vs1003b 还要外挂sd卡存mp3文件,感觉成本太高了。。。
-----------------------------------------------------------------------

数据不大的,用SPI FLASH芯片就可以了,也不贵。

出0入0汤圆

发表于 2010-11-27 11:01:56 | 显示全部楼层
看了视频很棒!

出0入0汤圆

发表于 2010-11-27 11:15:45 | 显示全部楼层
发个帖子就闪人。

说的不好听,打广告的——GUN!

出0入0汤圆

发表于 2010-11-27 11:18:20 | 显示全部楼层
回复【13楼】snoopyzz
ls,多音字怎么办?
-----------------------------------------------------------------------

大部分会自己识别

出0入0汤圆

发表于 2010-11-27 12:20:42 | 显示全部楼层
55元。。。
如果是我我会搞那种带音频DAC的微控制器芯片+FLASH.

出0入0汤圆

发表于 2010-11-27 13:42:43 | 显示全部楼层
TI ADI不用给钱就能申请到样片。。。除非你是申请JY的,否则MP一定能申请到。。。。。

出0入0汤圆

发表于 2010-11-27 14:01:21 | 显示全部楼层
注意力不应该放在人家提供的几片免费样片上,而是客观考虑是否适合自己的项目

出0入0汤圆

 楼主| 发表于 2010-11-27 20:25:38 | 显示全部楼层
不好意思呀,今天婆家外公过生日,刚回来,大家别光看价格撒,
偶费好大力气画的,焊得怎么样啊,给提点意见撒

出0入0汤圆

 楼主| 发表于 2010-11-27 20:38:36 | 显示全部楼层
发个按键读数的源码,大家自己改撒

/***********************************************************
**
** 北京宇音天下公司 SYN6288 中文语音合成芯片测试程序演示版
**
** 本程序用于89C51/89C52/89S51/89S52及与其兼容的其他单片机
**
** 作    者:CIKY & SPP From Dreamon-II Labs.
**
** 版权所有:追梦计算机及电子技术实验室
**
** 最后修改:2010-05-06  凌晨 03:22
**
***********************************************************/

#include <reg51.h>
#include <stdio.h>
#include <string.h>

#define uchar unsigned char
#define uint unsigned int

#define KEY          P0  //P1用于键扫描

#define BUFLEN      32  //文字缓冲区的长度
#define HEADLEN       5  //数据包头的长度
#define LEN_OFFSET    2  //长度字节的偏移量(本例中长度不超过255字节,因此只使用1字节长度)

//数据包头(0xFD + 2字节长度 + 1字节命令字 + 1字节命令参数)
uchar head[HEADLEN] = {0xfd,0x00,0x00,0x01,0x00};

//文字(中间有需要变化的内容可在发送前修改)
uchar text[BUFLEN] = {"溶液温度         度"};

//延时1ms
void Delay1ms(uchar n)
{
    uchar i=112;

        while(n--)
        {
                while(i--);
        }
}

//串口初始化
void UART_InitBaud(void)
{
        SCON=0xD8 ;  //晶振为11.059MHZ时,设定串口波特率为9600bit/s,方式3  
        TMOD=0x20 ;
        PCON=0x00 ;
        TH1=0xFD ;
        TR1=1;       
}

//串口发送数据
void UART_Trans(uchar n)
{
        SBUF = n;   
        while(TI==0);  //发送数据   
        TI=0;       
}                               

//发声程序
void Speech(uchar *buf, uchar len)
{
        uchar i = 0;          //循环计数变量
        uchar xor = 0x00;     //校验码初始化
                       
        head[LEN_OFFSET] = len + 3;  //计算正文长度(1命令字 + 1命令参数 + 文字长度 + 1校验位)

        //发送数据包头(0xFD + 2字节长度 + 1字节命令字 + 1字节命令参数)
        for(i = 0; i < HEADLEN; i++)
        {
                xor ^= head;
                UART_Trans(head);
                Delay1ms(2);
           }

        //发送文字内容
        for(i = 0; i < len; i++)
        {
                xor ^= buf;
                UART_Trans(buf);
                Delay1ms(2);
        }

        UART_Trans(xor);        //发送校验位
}


//主函数
void main()
{
        uchar xor = 0;    //校验码(正文内容的异或)
        uchar i = 0;      //循环计数变量

        float num = 123.45;  //测试值,可以由用户程序自动生成

        uchar numbuf[10];
        memset(numbuf,0,sizeof numbuf);


       
        UART_InitBaud();  //初始化串口为 9600bps

        while(1)
        {
                if(KEY != 0xff)
                {
                        Delay1ms(10);
                        if(KEY != 0xff)
                        {
                            sprintf(text + 10,"%6.2f",num);  //将浮点数 num 转为字符串,
                                                                //并追加到数组text[]的第6字节后
                                                                                                //(前6字节为字符串“当前值”)
                                                                                                //参见库函数sprintf()的用法
                                num -= 0.43;
                                Speech(text,20);   //调用发声函数,读出指定长度数据
                        }
                }

                Delay1ms(100);        //延时
        }
}

出0入0汤圆

发表于 2010-12-20 11:06:47 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-12-21 19:10:30 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-11-17 19:15:51 | 显示全部楼层
语音!

出0入0汤圆

发表于 2011-11-19 14:13:56 | 显示全部楼层
mark一下

出0入0汤圆

发表于 2011-11-19 14:27:09 | 显示全部楼层
MARK!

出0入0汤圆

发表于 2011-11-19 14:51:31 | 显示全部楼层
回复【23楼】bj-stm8  珍惜生命 远离天_朝
注意力不应该放在人家提供的几片免费样片上,而是客观考虑是否适合自己的项目

-----------------------------------------------------------------------

看样子大神是只看datasheet就知道行不行,甚至于只凭楼主类似的几句话就行。难道这个世界没有类似产品竞争这回事吗?
没有谁只喜欢样片,也没有谁只盯着样片,我们都不是乞丐。在产品是需要用钱来堆积的时候,找到最实惠的芯片是我们的不懈追求。不会因为一句适合就放弃任何其他的考虑。
是不是呆在北京的人都喜欢这样一根筋的思考方式啊!?

出1070入962汤圆

发表于 2011-11-19 15:19:03 | 显示全部楼层
6288这种合成芯片,比较适合于不固定语音的合成,对于固定的或者很少变化的,可以有其他更好的方案,效果和成本都很低。
今年在项目里边用了不少的6288,讯飞的是不考虑了,人家的主要精力根本不在芯片上了,出了两款芯片,广告说是升级版,结果是完全不同的芯片,老产品没法顺利升级,效果也很差,老款芯片的很挑32K晶振。6288相对好了很多。

对于语音一个一个蹦字的问题,其实词语可以使用连读命令的,能够改善一些。不过这家语音天下是比较鸡贼的,我们光开个发票就催了很久,最后还是吵架摔电话的结果。

出0入0汤圆

发表于 2012-4-6 13:30:53 | 显示全部楼层
TO: 楼上
猫兄,我也用过SYN6288,你是在哪个区域的呀,负责我们江苏这个区域的商务专员,态度很好啊

出0入0汤圆

发表于 2012-4-6 13:39:45 | 显示全部楼层
不错,mark一下,呵呵

出0入0汤圆

发表于 2012-4-27 21:23:34 | 显示全部楼层
好东西,下来学习看看

出0入0汤圆

发表于 2012-6-14 14:22:33 | 显示全部楼层
学习一下了

出0入0汤圆

发表于 2012-11-28 10:05:34 | 显示全部楼层
顶一下 准备用 自己在淘宝买的样片  几片样片也懒得跟他们申请 麻烦 淘宝发顺风 隔天到

出0入0汤圆

发表于 2012-11-28 10:14:51 | 显示全部楼层
通常语音合成是把专业的录音句子拆开单字来存储,播放的时候再组合起来,这样听起来还比较顺畅
音质的好坏不仅取决于芯片的DA,还在于录音音源,和后期的处理

出0入137汤圆

发表于 2012-11-28 11:04:20 | 显示全部楼层
现在出6588了,准备用一下,贵啊。但用量少,可以接受

出0入0汤圆

发表于 2013-4-11 21:26:15 | 显示全部楼层
Appcat 发表于 2011-11-19 15:19
6288这种合成芯片,比较适合于不固定语音的合成,对于固定的或者很少变化的,可以有其他更好的方案,效果和 ...

苹果猫,有合适的推荐,正好最近有个项目要用,谢谢!

出0入0汤圆

发表于 2013-5-6 13:18:23 | 显示全部楼层
你的电路图可以给看一下吗?

出0入0汤圆

发表于 2013-5-8 13:00:43 | 显示全部楼层
确实,TTS最大的两个缺点就是成本和音效

音效这个东西,这么多年进步还是那么一丁点,可想而知难度系数有多。一般的公交报站器都是先录音,再播放的

出0入0汤圆

发表于 2014-7-31 16:32:15 | 显示全部楼层
顶顶顶,我也想做一个,楼主能发个程序包不?1634792977@qq.com
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-26 03:19

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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