From 47f10aed8131be5ef33475bb594fc11150b46794 Mon Sep 17 00:00:00 2001 From: songwei Date: Mon, 12 May 2025 16:45:33 +0800 Subject: [PATCH] update --- README_EN.md | 166 ++++++++++++++++++++++++++++++++++++++++++++++ res/duix_home.png | Bin 0 -> 17578 bytes 2 files changed, 166 insertions(+) create mode 100644 README_EN.md create mode 100644 res/duix_home.png diff --git a/README_EN.md b/README_EN.md new file mode 100644 index 0000000..ee59bff --- /dev/null +++ b/README_EN.md @@ -0,0 +1,166 @@ +# Duix - Silicon-Based Digital Human Real-time Interaction SDK ๐ŸŒ๐Ÿค– + +
+ +
+ +
+ +
+ +
+

่ฟ™ๆ˜ฏไธ€ๆฎตๆœ‰่ƒŒๆ™ฏ้ขœ่‰ฒ็š„ๆ–‡ๅญ—ใ€‚

+ + ๆ่ฟฐๅ›พ็‰‡ +
+ + + ## ๐Ÿš€ Online Experience
+ ๐Ÿ˜„ [DUIX Digital Human Real-Time Interaction Platform:[DUIX.COM]](https://duix.com/)
+ + ## ๐Ÿ“– Documentation
+ ๐Ÿ˜„ [Real-time Interaction SDK๏ผš[Android]](./duix-android/dh_aigc_android/README.md)
+ ๐Ÿ˜„ [Real-time Interaction SDK๏ผš[iOS]](./duix-ios/GJLocalDigitalDemo/GJLocalDigitalSDK.md)
+ ๐Ÿ˜„ [Digital Human Rapid Cloning and Video Synthesis Open Source Project (Non-Real-Time Interaction):[HeyGem.ai]](https://github.com/GuijiAI/HeyGem.ai)

+ +## [Duix App](https://apps.apple.com/app/id6451088879) +Welcome to the Duix App. Feel free to download it and experience the advanced digital human interaction features we offer.

+ +## Support +Join our wechat or Discord community for support and discussions. Follow Twitter,to watch the latest digital human videos created based on the open-source capabilities of DUIX.
+ +๐Ÿ’ฌ Email : james@duix.com + +๐Ÿ’ฌ [Join our WeChat ](https://github.com/GuijiAI/duix.ai/blob/main/res/18็พคไบŒ็ปด็ .jpg)
+ +๐Ÿ˜„ [Join our Discord](https://discord.gg/8jh28PVsMU)
+ +โœจ [Follow us on Twitter](https://twitter.com/HuapengSima)

+ +## Introduction +DUIX, short for โ€œDialogue User Interface Systemโ€, is an AI-powered digital human interaction platform created by Silicon-based Intelligence. By open-sourcing the capabilities of digital human interaction, developers can easily integrate large-scale models, automatic speech recognition (ASR), and text-to-speech (TTS) capabilities, enabling real-time interaction with digital humans. It supports one-click deployment on multiple platforms including Android and iOS, allowing each developer to effortlessly create intelligent and personalized digital human agents, and apply them in various industries.

+ +We also provide you with a one-stop comprehensive digital human multimodal real-time interaction SDK integration solution - DUIX Interactive Digital Human SDK. This SDK product is based on technologies such as speech recognition (ASR), speech synthesis (TTS), natural language understanding (NLP), AIGC, and Large Language Model (LLM) , achieving an intelligent human-computer interaction experience that is "able to hear, see, speak, and understand you". It is suitable for multiple enterprise application scenarios such as intelligent customer service and smart screens. +View details:

+๐Ÿ˜„[Quickly set up DUIX digital human conversations](https://duix.com)
+๐Ÿ˜„[DUIX SDK version and price](https://duix.com/pricing)
+๐Ÿ˜„[DUIX SDK Open Document](https://docs.duix.com/api-reference/api/Introduction)

+ + + + +## Project features + +- Low deployment cost: No need for customers to provide technical teams for cooperation, supports low-cost rapid deployment on various terminals and large screens. +- Low network dependence: Suitable for virtual assistant self-service in scenarios such as subways, banks, and government affairs. +- Diverse functions: Can meet the diverse needs of video, media, customer service, finance, radio, and television in multiple industries according to customer requirements.

+ +## Source Code Directory Description + +``` +duix-android: android demo +duix-ios: ios demo +``` +
+ +## Open Documentation Entry + +For android, refer to [README_en.md](./duix-android/dh_aigc_android/README_en.md) +For ios, refer to [GJLocalDigitalSDK_en.md](./duix-ios/GJLocalDigitalDemo/GJLocalDigitalSDK_en.md)

+ +## How to deploy +This document provides a detailed description of the integration process for developers working on this project. It is important to note that each developer may encounter different stages of the process during integration. This document is intended for developers to use as a reference.
+[Interface Reference Handbook_EN](./Interface%20Reference%20Handbook_EN.pdf)

+ +## Download Digital Human Local Model +We offer a selection of digital human models for download and use. We will update the local model packages from time to time so that you can download and utilize the latest models. Below is the list of currently available local model packages: +#### male +| | | | | | +|:-------:|:-------:|:-------:|:-------:|:-------:| +| **andrew**
[Download](https://digital-public.obs.cn-east-3.myhuaweicloud.com/dhp-tools/dhp-tools/651705983152197/61025/651705983152197_ccf3256b2449c76e77f94276dffcb293.zip) | **MoneyGod**
[Download](https://digital-public.obs.cn-east-3.myhuaweicloud.com/dhp-tools/dhp-tools/651644573884485/61002/651644573884485_2387469906049706416017f105e5340f.zip) | **Su Shi**
[Download](https://digital-public.obs.cn-east-3.myhuaweicloud.com/dhp-tools/dhp-tools/651660515688517/61011/651660515688517_825de648c30be80a89110dd0e63ecb3b.zip) | **Eric**
[Download](https://digital-public.obs.cn-east-3.myhuaweicloud.com/duix/digital/model/1719193748558/airuike_20240409.zip) | **Zi Xuan**
[Download](https://digital-public.obs.cn-east-3.myhuaweicloud.com/duix/digital/model/1719194036608/zixuan_20240411v2.zip) | + +|| +|:-------:| +**Ming Xuan**
[Download](https://digital-public.obs.cn-east-3.myhuaweicloud.com/duix/digital/model/1719194633518/mingxuan_20240624.zip) + +#### female +| | | | | | +|:-------:|:-------:|:-------:|:-------:|:-------:| +| **Arya**
[Download](https://digital-public.obs.cn-east-3.myhuaweicloud.com/dhp-tools/dhp-tools/651637733658693/61000/651637733658693_2e0a4278a73411a2ff04ef1a849d2a6d.zip) | **Shirley**
[Download](https://digital-public.obs.cn-east-3.myhuaweicloud.com/dhp-tools/dhp-tools/651686686687301/61026/651686686687301_846161843f9ffdaaeace716bf3436be5.zip) | **Guanyin**
[Download](https://digital-public.obs.cn-east-3.myhuaweicloud.com/dhp-tools/dhp-tools/651622691811397/60996/651622691811397_ebe9bd2db8e26c1a7b07932b4a55c45c.zip) | **Sophie**
[Download](https://digital-public.obs.cn-east-3.myhuaweicloud.com/duix/digital/model/1719193425133/sufei_20240409.zip) | **Mu Rong Xiao
[ไธ‹่ฝฝ](https://digital-public.obs.cn-east-3.myhuaweicloud.com/duix/digital/model/1719193516102/murongxiao_20240410.zip)** | + +| | | | | +|:-------:|:-------:|:-------:|:-------:|:-------:| +| **Cold Flame**
[Download](https://digital-public.obs.cn-east-3.myhuaweicloud.com/duix/digital/model/1719193451931/lengyan_20240407.zip) | **Amelia**
[Download](https://digital-public.obs.cn-east-3.myhuaweicloud.com/duix/digital/model/1719193625986/amelia_20240411.zip) | **Zhao Ya
[Download](https://digital-public.obs.cn-east-3.myhuaweicloud.com/duix/digital/model/1719194234727/zhaoya_20240411.zip)** | **Yi Yao
[Download](https://digital-public.obs.cn-east-3.myhuaweicloud.com/duix/digital/model/1719194263441/yiyao_20240418.zip)** | **Xin Yan
[Download](https://digital-public.obs.cn-east-3.myhuaweicloud.com/duix/digital/model/1719194373660/xinyan_20240411.zip)** + +| | | | +|:-------:|:-------:|:-------:|:-------:| +| **Xiao Xuan
[Download](https://digital-public.obs.cn-east-3.myhuaweicloud.com/duix/digital/model/1719194313414/xiaoxuan_20240418.zip)** | **Si Yao
[Download](https://digital-public.obs.cn-east-3.myhuaweicloud.com/duix/digital/model/1719194450521/siyao_20240418.zip)** | **Shi Ya
[Download](https://digital-public.obs.cn-east-3.myhuaweicloud.com/duix/digital/model/1719194516880/shiya_20240409.zip)** | **Dear Sister
[Download](https://digital-public.obs.cn-east-3.myhuaweicloud.com/duix/digital/model/1719194007931/bendi1_0329.zip)** | + + +Please download the model files according to your needs. We recommend that you carefully read the accompanying documentation after downloading to ensure the correct installation and use of the models.

+ +### Business case presentation +### Mobile Phone and General Terminal Screen Cases +| | | | | +|:-------:|:-------:|:-------:|:-------:| +| **Digital Lawyer
[Download](https://github.com/GuijiAI/duix.ai/blob/main/res/540p/lvshi/lvshi.mp4)** | **Digital Doctor
[Download](https://github.com/GuijiAI/duix.ai/blob/main/res/540p/yisheng/yisheng.mp4)** | **Virtual Companion
[Download](https://github.com/GuijiAI/duix.ai/blob/main/res/540p/peiban/peiban.mp4)** | ** Speaking Tutor
[Download](https://github.com/GuijiAI/duix.ai/blob/main/res/540p/laoshi/laoshi.mp4)** | + +### Low-end Terminal Screen Cases +| | | | | +|:-------:|:-------:|:-------:|:-------:| +| **God of Wealth
[Download](https://github.com/GuijiAI/duix.ai/blob/main/res/270p/caishen/caishen.mp4)** | **Guanyin Bodhisattva
[Download](https://github.com/GuijiAI/duix.ai/blob/main/res/270p/guanyin/guanyin.mp4)** | **Su Shi
[Download](https://github.com/GuijiAI/duix.ai/blob/main/res/270p/sushi/sushi.mp4)** | **Virtual Girlfriend
[Download](https://github.com/GuijiAI/duix.ai/blob/main/res/270p/nvyou/nvyou.mp4)** | + +## Frequently Asked Questions +#### 1. Are free avatar models available for commercial use? Do they support digital human customization? Are they based on photos or videos?
+Answer: The freely provided avatar models are available for commercial use worldwide at no cost (Enterprises with more than 100,000 users or annual revenue exceeding $10 million are required to sign a commercial license agreement). If needed, we can support digital human customization. Our digital human customization is based on videos. You can customize a unique digital human for use in the SDK. However, the customized digital human service is a paid service. You can contact us by scanning the QR code on WeChat.
+ + +#### 2. How to customize a digital avatar?
+Answer: To customize a silicon-based digital human, you need to shoot a 3-5 minute video featuring a real person speaking directly to the camera. The specific posture and content of the speech can be determined according to the actual usage scenario. For example, if the video is for legal consultation purposes, you can choose to appear in formal attire and speak about legal-related content, ensuring consistency with the overall context.
+ +#### 3. How is the customization of digital avatars charged?
+Answer: We provide digital human customization that includes the avatar's appearance and voice, compatible with our SDK open-source interface. For additional customization needs, you can contact our customer service via email.
+ +#### 4. How can the digital avatar be updated?
+Answer: Currently, the open-source version mainly provides public models. Customization is available upon request.
+ +#### 5. Is there an API interface for avatar cloning
+Answer: The training service currently only supports deployment on our internal servers for invocation.
+ +#### 6. Does the broadcasted wav file support streaming data?
+Answer: Streaming support is currently under modification and optimization, and it is not supported at the moment.
+ +#### 7. Are there callback methods for the start and end of the broadcast?
+Answer: Callback methods for the start and end of the broadcast are detailed in the SDK documentation.
+ +#### 8. Are there any API controls for the digital human's actions?
+Answer: The API for controlling digital human actions is not supported at the moment.
+ +#### 9. How to replace downloaded files?
+Answer: The replacement of downloaded files is detailed in the code.

+ +#### 10ใ€Would you like to learn about the integrated solution or more advanced versions?
+Answer: Please visit https://duix.com to experience more features.

+ + +For more FAQs, please refer to ๐Ÿ“‘ [APl Documentation](https://docs.duix.com/api-reference/api/Introduction)

+ +## Version Record + +- **3.0.4**: Fixed an issue where some devicesโ€™ default gl float low precision caused the avatar to not display properly. +- **3.0.3**: Optimized local rendering

+ +## Acknowledgments + +- We have drawn on [wenet](https://github.com/wenet-e2e/wenet) for audio features.

+ +## Contact Us + +``` +james@duix.com +``` + + +## Star History + +[![Star History Chart](https://api.star-history.com/svg?repos=GuijiAI/duix.ai&type=Date)](https://star-history.com/#GuijiAI/duix.ai&Date) diff --git a/res/duix_home.png b/res/duix_home.png new file mode 100644 index 0000000000000000000000000000000000000000..b02934ac6239e4640000cb84445927fc4c13700a GIT binary patch literal 17578 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

O??-Vwy@g8TWz_P` zBv2CX7@e1|B5#h_XZj{-lK~N2bZQQH=yxA`kZuK17IwtV?B+@(h*t;3Pi%E1WptQc zv5tGfn)v@dK~~;%fM6m!9r!(}@#vt`cPB%d=EY@#no=#F=f=3luVz#LmfcjF;)I38h-8hq7Izmoqttnp%4*iia@jO(4Dq)}2_oQ}G2Haelga=G52HM$%Vb!wV zIuwTTYR1>IsHESx&vh)!US_?|r;fPAH^;1#TX@05`{d{`J6By_R3hS!kG&%5cK?^ zycB0A@<(DCzFFUUzqk*?4QKGPp@cfWZpm`nlqm;e9-Oi4sRR3Ps`WdyIe}?qHG8l#IJh0WAd5`+2I8>50J{LyJwKvsu}b zT_;$&CTQzIL_uaZjIu`;j&d)GX@hUu{f5d!+i9nrF8Y_E%lqEiO~?w%apq@rwW>c9 zAh)BSqSVF&u2Tw?Ib#av^1yW3IpxnOMV+Ep0I7D{t%|M-5ZWWt z#ec@{80F{!(O2yOdQcN+`IsiuSb6b_INSA&Uc9S94tUc8LG7`5;_{V@KeFvuPBlJF zLZ4Nx7$Bfv0X@n)F7O%5xZ!?@zw7=~JsMq3Hky~Lb=w~L?#jxlw&RXFp8hYTf}?2HGv-lc@)<@J#WEY4Ymle{ zj-pI;bBf6MqF+uxt%dv~X&3L+N}H3NT=Y8q+PlOM#{W zZL{K?75a`;XKJ%wQF)sLIFwak60*kAG`OME)>-~0Qlb5!S{4(YrB7oxm(+qzH7!Db zqp&n0th+iGePiUdEW+}RP|O_s17dQC(t1$ZcH3=7baZrFR20QA5{*(a?;>y3Ct~jH zkMc4S$Gxsz$upB(l*5W_m)u;ta*WH$=VcX4OcHK0PHx|Atr%>@7lf6jcCyZ%cHo#{ zMpourdwjnoJ4s9~S)3SVaq;OO?HHU}v=T7P)y0+i#fem&QO!oA`zcQj=#sf$z)r6} z#f&aaB=ZI^@tK>={j$LNof=WY_V(kJd#h(Up*jdbQxl1wbYoZP7+f(J}^F~`OyG*hxM*I$HR z_H>lTf=|x3xTPPA0q=7mgvn)DZd(+^y51*bCY=W^Q8*1+*s!qGaj&=zJnasOiW0YD zX_gIo|C?1X0hc$Pe`d0aB&XP>ygK&jlZln-S~lxgk+4nAZgXs{;)6AE z<`$4-ylsE@KK}?NYXZQYr5ksI)zqx7O_0BC&S`^EcS`xoan}&G3Qx*mM7wKZGV)PE z_<&y+n9a$$Z1&<0nfJ+7#W1Fx9B(A2A#?o-SVo>?g~oK~)NFS3#M}MS zoZ=@(Kxw^d*JW{n8HQ3CuVfR RdR71c002ovPDHLkV1mQ=