8383|7

2548

帖子

0

TA的资源

五彩晶圆(初级)

楼主
 

【ESP32-Korvo测评】四:文字转语音TTS [复制链接]

  本帖最后由 数码小叶 于 2021-2-7 22:06 编辑

上一篇已将安装好了智能语音助手ESP-Skainet,这次来实际体验一个应用就是文字转语音,为了测试这个,从网上买了两个喇叭,用其中一个4Ω 2W的来测试,之前分析过原理图,最高可以带载4W的喇叭。

要进行文字转语音,首先要有一个预定义的声音集,乐鑫提供里两种方式,一种是用户程序里调用预定义的语音库,一种是从特定的语音分区里调用初始化,乐鑫推荐使用第二种,因为第一种可能是app bin的大小超过ESP32的限制。

采用第二种方法,要先把音频文件单独烧写进去

 

 

在TTS例程中,用到了自定义分区表,在CSV文件中,有这么一行

婵犵數濮烽弫鍛婃叏閻戣棄鏋侀柛娑橈攻閸欏繘鏌i幋锝嗩棄闁哄绶氶弻娑樷槈濮楀牊鏁鹃梺鍛婄懃缁绘﹢寮婚敐澶婄闁挎繂妫Λ鍕⒑閸濆嫷鍎庣紒鑸靛哺瀵鈽夊Ο閿嬵潔濠殿喗顨呴悧濠囧极妤e啯鈷戦柛娑橈功閹冲啰绱掔紒姗堣€跨€殿喖顭烽弫鎰緞婵犲嫷鍚呴梻浣瑰缁诲倸螞椤撶倣娑㈠礋椤栨稈鎷洪梺鍛婄箓鐎氱兘宕曟惔锝囩<闁兼悂娼ч崫铏光偓娈垮枦椤曆囧煡婢跺á鐔兼煥鐎e灚缍屽┑鐘愁問閸犳銆冮崨瀛樺亱濠电姴娲ら弸浣肝旈敐鍛殲闁抽攱鍨块弻娑樷槈濮楀牆濮涢梺鐟板暱閸熸壆妲愰幒鏃傜<婵☆垰鎼~鎺戔攽閻橆偄浜炬繛鎾村焹閸嬫挻鎱ㄦ繝鍛仩缂侇喗鐟ч幑鍕Ω瑜滈崬鍫曟⒒娴e憡鍟為柤褰掔畺椤㈡牠宕堕埡鍌ゆ綗闂佺粯鍔曢幖顐ょ不閿濆鐓ラ柡鍐ㄥ€瑰▍鏇㈡煕濮椻偓娴滆泛顫忓ú顏咁棃婵炴番鍔岀紞濠傜暦閺囥垺鐒肩€广儱鎳愰崝锕€顪冮妶鍡楀潑闁稿鎸荤换娑氫焊閺嶃倕浜鹃柟棰佺濞堛劍绻濋悽闈浶g痪鏉跨Ч瀵煡骞撻幒婵堝數闁荤姾娅g亸銊╁礉閻旀悶浜滈柡鍐e亾閻㈩垽绻濋獮鍐ㄎ旈崘鈺佹瀭闂佸憡娲﹂崜娑⑺囬妷銉㈡斀闁绘劘灏欏﹢鎾煕婵犲啰绠撻柣锝囧厴椤㈡洟鍩涘顓熴仢妞ゃ垺妫冨畷銊╊敂閸涱収浼栭梻鍌氬€风粈渚€骞夐敍鍕床闁稿本澹曢崑鎾愁潩閸楃偛骞嬮悗瑙勬礃濞茬喖鐛崶顒佸亱闁割偁鍨归獮妤佺節瀵伴攱婢橀埀顒佹尵濞嗐垽鍨鹃弬銉︾亖濠殿喗銇涢崑鎾绘煛瀹€鈧崰鏍偘椤曗偓瀹曞綊顢欓崣銉﹀亝闂傚倷绀侀悿鍥涢崟顖€鍥垂椤愶絽寮块梺閫炲苯澧撮柡宀嬬到铻f繛鑼额嚙閺呴亶姊洪崨濠呭闁硅櫕锚椤繒绱掑Ο璇差€撻梺鎯х箳閹虫挾绮敓鐘斥拺闁告稑锕ラ埛鎰箾閼碱剙鏋涢柕鍡曠椤繃锛愬┑鍥ㄦ珝闂備胶绮崝蹇涘疾濠婂牊鍊跺〒姘e亾婵﹥妞藉Λ鍐ㄢ槈濮橆剦鏆俊鐐€х紓姘跺础閹惰棄鏄ユ繛鎴欏灩缁狅綁鏌i幇顔芥毄妞ゆ梹娲熷娲偂鎼存稑浠銈冨€曢崐鍨暦闂堟稈鏋庨柟鏉跨仛椤旀棃姊虹紒妯哄闁诡垰鑻埢鎾斥堪閸喓鍘搁悗鍏夊亾闁逞屽墴瀹曚即寮介鐐电暫闂佺粯鍨兼慨銈夊磻鐎n喗鐓曟い鎰剁悼缁犳牠鏌h箛鎾诲弰闁哄矉绲鹃幆鏃堝閳轰焦娅涢梻浣告憸婵敻鎮ч悩璇茬伋闁挎洖鍊归崐濠氭煢濡警妲洪柣锝嗘そ濮婃椽妫冨☉姘辩杽闂佺ǹ锕ラ悧鐘荤嵁閸℃稒鍊烽柣鎴炨缚閸橀亶姊洪幐搴㈩梿妞ゆ泦鍐惧殨閻犳亽鍔庣壕濂稿级閸稑濡块柛娆屽亾婵犳鍠栭敃锔惧垝椤栨粎绠旈柣鏃傚帶閻掑灚銇勯幒鍡椾壕鐎光偓閿濆牆鍔垫い锔芥尦閺岀喖鐛崹顔句紙濡ょ姷鍋炵敮锟犵嵁濮椻偓瀵爼骞嬪┑鍛闂傚倸鍊烽悞锕傛儑瑜版帒鍨傜憸鐗堝笒缁犵喖鏌ㄩ悢鍝勑㈢痪鎯х秺閺屾盯顢曢敐鍡欘槰闂佺粯鎸诲ú姗€濡甸崟顖氱疀妞ゆ柨銇欓姀銈嗙厱闁哄啠鍋撶紒顔芥崌瀵顓兼径瀣弳闁诲函缍嗘禍鐐村瀹€鍕拺闁告繂瀚﹢鎵磼鐎n偄鐏撮柛鈺冨仱楠炲鏁冮埀顒勭嵁閵忊€茬箚闁靛牆鎷戝妤呮煙椤曞棛绋诲ǎ鍥э躬閹瑩顢旈崟銊ヤ壕闁哄洨濮靛畷鏌ユ煕椤愮姴鍔氱痪鎯ф健閺岋綁濮€閳惰泛缍婇幏鎴︽偄閸濄儳顔曢梺鐟邦嚟閸嬬喖骞婇崟顖涚厱閹艰揪绲介弸娑㈡煛鐏炶濡奸柍瑙勫灴瀹曞崬顫滈崱姗堢磼濠电姵顔栭崳顖滃緤娴犲鍋嬮柟鎹愵嚙缁犳牗淇婇妶鍌氫壕闂佸磭绮幑鍥х暦瑜版帩鏁婇柣锝呭闁垰鈹戦敍鍕杭闁稿ǹ鍊濆畷锝夊礃椤旇偐鍝楅柡澶婄墑閸斿酣鍩炲鍛斀闁绘ê寮堕幖鎰磼閻樺灚鍤€闂囧鏌ㄥ┑鍡樺櫤闁瑰弶鎮傞弻娑樜熺紒妯衡偓鎰叏婵犲懏顏犵紒顔界懇楠炴劖鎯旈姀鈥愁伆闂傚倷鐒﹀鍧楀矗鎼淬劌绐楁慨妯垮煐閸ゅ秹寮堕崼娑樺妞も晝鍏橀幃妤呮晲鎼粹€茬爱闂佸綊顥撶划顖滄崲濞戞瑦缍囬柛鎾楀啫鐓傞梻浣侯攰濞呮洟鎮烽妸鈺佄﹂柟鐗堟緲缁犳娊鏌熺€涙ḿ绠樼憸鏉款槹娣囧﹪鎮欓鍕ㄥ亾閺嶎偅鏆滈柟鐑橆殔绾剧懓鈹戦悩宕囶暡闁稿孩顨嗙换娑㈠幢濡闉嶉梺缁樻尰閻熲晛顕i崼鏇為唶闁绘柨鍢叉慨銏ゆ⒑娴兼瑩妾紒顔芥崌瀵鍩勯崘鈺侇€撶紓浣割儏缁ㄩ亶宕戦幘璇查敜婵°倐鍋撻柦鍐枛閺屾洘绻涢悙顒佺彆闂佺ǹ顑呭Λ婵嬪蓟濞戞矮娌柛鎾椻偓濡插牆顪冮妶鍛寸崪闁瑰嚖鎷�
  • voice_data, data, fat, 0x100000, 3M

CSV是ESP32的分区表文件,ESP32 在 flash 的 默认偏移地址 0x8000 处烧写一张分区表。该分区表的长度为 0xC00 字节(最多可以保存 95 条分区表条目)。分区表数据后还保存着该表的 MD5 校验和,用于验证分区表的完整性。此外,如果芯片使能了 安全启动 功能,则该分区表后还会保存签名信息。分区表中的每个条目都包括以下几个部分:Name(标签)、Type(app、data 等)、SubType 以及在 flash 中的偏移量(分区的加载地址)。

从idf.py menuconfig里可以看到,ESP32有三种分区表可以选择,两种系统定义好的,一种自定义的,预先定义好的两个差别是是否包含OTA分区,产品应用的OTA肯定必不可少,但是平时测试,没必要包含OTA了

 

 

分区表中的SubType内容与具体Type有关,目前,esp-idf 仅仅规定了 “app” 和 “data” 两种子类型。当 Type 定义为 app 时,SubType 字段可以指定为 factory (0),ota_0 (0x10) … ota_15 (0x1F) 或者 test (0x20)。当 Type 定义为 

  • data
 时,SubType 字段可以指定为 ota (0),phy (1),nvs (2) 或者 nvs_keys (4)。其它数据子类型已预留给 esp-idf 未来使用。所以从文档里找不到这里用到的子类fat,于是只能从程序里倒推,打开esp_partition.h文件,可以找到fat的定义

 

 

 

这个音频文件比较大,有2.8MB,但是烧写速度还是比较快的,不是直接在ESP-IDF中烧录,跳转到git bash中烧录

 

编译完工程,给板子接上喇叭

 

语音文件烧写完成后,还需要烧写程序文件

 

程序烧写完成后就会听到“欢迎使用乐鑫语音合成”

随后就可以通过串口,往板子里输入汉字或者英文字符

可以连续输入,识别转化很快,就是有一点,汉字是连续发音的,英文字符是单个发音的,然后还有一点不完美的地方,就是这个音量很小,那当然是要调节一下了,在MediaHal.h找到了相关的操作函数,MediaHalSetVolume(int volume);最后测试,70的音量大小对于我接的这个喇叭听着刚刚好,那后面就都设置为70了。MediaHalSetVolume(70)。

一步步的体验学习过来,中间解决的bug越多,越能感受到ESP32-Korvo这块板子带来的吸引力

最新回复

谢谢分享   详情 回复 发表于 2021-5-6 17:34
点赞 关注
 
 

回复
举报

2548

帖子

0

TA的资源

五彩晶圆(初级)

沙发
 


 

点评

这个喇叭的声音听起来这么刺耳  详情 回复 发表于 2021-3-22 21:04
 
 
 

回复

303

帖子

0

TA的资源

一粒金砂(高级)

板凳
 

哈哈哈,喇叭都一样,这个TTS 还是很好用的

点评

第一次买喇叭,下次买带线和接口的了,不然用起来麻烦  详情 回复 发表于 2021-2-11 21:29
 
 
 

回复

2548

帖子

0

TA的资源

五彩晶圆(初级)

4
 
yangjiaxu 发表于 2021-2-11 17:31 哈哈哈,喇叭都一样,这个TTS 还是很好用的

第一次买喇叭,下次买带线和接口的了,不然用起来麻烦

 
 
 

回复

9854

帖子

24

TA的资源

版主

5
 

这个喇叭的声音听起来这么刺耳

点评

对,声音调大后更明显,但是就买了一个,不知道是喇叭还是驱动的问题,下次再买个不同的回来对比看下  详情 回复 发表于 2021-3-23 08:43
个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 
 
 

回复

7

帖子

0

TA的资源

一粒金砂(中级)

6
 
推荐你 科大讯飞XFS5152CE,体积小,中英文TTS合成
 
 
 

回复

2548

帖子

0

TA的资源

五彩晶圆(初级)

7
 
littleshrimp 发表于 2021-3-22 21:04 这个喇叭的声音听起来这么刺耳

对,声音调大后更明显,但是就买了一个,不知道是喇叭还是驱动的问题,下次再买个不同的回来对比看下

 
 
 

回复

659

帖子

0

TA的资源

纯净的硅(初级)

8
 

谢谢分享

 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 2/10 下一条
中星联华&ADI直播报名最后一周!
直播主题:大咖面对面,轻松玩转高速ADC性能测试
直播时间:3月25日(周二)14:00
活动奖励:京东卡、双肩包

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网 6

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表