佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

楼主: pic

【电路】简易语音或音效在MCU播放的概念电路

[复制链接]
 楼主| 发表于 22-2-2008 07:50 AM | 显示全部楼层
原帖由 电动舞 于 22-2-2008 04:01 AM 发表
请问LZ一下,
LZ 在PIN 1 和PIN 32 加 C(100n)
是不是给它stable ???
如不加会影响很大吗???

在MCU pin 1 的MCLR,(如有用MCLR) 一定要加0.1uF Cap+4.7K pull up, 不然开机有问题, 或容易受到干扰。
在MCU pin 32 的VCC,最好是加0.1uF, 不然容易受到干扰。
回复

使用道具 举报


ADVERTISEMENT

发表于 6-10-2008 12:32 AM | 显示全部楼层
突然想要做这个东西,所以就翻了这个帖来看,有些地方不是很清楚。

请问一下PIC版主,请问你是怎样extract wave的data出来?
我是把声音convert成8kHz 8bit的file,然后用ultra edit来开,然后把DATA Chunk后面的data都直接当成是声音的data。这样对不对?

如果我的mcu直接有DAC输出了,我还需要接opamp吗?

R2R DAC的输出没有错的话是0-5v,如果我的data是负值的,他要怎样convert?
回复

使用道具 举报

 楼主| 发表于 6-10-2008 03:59 PM | 显示全部楼层
原帖由 GuoHui 于 6-10-2008 12:32 AM 发表
请问你是怎样extract wave的data出来?
我是把声音convert成8kHz 8bit的file,然后用ultra edit来开,然后把DATA Chunk后面的data都直接当成是声音的data。这样对不对?

我用Acountica32, 你也可以用GoldWave之类的, Save As Raw.

如果我的mcu直接有DAC输出了,我还需要接opamp吗?

如果你的DAC 能直接推动Power Amp, 就不需要。

R2R DAC的输出没有错的话是0-5v,如果我的data是负值的,他要怎样convert?

他的output Value 是0~255.
你应该看成是-2.5V(0), 0V(128), +2.5V(255)

所以你的signal是在正+2.5V~ 负-2.5V 之间。

注: TDA2003 是Power Amp, 不是Opamp.
回复

使用道具 举报

发表于 6-10-2008 05:41 PM | 显示全部楼层
原帖由 pic 于 6-10-2008 03:59 PM 发表

我用Acountica32, 你也可以用GoldWave之类的, Save As Raw.
WAVE file format
RIFF Chunk (12 bytes in length total)   
Byte Number
0 - 3
"RIFF" (ASCII Characters)
4 - 7
Total Length Of Package To Follow (Binary, little endian)
8 - 11
"WAVE" (ASCII Characters)

FORMAT Chunk (24 bytes in length total)
Byte Number
0 - 3
"fmt_" (ASCII Characters)
4 - 7
Length Of FORMAT Chunk (Binary, always 0x10)
8 - 9
Always 0x01
10 - 11
Channel Numbers (Always 0x01=Mono, 0x02=Stereo)
12 - 15
Sample Rate (Binary, in Hz)
16 - 19
Bytes Per Second
20 - 21
Bytes Per Sample: 1=8 bit Mono, 2=8 bit Stereo or 16 bit Mono, 4=16 bit Stereo
22 - 23
Bits Per Sample


DATA Chunk   
Byte Number
0 - 3
"data" (ASCII Characters)
4 - 7
Length Of Data To Follow
8 - end
Data (Samples)

就是说,我直接用ultra edit打开convert过后的file,前面的12+24 byte我可以不管,直接拿data chunk第8个byte过后的data?

原帖由 pic 于 6-10-2008 03:59 PM 发表
他的output Value 是0~255.
你应该看成是-2.5V(0), 0V(128), +2.5V(255)

所以你的signal是在正+2.5V~ 负-2.5V 之间。


这个我还不是很明白,因为我在网上看到的都是0-5v。
回复

使用道具 举报

 楼主| 发表于 6-10-2008 06:12 PM | 显示全部楼层
原帖由 GuoHui 于 6-10-2008 05:41 PM 发表
就是说,我直接用ultra edit打开convert过后的file,前面的12+24 byte我可以不管,直接拿data chunk第8个byte过后的data?

你最好用我说的Software, 不要直接从Wav file 拿, wav file 不是RAW data 。



这个我还不是很明白,因为我在网上看到的都是0-5v。


MCU/ DAC      Audio -Signal
5V                     2.5V
2.5V                  0V
0V                      -2.5V



也就是说, 没有声音时, 是有一直有2.5V的输出的。
但由于是有经过cap, 所以, 真正的Audio signal 可以看成是-2.5, 0V, + 2.5V
也就是positive peak 2.5V, negative peak -2.5V.

你不明白的话, 再问, 我可能要画图你就会明白。
回复

使用道具 举报

发表于 6-10-2008 07:49 PM | 显示全部楼层
原帖由 pic 于 6-10-2008 06:12 PM 发表

你最好用我说的Software, 不要直接从Wav file 拿, wav file 不是RAW data 。

Save as ".raw"?

我的声音大概0.6秒,可是那个.raw file要112KB?

我用ultra edit打开这个.raw file,里面的内容比.wav得更难明白。

wav file里面我还看得出0V的时候data是0x80。

原帖由 pic 于 6-10-2008 06:12 PM 发表
MCU/ DAC      Audio -Signal
5V                     2.5V
2.5V                  0V
0V                      -2.5V ...

明白了。
回复

使用道具 举报

Follow Us
发表于 7-10-2008 08:28 PM | 显示全部楼层
刚刚弄了一下,能播了。

其实wav的data直接可以用了,不用转成raw。我是转成PCM 8bit, 8k sampling rate, Mono, 然后用ultra edit直接打开,把wav file的header丢掉,然后后面就是声音的data了。
如图:


开头的那些RIFFxxx到“data”之前都是header,在"data"过后到完的都是声音的data,是unsigned integer。

[ 本帖最后由 GuoHui 于 7-10-2008 08:29 PM 编辑 ]
回复

使用道具 举报

 楼主| 发表于 7-10-2008 11:17 PM | 显示全部楼层
原帖由 GuoHui 于 7-10-2008 08:28 PM 发表
刚刚弄了一下,能播了。

音质如何?
回复

使用道具 举报


ADVERTISEMENT

发表于 7-10-2008 11:23 PM | 显示全部楼层
原帖由 pic 于 7-10-2008 11:17 PM 发表

音质如何?


呵呵…,音质还过得去,能听得出在讲什么算是很好了。不过现在还没有接power amplifier,所以声音很小。

有个疑问,不知道pic大大去哪里找到这些人声的警告音?
回复

使用道具 举报

 楼主| 发表于 7-10-2008 11:45 PM | 显示全部楼层
原帖由 GuoHui 于 7-10-2008 11:23 PM 发表
呵呵…,音质还过得去,能听得出在讲什么算是很好了。不过现在还没有接power amplifier,所以声音很小。

有个疑问,不知道pic大大去哪里找到这些人声的警告音?

我Youtube的那个人声, 是要求我制作的网友提供的。 它本来的音质都不好, 因为是用手机录的, 那个是香港地铁关门的警告音。

其实, 音质可以很好, 完全是看你的sampling rate 来决定。
建议你用Acountica32, 它可以随意的改变wav file的rate, 比如你现在是8Khz, 它可以改成6Khz 或其他你要的采样率。

如果你可以接受更低的音质, 那你可以看看以下的“One Bit Sound”
http://www.romanblack.com/picsound.htm
我就不很满意他的音质, 但是他的ROM用很少就可以了。。。
回复

使用道具 举报

发表于 8-10-2008 12:00 AM | 显示全部楼层
原帖由 pic 于 7-10-2008 11:45 PM 发表

我Youtube的那个人声, 是要求我制作的网友提供的。 它本来的音质都不好, 因为是用手机录的, 那个是香港地铁关门的警告音。

其实, 音质可以很好, 完全是看你的sampling rate 来决定。
建议你用Acountica32 ...


我是用Nero wave editor,也能够设定bit, sampling rate。

我有看到有人用SD卡来存声音,这样的话就没有容量方面的烦恼。不过如果声音的data太多的话,用SPI传输会不会不够快?

1 bit sound,就是说只有0和1?这样的话就算sampling rate很高,音质都不会好到哪里去?
回复

使用道具 举报

 楼主| 发表于 10-10-2008 10:17 AM | 显示全部楼层
原帖由 GuoHui 于 8-10-2008 12:00 AM 发表
我是用Nero wave editor,也能够设定bit, sampling rate。
我有看到有人用SD卡来存声音,这样的话就没有容量方面的烦恼。不过如果声音的data太多的话,用SPI传输会不会不够快?
1 bit sound,就是说只有0和 ...

其实, 语音播放还是要用压缩技术为目标。。。
dsPIC32可以做到解码, 但价钱就比较高。
ADPCM 压缩只是适合语音, 我也没有去深入了解, 可能你可以去研究。

网路上看到人用SD,都有配合MP3解码。
如果只是RAW 8Khz, 直接从SD 通过SPI读取(read only)是够快的。

Atmel 好像也有一款8051 配内建MP3解码, 但是好像不通行, 这里有人用过吗?
回复

使用道具 举报

发表于 10-10-2008 12:08 PM | 显示全部楼层
原帖由 pic 于 10-10-2008 10:17 AM 发表

其实, 语音播放还是要用压缩技术为目标。。。
dsPIC32可以做到解码, 但价钱就比较高。
ADPCM 压缩只是适合语音, 我也没有去深入了解, 可能你可以去研究。

网路上看到人用SD,都有配合MP3解码。
如果只是 ...


我知道VLSI有出mp3的硬解码IC VS1002和VS1011,可是好贵,上网看要USD19.95一粒不包邮费。

不然就用ARM来软解码,往上看到的多数是用LPC2148,因为它有内置10bit的ADC和10bit的DAC,价钱大概USD10,不过只有QFP package。

最便宜的大概只有wav了。
回复

使用道具 举报

 楼主| 发表于 11-10-2008 08:34 PM | 显示全部楼层
原帖由 GuoHui 于 10-10-2008 12:08 PM 发表
我知道VLSI有出mp3的硬解码IC VS1002和VS1011,可是好贵,上网看要USD19.95一粒不包邮费。
不然就用ARM来软解码,往上看到的多数是用LPC2148,因为它有内置10bit的ADC和10bit的DAC,价钱大概USD10,不过只有Q ...

可以看看这个老外的blog, 他把一些概念带出来。
dsPIC WAV Player

可以问你为什么要做语音吗? 如果准备大量生产的商业产品, 可以考虑用一些中国的廉价OTP 预录语音IC。
回复

使用道具 举报

发表于 12-10-2008 02:24 AM | 显示全部楼层
原帖由 pic 于 11-10-2008 08:34 PM 发表

可以看看这个老外的blog, 他把一些概念带出来。
dsPIC WAV Player


这个网址我看过,但是因为没有用过pic,所以大概看过罢了。如果要播mp3的话,要用很快的处理器 + 硬解码的mp3 decoder,不然很难把data从sd card读出来。

原帖由 pic 于 11-10-2008 08:34 PM 发表

可以问你为什么要做语音吗?


哈哈…没有什么原因啦,只是最近买了一片AVR的开发板,刚好有内置DAC,所以就来玩玩看。

http://www.arduino.cc 很多老外在玩这个,因为是开源的有很多人开发它的配件。

另外一个原因就是想自己做一个好像pic大大帮顾客做的那个,放在车上,alarm on/off的时候会播声音。

原帖由 pic 于 11-10-2008 08:34 PM 发表

如果准备大量生产的商业产品, 可以考虑用一些中国的廉价OTP 预录语音IC。

IC有内置rom?
回复

使用道具 举报

 楼主| 发表于 12-10-2008 08:44 PM | 显示全部楼层
原帖由 GuoHui 于 12-10-2008 02:24 AM 发表
另外一个原因就是想自己做一个好像pic大大帮顾客做的那个,放在车上,alarm on/off的时候会播声音。

如果你有注意Myvi 车, 他原装来的Alarm, ARM (设防)/DISARM (解防)是没声音, 后来你可能有发现有一些车,他们的ARM (设防)时会发出do rei mi fa so la si to.... , DISARM  (解防)是to si la so fa mi rei do 的音效。
这是我原设计的, 被人拿去中国Copy了 :@。。。。
除了 Do rei me 的音效 , 我还有其他三种音效设计如鸟叫等等。。。如果各位有听过的, 就知道我说的是什么。

如果准备大量生产的商业产品, 可以考虑用一些中国的廉价OTP 预录语音IC。
IC有内置rom?

我指的那个是OTP 语音IC, 有ROM, 不是MCU, 类似ISD2560之类的IC。
回复

使用道具 举报


ADVERTISEMENT

发表于 13-10-2008 01:03 AM | 显示全部楼层
原帖由 pic 于 12-10-2008 08:44 PM 发表

如果你有注意Myvi 车, 他原装来的Alarm, ARM (设防)/DISARM (解防)是没声音, 后来你可能有发现有一些车,他们的ARM (设防)时会发出do rei mi fa so la si to.... , DISARM  (解防)是to si la so fa mi  ...


Myvi的我知道是用horn来当alarm的。

那种doremi的我有听过,原来是出自pic大大。这个会比播声音容易很多吧?

现在在试着用I2C来把声音program进Serial eeprom AT24C512,然后再读出来。可是弄了2天还是弄不到,开始有点灰心。
回复

使用道具 举报

 楼主| 发表于 13-10-2008 11:42 AM | 显示全部楼层
原帖由 GuoHui 于 13-10-2008 01:03 AM 发表
那种doremi的我有听过,原来是出自pic大大。这个会比播声音容易很多吧?

很简单, 只是Freq tone变吧了。。。 他们要便宜, 没有办法。。。
那个用12F629/ 12F630   来做的, amplifier 是ClassD Push Pull, 但不可以短路, 喇叭一短路就烧, 没有任何保护电路, 要低价的关系。
至于抄袭者怎样做, 就不知道了。。。

现在在试着用I2C来把声音program进Serial eeprom AT24C512,然后再读出来。可是弄了2天还是弄不 ...

I2C 的速度很慢。。。很难拿到你要的sampling rate。
回复

使用道具 举报

发表于 13-10-2008 08:11 PM | 显示全部楼层
原帖由 pic 于 13-10-2008 11:42 AM 发表

很简单, 只是Freq tone变吧了。。。 他们要便宜, 没有办法。。。
那个用12F629/ 12F630   来做的, amplifier 是ClassD Push Pull, 但不可以短路, 喇叭一短路就烧, 没有任何保护电路, 要低价的关系。
至于 ...


这个我有试过,我觉得buzzer都很大声,但是你还接amplifier?

原帖由 pic 于 13-10-2008 11:42 AM 发表
I2C 的速度很慢。。。很难拿到你要的sampling rate。


呵呵…就算很慢,那么当作是一个学习I2C的经验咯。之前没有学过I2C。
如果用SPI EEPROM呢?但是如果都用SPI的话,那么SD卡会不会使更好的选择?
回复

使用道具 举报

 楼主| 发表于 14-10-2008 08:50 AM | 显示全部楼层
原帖由 GuoHui 于 13-10-2008 08:11 PM 发表
这个我有试过,我觉得buzzer都很大声,但是你还接amplifier?

它也是有Siren的功能, 要很大声,音效也要很大声, 不然别人那里听得到?(不是给自己听的)


呵呵…就算很慢,那么当作是一个学习I2C的经验咯。之前没有学过I2C。
如果用SPI EEPROM呢?但是如果都用SPI的话,那么SD卡会不会使更好的选 ...

SD卡当然更好, 要小心注意SD卡是3.3V。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 10-1-2025 11:52 PM , Processed in 0.147091 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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