xiaozhi-esp32 icon indicating copy to clipboard operation
xiaozhi-esp32 copied to clipboard

繁体中文显示方框

Open neil0306 opened this issue 9 months ago • 13 comments

Answers checklist.

  • [x] I have read the documentation XiaoZhi AI Programming Guide and the issue is not addressed there.
  • [x] I have updated my firmware to the latest version and checked that the issue is present there.
  • [x] I have searched the issue tracker for a similar issue and not found a similar issue.

XiaoZhi AI firmware version.

v1.5.2_esp-box-3.zip

Operating System used.

Linux

How did you build your project?

Command line with idf.py

If you are using Windows, please specify command line type.

None

Power Supply used.

Battery

What is the expected behavior?

希望可以正确显示繁体字。

What is the actual behavior?

目前我使用的硬件是乐鑫的box3, 我编译固件的时候用idf.py menuconfig 选择了繁体中文(zh-TW),刷入之后我发现本应该显示繁体字的地方用方框来替代了, 想知道有没有什么解决办法吗?

Image

Steps to reproduce.

按照官方教程,选择硬件型号为乐鑫的box3,选择zh-TW作为字体,然后按照教程编译,用浏览器刷入固件。

Debug Logs.


More Information.

No response

neil0306 avatar Mar 24 '25 09:03 neil0306

目前只能在 xiaozhi-fonts 里生成新的字体文件来解决,需要提交PR到那个project。

78 avatar Mar 24 '25 18:03 78

目前只能在 xiaozhi-fonts 里生成新的字体文件来解决,需要提交PR到那个project。

好的,我尝试研究一下怎么解决~

neil0306 avatar Mar 25 '25 02:03 neil0306

@78 虾哥你好,我已经生成了对应的.c字体文件,并提交了PR,但由于xiaozhi-fonts 中没有提供生成.p3文件的相关脚本,我无法直接编译固件来测试实际效果,麻烦您查看一下是否可用,如果不可用麻烦您提供一下反馈,谢谢~

neil0306 avatar Mar 25 '25 02:03 neil0306

請問最後有找到方法嗎? @78 @neil0306 我有嘗試將

  1. SourceHanSansTC-VF.ttf字體包
  2. 加入Big5.txt 轉換成unicode
  3. 修改 manged_components 內的 font.py、generate_font.py、CMakeList.txt
  4. 修改 main 內的 boards、display

最後還是依樣,簡體中文跟繁體字型一樣的,可以顯示出來,若不一樣,就會顯示框

ReMakeDoG avatar Mar 30 '25 10:03 ReMakeDoG

理论上只需要扩充GB2312.txt的内容,增加繁体字即可。

78 avatar Mar 30 '25 16:03 78

@78 你好,我有嘗試過了,也不行還是一樣,請問會有教學影片嗎?或是比較詳細的做法?

ReMakeDoG avatar Mar 30 '25 18:03 ReMakeDoG

@78 蝦哥您好 我也遇到了繁體方框的問題 想問有沒有更詳細的解決方式呢? 謝謝

lewis50093 avatar Apr 07 '25 08:04 lewis50093

@78 蝦哥您好 我也遇到了繁體方框的問題 想問有沒有更詳細的解決方式呢? 謝謝

目前群友的做法是重新生成繁体字体,2.0的版本考虑做成云端下载字体,不然固件太大了,无法OTA了。

78 avatar Apr 07 '25 16:04 78

@78 蝦哥您好 我也遇到了繁體方框的問題 想問有沒有更詳細的解決方式呢? 謝謝

目前群友的做法是重新生成繁体字体,2.0的版本考虑做成云端下载字体,不然固件太大了,无法OTA了。

謝謝蝦哥 有重新生成繁體字體,已可正常顯示 謝謝

lewis50093 avatar Apr 08 '25 01:04 lewis50093

@78 蝦哥您好 我也遇到了繁體方框的問題 想問有沒有更詳細的解決方式呢? 謝謝

目前群友的做法是重新生成繁体字体,2.0的版本考虑做成云端下载字体,不然固件太大了,无法OTA了。

謝謝蝦哥 有重新生成繁體字體,已可正常顯示 謝謝

我之前尝试了添加繁体字(如big5编码和香港增补字库),这时候只有繁体字是可以正常显示的,但此时的另一个问题是偶尔LLM的回答是简繁混合的,这就导致简体字会莫名变成另一个字,比如简体字“吗”变成其他字体。

我目前用的是自己部署的后端服务器,这时候我可以用opencc这类库强行把所有字体转成繁体……

如果用虾哥的服务器,我目前就只能把简繁体都添加到一起,最终就如虾哥所说,固件太大会刷机失败……

neil0306 avatar Apr 08 '25 01:04 neil0306

@78 蝦哥您好 我也遇到了繁體方框的問題 想問有沒有更詳細的解決方式呢? 謝謝

目前群友的做法是重新生成繁体字体,2.0的版本考虑做成云端下载字体,不然固件太大了,无法OTA了。

謝謝蝦哥 有重新生成繁體字體,已可正常顯示 謝謝

我之前尝试了添加繁体字(如big5编码和香港增补字库),这时候只有繁体字是可以正常显示的,但此时的另一个问题是偶尔LLM的回答是简繁混合的,这就导致简体字会莫名变成另一个字,比如简体字“吗”变成其他字体。

我目前用的是自己部署的后端服务器,这时候我可以用opencc这类库强行把所有字体转成繁体……

如果用虾哥的服务器,我目前就只能把简繁体都添加到一起,最终就如虾哥所说,固件太大会刷机失败……

沒錯 我也是用跟您一樣的方法 STT TTS都先翻譯成繁體 可以正常 但我請他講日文韓文就會變亂碼🤣🤣

lewis50093 avatar Apr 09 '25 08:04 lewis50093

韩文TTS还不支持,日语支持。 字体的话,需要等我们下个版本解决字体对多国语言的支持问题。

78 avatar Apr 09 '25 14:04 78

@78 蝦哥您好 我也遇到了繁體方框的問題 想問有沒有更詳細的解決方式呢? 謝謝

目前群友的做法是重新生成繁体字体,2.0的版本考虑做成云端下载字体,不然固件太大了,无法OTA了。

謝謝蝦哥 有重新生成繁體字體,已可正常顯示 謝謝

你好,可以详细讲讲如何生成繁体字体吗?

xrz1181 avatar Jun 11 '25 09:06 xrz1181

@78 蝦哥您好 我也遇到了繁體方框的問題 想問有沒有更詳細的解決方式呢? 謝謝

目前群友的做法是重新生成繁体字体,2.0的版本考虑做成云端下载字体,不然固件太大了,无法OTA了。

謝謝蝦哥 有重新生成繁體字體,已可正常顯示 謝謝

你好,可以详细讲讲如何生成繁体字体吗?

已完成全服務器及12款設備型號繁體化, 6000 繁體常用字足夠運行正常, 字體解決完還有很多關卡, 目前完成全切換Gemini/ChatGPT/Claude..等, 在不仰賴中國模型TTS回應最快在400ms, 含全程不使用LLM tool call 回應在1.2~1.5 s左右, 最後才進到MCP, 跟蝦哥的服務器不能比, 但如果有商用場景的中國模型限制, 可完成全獨立化

字體調整概述步驟 準備字體 / 準備字庫 / 使用LVGL (font.py) 生成 .c 文件 清除後重新編譯, 最大到8000字無虞, 但後來轉一些留給日文及符號, 細節較繁瑣, 越來越多繁中的需求, 看是否有意願加入繁體群組一起討論, 分享文檔圖片比較方便些, 有code update再PR分享過來

「ESP32-TW共享群」 https://line.me/ti/g2/qaQrJGYthsGF47s9t-VdETLEMWSnI5_q1unmTQ?utm_source=invitation&utm_medium=link_copy&utm_campaign=default

xljeff avatar Jun 11 '25 11:06 xljeff