Group Details Private
administrators
Member List
-
tunadodev
Quy định chung
-
Luôn sử dụng ID test (config variant appTest) trong quá trình phát triển
-
Chỉ sử dụng ID thật khi đã pass test và build aab (trừ 1 số trường hợp debug cần check ad thật)
-
Không để bất kỳ content nào của app đè lên ads, cả loading (Chỉ chấp nhận các loại dialog, popup...có thể bật tắt)
-
Ads không được đè lên content app mà ko có scroll
-
Không đặt ads ở ngay cạnh trên/dưới thanh điều hướng, vị trí user dễ tương tác
-
Không đặt ads tại các màn không cung cấp nội dụng, chức năng của app, như các nội dung nhúng, webview
-
Ads không được hiển thị ở ngoài app
-
Không để ads xuất hiện bất ngờ khiến user dễ click nhầm vào ads , phải có loading giữ khoảng trống cho ads
-
Preload ads hợp lý để tỉ lệ showrate không quá thấp
-
Danh sách ID test
App Open ca-app-pub-3940256099942544/3419835294 Banner ca-app-pub-3940256099942544/6300978111 Interstitial ca-app-pub-3940256099942544/1033173712 Interstitial Video ca-app-pub-3940256099942544/8691691433 Rewarded ca-app-pub-3940256099942544/5224354917 Rewarded Interstitial ca-app-pub-3940256099942544/5354046379 Native Advanced ca-app-pub-3940256099942544/2247696110 Native Advanced Video ca-app-pub-3940256099942544/1044960115
Các loại ad
Ad Banner
- Không nên đặt ad banner ngay cạnh nội dung ứng dụng và các yếu tố tương tác
Banner ad guidance
Ad Interstitial
- Cần preload hợp lí đảm bảo khả năng show cao nhất có thể
- Set null ad interstitial sau khi đã được show và load lại nếu cần thiết
- Chỉ show interstitial khi có hành động chuyển màn từ tương tác của user
Interstitial ad guidance
Ad Native
- Luôn có loading trong khi chờ load ad native
- background ad phải khác background content app
AdMob native ads policy compliance checklist
Ad Reward
-
Cần có biểu tượng thông báo AD tại vị trí show ad reward
-
Ad reward có thời gian load lâu hơn so với các ad khác => cần preload hợp lí
-
Set null sau khi show reward và load lại nếu cần thiết
Overview of rewarded ad units
Policies for ads that offer rewards
Ad Open (ad resume)
- Luôn disable tại các màn splash, IAP, policy, readme...
- Disable khi open policy, more app, share app, feedback... từ menu, drawer, setting...
-
-
HungBui
1. Các bài toán đã thực hiện
Bài toán Thực trạng Tình trạng Kết quả Cải thiện Người thực hiện Base game Các game được phát triển một cách tự phát, không có quy trình cụ thể, khó khăn cho fixbug và phát triển Đã giải quyết được cơ bản về quy trình phát triển game với hệ thống FSM và observer design pattern Game đã có luồng rõ ràng, quá trình phát triển game được rút ngắn, thời gian fixbug nhanh, được đánh giá dễ sử dụng từ dev - Tự động tạo các class chính - Review base mục đích cải thiện, tối ưu và sử dụng thêm các design pattern hợp lý giúp tăng tính mạch lạc và dễ sử dụng của base Hùng Bùi Data game Các game khó có thể share giữa các khóa khác nhau do data có thể khác nhau Đã giải quyết bằng cách sử dụng chung bộ data model cho tất cả các game, bộ data đảm bảo cho việc dễ sử dụng và tổng quát Các game có thể chạy độc lập với data mock hoặc data test. Các game dễ dàng tách và đóng gói (cùng với base) Chưa có kế hoạch Hùng Bùi Navigation Để chuyển giữa các khóa học đang sử dụng bằng cách gọi thẳng tên scene và khó kiểm soát các yêu cầu khởi tạo của khóa học, phức tạp và khó khăn trong quá trình chuyển đổi giữa các khóa Đã chuyển chung cơ chế chuyển scene do 1 đối tượng quản lý, ở đây sẽ kiểm tra tất cả các điều kiện khởi tạo khóa học cần thiết Thời gian chuyển các khóa được tối ưu, phát triển khóa mới không lo lắng ảnh hưởng đến khóa cũ, tách biệt data của các khóa khác nhau, không cần thiết sẽ không khởi tạo Review lại luồng data học và data đồng bộ của khóa Abc và MStory để tách biệt ra với một số case đặc biệt Hùng Bùi Event Mỗi một event có hệ thống properties khác nhau, mỗi khi có một properties mới sẽ phải viết lại method cho event này Đã tạo 1 base event với việc chia các properties chung và thiết kế linh hoạt các properties khác nhau để có thể sử dụng chung method cho các event khác nhau Giảm thời gian phát triển cho chức năng push event Chưa có kế hoạch Tiến ND AI Speak Nhiều game sử dụng công nghệ AI Speak nhưng mỗi game sử dụng khác nhau dẫn đến không đồng nhất về luồng và gây khó khăn cho quá trình debug Đã tạo 1 module chung bao gồm đầy đủ từ xin quyền đến thực thi AI Speak với kịch bản online và offline cụ thể Dễ dàng trong việc sử dụng module với input và output rõ ràng, giảm thời gian phát triển chức năng liên quan đến AI Speak Chưa có kế hoạch Hiếu HS Tối ưu dung lượng build Các assets trong game đang được build cùng game. Khi phát triển thêm tính năng sẽ tăng build size Sử dụng Addressable nhằm tách các assets của game ra bên ngoài và download về khi cần Build size đã giảm và ổn định hơn. Khi thêm tính năng mới build size sẽ không tăng nhiều Chưa có kế hoạch Hải Ngô Support Service Các phần hỗ trợ trong game đang được phát triển riêng biệt, không có quy chuẩn cụ thể, khó khăn trong việc phát triển và fix bug Các phần hỗ trợ được quy chuẩn về dạng service, có Service manager để quản lý. Các service được implement qua Interface để dễ dàng nâng cấp, thay thế khi cần Đã Implement được các services sau: Addressables, Assetbundle, DataSync, Download, EventTracking, Localization, Popup, UserData Cần đưa các service vào toàn bộ hệ thống thay vì chỉ dùng một phần trong MJ5 Hải Ngô, Tùng Đỗ Thay đổi visual trong game theo event Khi thay đổi event cần submit lại app. Mỗi khi có event mới tốn thời gian trong việc chỉnh sửa lại app, không tận dụng được event đã làm từ trước Event được quy chuẩn về dạng Theme và hiển thị theo Config. Dễ dàng thêm Event mới. Các event được điều khiển bằng data và hiển thị khi cần thiết Đã hoàn thành theme cho chủ đề giáng sinh Đưa theme ra ngoài và download về khi cần. Bổ sung thêm các theme theo chủ đề khác Hải Ngô Tối ưu share và tải tài nguyên Game và tài nguyên có thể share cho nhau nhưng vẫn phải tải lại từ package khác nhau với mỗi khóa học Hệ thống share game, tải tài nguyên chỉ cần 1 lần, các lần sau không cần tải lại QA Testing cho khóa MJ5 Cho pack Event Season + MSpeak (có điều kiện từ data) Hải Ngô (12/12/24) 2. Các bài toán mong muốn thực hiện
Bài toán Thực trạng Mong muốn Data user Data của tất cả các khóa đang để chung model dù không dùng gây nặng cho user đặc biệt với các user học nhiều khóa, lượng bài học hoàn thành nhiều, hiệu năng giảm - Tách biệt data của các khóa và phần data tặng thưởng riêng, khi cần data nào sẽ load data đó.<br>- Khi bổ sung khóa mới dễ đồng bộ và fixbug, không ảnh hưởng hiệu năng UI Map Các map khá giống nhau về mặt UI và chức năng nhưng mỗi map vẫn trên 1 base code khác nhau Gen map tự động theo data setting hoặc kéo thả Tặng khóa học Khi tặng khóa học các điều kiện tặng ở client khá phức tạp, phụ thuộc nhiều bên như client và server Xây dựng hệ thống tặng khóa dễ thay đổi điều kiện và dễ setup Game framework Mỗi game phải order từ nhiều bên (nội dung > kịch bản > đồ họa > dev) gây mất thời gian phát triển và test thử Xây dựng framework để bộ phận kịch bản + nội dung tự tạo game mong muốn theo quy tắc nhất định Tối ưu quy trình dev game Các object game lặp lại qua nhiều game nhưng dev vẫn phải code lại hoặc copy Hệ thống các object chung, tái sử dụng, giảm thời gian dev game -
thuyvu
Version 1.0.0:
Ngày phát hành HĐH Mục đích cập nhật 8/11/2024
IOS
- Go live version đầu tiên lên IOS và Android
8/11/2024 Android -
dao.tran
1. Zero-shot Prompting: Khởi Đầu Từ Con Số 0
Bạn không cần cung cấp bất kỳ ví dụ nào, chỉ cần đặt câu hỏi và ChatGPT sẽ tự động trả lời dựa trên hiểu biết chung. Đây là phương pháp đơn giản nhất để bắt đầu.
Ví dụ ứng dụng:
"Tạo biên bản cuộc họp tuần này cho bộ phận kế toán."- Áp dụng: Tạo một biên bản cuộc họp mới mà không cần cung cấp thông tin trước đó. Hữu ích khi bạn muốn tạo nhanh một tài liệu tiêu chuẩn.
2. Few-shot Prompting: Đưa Ví Dụ Để AI Hiểu Rõ
Nếu bạn muốn kết quả cụ thể hơn, hãy đưa vài ví dụ minh họa. Ví dụ này giúp AI hiểu được bạn mong muốn kết quả như thế nào và điều chỉnh câu trả lời chính xác hơn.
Ví dụ ứng dụng:
"Dưới đây là mẫu email gửi báo cáo doanh thu hàng tuần. Hãy viết một email tương tự để thông báo kết quả tháng này."- Áp dụng: Khi bạn cần gửi báo cáo hàng tháng hoặc thông báo dựa trên mẫu có sẵn. Giúp chuẩn hóa các văn bản và tiết kiệm thời gian.
3. Chain-of-Thought Prompting: Nghĩ Từng Bước
Yêu cầu ChatGPT giải thích cách suy nghĩ từng bước để đi đến kết quả. Kỹ thuật này giúp AI xử lý tốt các bài toán phức tạp, giống như khi bạn giải toán từng bước một.
Ví dụ ứng dụng:
"Giải thích quy trình xử lý yêu cầu mua hàng từ phòng kinh doanh. Bắt đầu từ lúc nhận yêu cầu đến khi hoàn tất mua hàng."- Áp dụng: Khi cần giải thích hoặc chuẩn hóa quy trình nội bộ, giúp các bộ phận backoffice hiểu rõ từng bước công việc.
4. Meta Prompting: Hướng Dẫn Tư Duy Của AI
Meta prompting cho phép bạn điều chỉnh cách AI xử lý câu hỏi, giúp nó đi đúng hướng hơn để đưa ra câu trả lời phù hợp.
Ví dụ ứng dụng:
"Viết một email thông báo cho tất cả nhân viên về việc thay đổi quy trình làm việc. Hãy đảm bảo rằng email ngắn gọn và dễ hiểu."- Áp dụng: Đảm bảo nội dung thông báo tuân theo tiêu chuẩn của doanh nghiệp, phù hợp với từng đối tượng nhận.
5. Self-Consistency: Chọn Lựa Câu Trả Lời Tốt Nhất
AI sẽ tạo ra nhiều câu trả lời khác nhau cho cùng một câu hỏi, sau đó tự đánh giá và chọn lựa câu trả lời tốt nhất.
Ví dụ ứng dụng:
"Hãy tạo ba kế hoạch làm việc cho bộ phận hành chính và sau đó chọn kế hoạch phù hợp nhất với mục tiêu giảm thời gian xử lý công việc."- Áp dụng: Khi bạn cần nhiều lựa chọn trước khi đưa ra quyết định cuối cùng. Tăng tính sáng tạo và đa dạng hóa phương án làm việc.
6. Generate Knowledge Prompting: Yêu Cầu Tạo Thêm Thông Tin
Bạn có thể yêu cầu ChatGPT bổ sung thêm thông tin chi tiết hoặc mở rộng một chủ đề nào đó, giúp câu trả lời phong phú và sâu sắc hơn.
Ví dụ ứng dụng:
"Hãy tạo báo cáo tổng quan về xu hướng ứng dụng công nghệ trong quản lý hành chính doanh nghiệp."- Áp dụng: Sử dụng khi cần báo cáo nghiên cứu và tìm kiếm thêm kiến thức về các xu hướng mới, giúp bộ phận backoffice cập nhật thông tin.
7. Prompt Chaining: Kết Nối Nhiều Lệnh
Hãy kết hợp nhiều câu hỏi và câu trả lời lại với nhau. Kết quả của câu hỏi trước sẽ trở thành đầu vào của câu hỏi sau, giúp bạn giải quyết các vấn đề phức tạp hơn.
Ví dụ ứng dụng:
"Bước 1: Phân tích số lượng hợp đồng khách hàng trong quý vừa qua. Bước 2: Đưa ra đề xuất cải thiện quy trình xử lý hợp đồng dựa trên phân tích đó."- Áp dụng: Áp dụng cho các quy trình phân tích số liệu và đề xuất cải tiến trong hoạt động của bộ phận backoffice.
8. Tree of Thoughts: Xây Dựng Sơ Đồ Tư Duy
Hãy yêu cầu ChatGPT suy nghĩ theo nhiều hướng khác nhau. Kỹ thuật này giúp nó có cái nhìn toàn diện hơn trước khi đưa ra câu trả lời cuối cùng.
Ví dụ ứng dụng:
"Có những cách nào để tối ưu hóa quy trình lưu trữ tài liệu trong doanh nghiệp? Hãy đưa ra các lựa chọn và đánh giá từng cách."- Áp dụng: Giúp tìm kiếm và phân tích nhiều phương án cải thiện quy trình nội bộ như lưu trữ, quản lý tài liệu.
9. Retrieval Augmented Generation: Truy Xuất Thông Tin
AI có thể sử dụng các nguồn thông tin bên ngoài để bổ sung kiến thức, giúp câu trả lời cập nhật và chính xác hơn.
Ví dụ ứng dụng:
"Hãy tạo báo cáo so sánh các phần mềm quản lý công việc hiện có trên thị trường."- Áp dụng: Khi cần sử dụng các thông tin cập nhật từ bên ngoài để hỗ trợ quyết định lựa chọn công cụ cho doanh nghiệp.
10. Automatic Reasoning and Tool-use: Sử Dụng Công Cụ Tự Động
ChatGPT có thể tự suy luận và sử dụng các công cụ hỗ trợ để tìm kiếm hoặc xác thực thông tin trước khi trả lời.
Ví dụ ứng dụng:
"Tính toán chi phí dự trù cho việc nâng cấp hệ thống quản lý tài liệu nội bộ trong vòng 6 tháng tới."- Áp dụng: Khi cần thực hiện các phép tính phức tạp hoặc sử dụng các công cụ để tính toán chi phí cho dự án backoffice.
11. Automatic Prompt Engineer: Tối Ưu Hóa Câu Lệnh Tự Động
AI tự điều chỉnh prompt dựa trên phản hồi của bạn, giúp kết quả ngày càng chính xác hơn mà không cần sự can thiệp nhiều từ người dùng.
Ví dụ ứng dụng:
"Tự tạo các hướng dẫn về quy trình nghỉ phép cho nhân viên mới, dựa trên quy định của công ty."- Áp dụng: Giúp AI tự động điều chỉnh và tạo ra nội dung quy trình, giảm bớt khối lượng công việc của phòng hành chính.
12. Active-Prompt: Điều Chỉnh Theo Phản Hồi
AI sẽ tự động điều chỉnh prompt theo phản hồi trước đó, từ đó tối ưu hóa kết quả đầu ra.
Ví dụ ứng dụng:
"Hãy điều chỉnh nội dung quy trình làm việc với nhà cung cấp sau khi đã nhận phản hồi từ bộ phận mua hàng."- Áp dụng: Khi cần tối ưu hóa quy trình sau mỗi lần điều chỉnh hoặc nhận phản hồi từ các bộ phận khác.
13. Directional Stimulus Prompting: Hướng Dẫn Theo Ý Muốn
Hãy định hướng rõ ràng mong muốn của bạn để AI tập trung vào một hướng giải quyết cụ thể.
Ví dụ ứng dụng:
"Tạo một kế hoạch đào tạo cho nhân viên hành chính mới, tập trung vào việc sử dụng phần mềm quản lý công việc."- Áp dụng: Khi muốn AI tập trung vào một chủ đề hoặc kỹ năng cụ thể trong hoạt động đào tạo nhân viên.
14. Program-Aided Language Models: Sử Dụng Công Cụ Hỗ Trợ
ChatGPT có thể tích hợp các chương trình hỗ trợ để giúp xử lý các nhiệm vụ phức tạp hơn, ví dụ như các bài toán kỹ thuật hay phân tích dữ liệu lớn.
Ví dụ ứng dụng:
"Sử dụng các báo cáo hiện có để dự đoán khối lượng công việc của bộ phận nhân sự trong 3 tháng tới."- Áp dụng: Giúp phân tích dữ liệu và dự đoán khối lượng công việc, hỗ trợ trong việc quản lý nguồn lực.
15. ReAct: Phản Ứng và Suy Luận
Kết hợp giữa phản ứng nhanh và suy luận chặt chẽ, kỹ thuật này giúp AI linh hoạt điều chỉnh câu trả lời phù hợp với ngữ cảnh.
Ví dụ ứng dụng:
"Dựa trên báo cáo khảo sát nhân viên về mức độ hài lòng với quy trình hiện tại, hãy đề xuất các cải tiến cần thực hiện."- Áp dụng: Sử dụng phản hồi thực tế từ nhân viên để điều chỉnh quy trình làm việc, giúp bộ phận backoffice nâng cao hiệu quả.
16. Reflexion: Phản Hồi Từ Kinh Nghiệm
AI sẽ "học" từ những phản hồi trước đó để cải thiện dần dần, giúp kết quả ngày càng chính xác và phù hợp hơn.
Ví dụ ứng dụng:
"Dựa trên kết quả đánh giá năng lực của nhân viên trong quý trước, hãy đề xuất kế hoạch đào tạo phù hợp cho quý tới."- Áp dụng: Khi muốn AI học hỏi từ các phản hồi trước đó để đưa ra những kế hoạch tối ưu hơn cho tương lai.
17. Multimodal CoT: Sử Dụng Nhiều Dạng Dữ Liệu
Kỹ thuật này giúp ChatGPT không chỉ xử lý văn bản mà còn có thể sử dụng dữ liệu từ nhiều nguồn khác nhau như hình ảnh, âm thanh để đưa ra câu trả lời.
Ví dụ ứng dụng:
"Phân tích và đưa ra đề xuất cải thiện hiệu suất làm việc của phòng hành chính dựa trên dữ liệu thu thập từ các cuộc họp tuần trước."- Áp dụng: Khi cần phân tích dữ liệu từ nhiều nguồn khác nhau để đưa ra quyết định chính xác hơn.
18. Task-driven Prompting: Điều Chỉnh Theo Nhiệm Vụ Cụ Thể
AI điều chỉnh prompt tùy theo nhiệm vụ cụ thể, giúp giải quyết các yêu cầu chi tiết một cách chính xác và nhanh chóng hơn.
Ví dụ ứng dụng:
"Tạo checklist công việc cho buổi họp đánh giá kết quả hoạt động của bộ phận nhân sự."- Áp dụng: Khi cần tạo danh sách công việc cụ thể cho các nhiệm vụ thường nhật hoặc sự kiện đặc biệt.
Facebook Group
-
-
dao.tran
Groups
-
FB Group: Bình Dân Học AI
A general group for AI learning and discussions.
Join here. -
FB Group: AI4E
Focuses on advanced AI, providing new AI models and open-source tools.
Join here. -
FB Group: Vũ Trụ AI - Ứng Dụng AI Tối Ưu Hóa Công Việc
Dedicated to optimizing work through AI applications.
Join here.
Tools
-
- Pros: Excellent for planning, architecture design, and coding.
- Cons: Not free (20$/month).
-
MidJourney
A tool to generate images from text prompts.
Explore here. -
Coze
Build your chatbot
Allows users to build custom chatbots. There’s also a marketplace for pre-built bots.- Note: Previously free, now requires a subscription.
- Features: Share your own bots, integrate plugins (e.g., data, search tools like Google and Bing, image generation).
-
ElevenLabs
Text-to-speech tool.
Try it here. -
Runway AI
Text-to-video generation tool.
Explore here. -
Cusor
AI Editor code
Explore here. -
KLING AI
Tools for creating imaginative images and videos, based on state-of-art generative AI methods.
-
-
trunghoang12
Stream ASR (Speech to Text Online)
Strame ASR is a module that helps with real-time speech-to-text using Riva SDK from Nvidia.
It is built on Riva SDK using the Conformer Model and SocketIo to make it user-friendly.
Work Flow
-
Step 1: Connect to host https://agents.monkeyenglish.net (SocketIo)
-
Step 2: Each session to speech to text emit to event: "on_start"
If on_start is successful, it will response a message
{'status': 'Connected to server successful.'}
-
Step 3: When on_start is OKE. You will send data to the event "audio_stream"
-
Step 4: Response of audio_stream will be received by event "asr_response"
-
Step 5: Finish session please emit to event "on_end". When finishing it will return to the message
{'status': 'Stopped to server successful.'}
Code example
- For JS
const socket = io('https://agents.monkeyenglish.net'); // Handle connection socket.on('connect', () => { console.log('Connected to server'); }); // Handle disconnection socket.on('disconnect', () => { console.log('Disconnected from server'); }); // Handle ASR response socket.on('asr_response', (data) => { console.log('Received ASR response:', data); }); // Function to send audio data function pushAudioStream(audioData) { socket.emit('audio_stream', audioData); }
// Example of reading log file and sending data (implement as needed)
- For Python
import socketio import threading import time # Create a Socket.IO client sio = socketio.Client() # Event handler for connection @sio.event def connect(): print('Connected to server') # Event handler for disconnection @sio.event def disconnect(): print('Disconnected from server') # Event handler for 'asr_response' event @sio.on('asr_response') def on_asr_response(data): print('Received ASR response:', data) # Function to push data to 'audio_stream' def push_audio_stream(audio_data: str): sio.emit('audio_stream', audio_data) # print(f'Pushed data to audio_stream: {audio_data}') # Function to read and push lines from the log file def stream_log_file(file_path: str): lines = [] with open(file_path, 'r') as file: for line in file: # Assuming the split logic you provided is correct lines.append(line.strip().split(" ")[1]) # Adjust based on your log format for line in lines: push_audio_stream(line) time.sleep(0.1) # Delay between sending lines # Function to handle the streaming and listening concurrently def start_streaming_and_listening(): # Start listening to the Socket.IO server sio.connect('https://agents.monkeyenglish.net') # Start a separate thread to stream the log file log_file_path = 'com.earlystart.monkeytalk-latest.log' stream_thread = threading.Thread(target=stream_log_file, args=(log_file_path,)) stream_thread.start() # Keep the main thread alive to listen for responses sio.wait() # Start the process if __name__ == "__main__": start_streaming_and_listening()
-
-
trunghoang12
Remove Background API Documentation
This API endpoint allows users to remove the background from an image.
HTTP Method:
POST
Endpoint
https://agents.monkeyenglish.net/api/v1/images/remove_bg
Headers:
- accept: application/json
Specifies the expected response format (JSON). - APIKEY: a813ec766197294184a938c331b08e7g
A unique API key used for authentication. - Content-Type: multipart/form-data
Required when uploading files.
Parameters:
- image (required):
The image file to be processed. You need to specify the image file using @filename in curl. Make sure to set the correct MIME type for the image.
Example curl Request:
curl -X 'POST' \ 'https://agents.monkeyenglish.net/api/v1/images/remove_bg' \ -H 'accept: application/json' \ -H 'APIKEY: a813ec766197294184a938c331b08e7g' \ -H 'Content-Type: multipart/form-data' \ -F 'image=@images.jpeg;type=image/jpeg'
- accept: application/json
-
trunghoang12
Domain: https://agents.monkeyenglish.net/
APIKEY: a813ec766197294184a938c331b08e7gTranslate Text API
Endpoint:
POST /translate
Description:
This endpoint translates text from a source language to a target language. It supports both basic and advanced translation, with additional options for context, area, and style in the advanced mode.
Request Headers:
Header Type Required Description APIKEY
String Yes API key for authorization Request Body:
Basic Translation:
Field Type Required Description source_lang
String Yes The language of the source text. target_lang
String Yes The language to translate to. sentence
String Yes The text to be translated. is_advance
Boolean No Set to False
for basic translation.Note: source_lang, target_lang có thể sử dụng tên quốc gia, hoặc code tên quốc gia theo bảng.
Advanced Translation (with additional optional fields):
Field Type Required Description source_lang
String Yes The language of the source text. target_lang
String Yes The language to translate to. sentence
String Yes The text to be translated. is_advance
Boolean Yes Set to True
for advanced translation.area
String No Specify the domain/area for translation (e.g., legal, medical). style
String No Specify the translation style (e.g., formal, informal). context
String No Provide additional context for the translation. Example Request (Basic Translation):
{ "source_lang": "en", "target_lang": "es", "sentence": "Hello, how are you?", "is_advance": false }
Example Response
{ "message": "success", "target": "Humanity is truly terrifying.", "audio_target": "", "data": { "vie": { "text": "Nhân loại thực sự đáng sợ.", "audio": "https://vnmedia2.monkeyuni.net/App/uploads/productivity/TW4TBoru1K0TAneo7qUc.wav" }, "eng": { "text": "Humanity is truly terrifying.", "audio": "https://vnmedia2.monkeyuni.net/App/uploads/productivity/h41XWUypOsAOIWUvWvvW.wav" } } }
Supported Languages:
code language script Source Target afr Afrikaans Latn Sp, Tx Tx amh Amharic Ethi Sp, Tx Tx arb Modern Standard Arabic Arab Sp, Tx Sp, Tx ary Moroccan Arabic Arab Sp, Tx Tx arz Egyptian Arabic Arab Sp, Tx Tx asm Assamese Beng Sp, Tx Tx ast Asturian Latn Sp -- azj North Azerbaijani Latn Sp, Tx Tx bel Belarusian Cyrl Sp, Tx Tx ben Bengali Beng Sp, Tx Sp, Tx bos Bosnian Latn Sp, Tx Tx bul Bulgarian Cyrl Sp, Tx Tx cat Catalan Latn Sp, Tx Sp, Tx ceb Cebuano Latn Sp, Tx Tx ces Czech Latn Sp, Tx Sp, Tx ckb Central Kurdish Arab Sp, Tx Tx cmn Mandarin Chinese Hans Sp, Tx Sp, Tx cmn_Hant Mandarin Chinese Hant Sp, Tx Sp, Tx cym Welsh Latn Sp, Tx Sp, Tx dan Danish Latn Sp, Tx Sp, Tx deu German Latn Sp, Tx Sp, Tx ell Greek Grek Sp, Tx Tx eng English Latn Sp, Tx Sp, Tx est Estonian Latn Sp, Tx Sp, Tx eus Basque Latn Sp, Tx Tx fin Finnish Latn Sp, Tx Sp, Tx fra French Latn Sp, Tx Sp, Tx fuv Nigerian Fulfulde Latn Sp, Tx Tx gaz West Central Oromo Latn Sp, Tx Tx gle Irish Latn Sp, Tx Tx glg Galician Latn Sp, Tx Tx guj Gujarati Gujr Sp, Tx Tx heb Hebrew Hebr Sp, Tx Tx hin Hindi Deva Sp, Tx Sp, Tx hrv Croatian Latn Sp, Tx Tx hun Hungarian Latn Sp, Tx Tx hye Armenian Armn Sp, Tx Tx ibo Igbo Latn Sp, Tx Tx ind Indonesian Latn Sp, Tx Sp, Tx isl Icelandic Latn Sp, Tx Tx ita Italian Latn Sp, Tx Sp, Tx jav Javanese Latn Sp, Tx Tx jpn Japanese Jpan Sp, Tx Sp, Tx kam Kamba Latn Sp -- kan Kannada Knda Sp, Tx Tx kat Georgian Geor Sp, Tx Tx kaz Kazakh Cyrl Sp, Tx Tx kea Kabuverdianu Latn Sp -- khk Halh Mongolian Cyrl Sp, Tx Tx khm Khmer Khmr Sp, Tx Tx kir Kyrgyz Cyrl Sp, Tx Tx kor Korean Kore Sp, Tx Sp, Tx lao Lao Laoo Sp, Tx Tx lit Lithuanian Latn Sp, Tx Tx ltz Luxembourgish Latn Sp -- lug Ganda Latn Sp, Tx Tx luo Luo Latn Sp, Tx Tx lvs Standard Latvian Latn Sp, Tx Tx mai Maithili Deva Sp, Tx Tx mal Malayalam Mlym Sp, Tx Tx mar Marathi Deva Sp, Tx Tx mkd Macedonian Cyrl Sp, Tx Tx mlt Maltese Latn Sp, Tx Sp, Tx mni Meitei Beng Sp, Tx Tx mya Burmese Mymr Sp, Tx Tx nld Dutch Latn Sp, Tx Sp, Tx nno Norwegian Nynorsk Latn Sp, Tx Tx nob Norwegian Bokmål Latn Sp, Tx Tx npi Nepali Deva Sp, Tx Tx nya Nyanja Latn Sp, Tx Tx oci Occitan Latn Sp -- ory Odia Orya Sp, Tx Tx pan Punjabi Guru Sp, Tx Tx pbt Southern Pashto Arab Sp, Tx Tx pes Western Persian Arab Sp, Tx Sp, Tx pol Polish Latn Sp, Tx Sp, Tx por Portuguese Latn Sp, Tx Sp, Tx ron Romanian Latn Sp, Tx Sp, Tx rus Russian Cyrl Sp, Tx Sp, Tx slk Slovak Latn Sp, Tx Sp, Tx slv Slovenian Latn Sp, Tx Tx sna Shona Latn Sp, Tx Tx snd Sindhi Arab Sp, Tx Tx som Somali Latn Sp, Tx Tx spa Spanish Latn Sp, Tx Sp, Tx srp Serbian Cyrl Sp, Tx Tx swe Swedish Latn Sp, Tx Sp, Tx swh Swahili Latn Sp, Tx Sp, Tx tam Tamil Taml Sp, Tx Tx tel Telugu Telu Sp, Tx Sp, Tx tgk Tajik Cyrl Sp, Tx Tx tgl Tagalog Latn Sp, Tx Sp, Tx tha Thai Thai Sp, Tx Sp, Tx tur Turkish Latn Sp, Tx Sp, Tx ukr Ukrainian Cyrl Sp, Tx Sp, Tx urd Urdu Arab Sp, Tx Sp, Tx uzn Northern Uzbek Latn Sp, Tx Sp, Tx vie Vietnamese Latn Sp, Tx Sp, Tx xho Xhosa Latn Sp -- yor Yoruba Latn Sp, Tx Tx yue Cantonese Hant Sp, Tx Tx zlm Colloquial Malay Latn Sp -- zsm Standard Malay Latn Tx Tx zul Zulu Latn Sp, Tx Tx Speech Translation API
Endpoint:
POST /speech/translate
Description:
This endpoint translates an uploaded audio file from a source language to a target language. It supports speech-to-text translation tasks.
Request Headers:
Header Type Required Description APIKEY
String Yes API key for authorization Request Body (Form-Data):
Field Type Required Description audio
File Yes The audio file to be translated. source
String Yes The language of the audio (e.g., en
for English).target
String Yes The language to translate the audio to. task
String No Translation task type. Default is S2TT
(Speech-to-Text-to-Translation).Example Request (Form-Data):
Key Value audio
(upload audio file) source
en
target
fr
task
S2TT
Note: Language code follows the above table.
Task: S2TT if only want to translate to text, S2ST to translate with output audio + text
target: accept multi-output Example "vie,eng,spa"Response:
Field Type Description status
String Status of the translation request. output
String The translated text or processed output. error
String Error message if applicable. Successful Response (200 OK):
{ "status": "success", "output": "Bonjour", "error": "" }
Error Response (500 Internal Server Error):
{ "status": "failure", "output": "", "error": "System encountered an unexpected error. <error message>" }
Error Handling:
401 Unauthorized
: Invalid API key.500 Internal Server Error
: System encountered an unexpected error.
Audio Streaming Client for Speech-to-Text and Translation (S2TT)
1. Overview
This document provides an overview of how to implement a client for streaming audio data to a WebSocket server that processes the data for speech-to-text-to-translation (S2TT) tasks. The system is designed to handle real-time audio streaming from clients, which can be built using various programming languages.
Key Components:
- WebSocket Server: The server receives audio data from the client, processes it, and returns results (e.g., transcriptions, translations).
- Client: Any client application (mobile, desktop, web) can stream audio to the server over WebSocket.
- Streaming Protocol: Audio data is chunked and transmitted in real-time, with metadata indicating task details such as the source language, target language, and processing task.
2. Communication Flow
2.1 Initial Connection
-
Client Connects to Server: The client establishes a WebSocket connection with the server at a predefined URI.
- Example WebSocket URI:
ws://<server-address>:<port>/ws/translate/<session_id>
wss://agents.monkeyenglish.net/ws/translate/123
session_id: random_string
- Example WebSocket URI:
-
Task Metadata: The client sends an initial message to define the task. This message includes:
- Source Language: The language of the audio input (e.g.,
eng
for English). - Target Language: The language for translation (e.g.,
vie
for Vietnamese). - Task Type: The processing task (e.g.,
S2TT
for Speech-to-Text-to-Translation).
Message Format (JSON):
{ "type": "start", "data": { "source": "eng", "target": "vie", "task": "S2TT" } }
- Source Language: The language of the audio input (e.g.,
2.2 Streaming Audio Data
-
Audio Streaming: The client reads and sends audio data in chunks to the server. Each chunk is a segment of the full audio file, mimicking real-time audio streaming.
- The audio data is converted into a byte stream for transmission.
-
Transmission Format:
- Audio chunks are transmitted in binary format (e.g., byte array).
- Each chunk is sent over the WebSocket connection, followed by a short delay to simulate real-time audio capture.
-
Streaming Example:
- For every audio chunk, the client sends the binary data over the established WebSocket connection.
- The client continues sending chunks until the entire audio file has been transmitted.
2.3 Task Completion
-
End of Transmission: After the client finishes sending all audio chunks, it sends a final message to the server indicating that the streaming is complete and the task can be processed.
Message Format (JSON):
{ "type": "do_task", "data": { "source": "eng", "target": "vie", "task": "S2TT" } }
-
Processing Response: The server processes the received audio, performing the requested task (e.g., transcription and translation). Once complete, the server responds with the result, which may include:
- Transcribed text.
- Translated text.
-
Response Format: The server sends a JSON message back to the client containing the task's result:
{
"message": "",
"data": {
"vie": {
"text": "thế là sáng hôm sau cái tin tôi về đến cổng còn phải thăm đường đã lan ra khóc sóng",
"audio": "https://vnmedia2.monkeyuni.net/App/uploads/productivity/8tihbdQvbQPHkcqmDntW.wav"
},
"eng": {
"text": "So the next morning, when I got back to the cage, I had to walk down the street to cry.",
"audio": "https://vnmedia2.monkeyuni.net/App/uploads/productivity/5Um6tQ1nzT3BfEqOYzx4.wav"
}
},
"status": "success"
}```3. Client Implementation Guidelines
3.1 Supported Languages
The client can be developed in any language that supports WebSocket communication, such as:
- JavaScript: Web-based applications.
- Python: Server-side or command-line tools.
- Java/Kotlin: Android applications.
- Swift: iOS applications.
- C#: Desktop or .NET applications.
3.2 WebSocket Library
Ensure that the client uses a WebSocket library suitable for your chosen programming language. Common libraries include:
- JavaScript: Native WebSocket API or popular libraries like
socket.io
. - Python:
websockets
orwebsocket-client
. - Java/Kotlin:
OkHttp
WebSocket implementation. - Swift:
Starscream
library for WebSocket communication.
3.3 Audio File Handling
The client needs to handle reading audio files or capturing audio in real-time. The format of the audio must be compatible with the server’s requirements (e.g., 16kHz, mono,
.wav
).3.4 Chunking and Streaming
The client should send audio data in small chunks. For real-time applications:
- Chunk Size: Each chunk should be small enough to allow near real-time transmission, typically between 1-3 seconds of audio data per chunk.
- Delay: Introduce a small delay (e.g., 1-10 milliseconds) between sending each chunk to simulate real-time streaming.
3.5 Error Handling
The client must handle potential errors during the WebSocket communication:
- Connection Issues: Reconnect if the WebSocket connection is dropped.
- Server Responses: Handle unexpected responses or errors from the server gracefully.
- Timeouts: Implement timeouts to prevent hanging connections if no response is received from the server.
4. Server Configuration
4.1 Server URI
Clients must connect to the WebSocket server at the following URI:
ws://<server-address>:<port>/ws/translate/<session_id>
<server-address>
: IP address or domain of the WebSocket server.<port>
: Port on which the server is running (e.g., 5001).<session_id>
: A unique identifier for the client session, generated for each streaming session.
4.2 Audio Processing
The server is responsible for:
- Receiving and buffering audio chunks.
- Processing the audio (speech recognition, translation).
- Sending results back to the client in the expected format.
5. Example Use Cases
5.1 Mobile Voice Translation App
A mobile app developed in Java or Swift captures the user's voice, streams the audio to the server using WebSocket, and receives the translated text, which is displayed to the user in real-time.
5.2 Web-Based Audio Translator
A JavaScript web application allows users to upload audio files. The app streams the audio to the server, processes it, and shows the translation results to the user.
5.3 Desktop Speech-to-Text Tool
A Python desktop application records audio from the microphone, streams it to the server, and displays real-time transcription and translation.
6. Conclusion
This document provides an overview of the WebSocket-based client-server system for real-time audio streaming and processing. The client can be implemented in any language with WebSocket support, allowing flexible integration across various platforms and applications.
-
thuyvu
Lịch sử cập nhật Monkey Junior 5.0
v42.0.88
Ngày phát hành HĐH Mục đích cập nhật 8/1/2025
Android
1.Tính năng Dynamic pricing - Xác định mức giá tối ưu cho từng thị trường để tối đa hóa doanh thu (Các quốc gia trừ Việt Nam)
2. Luồng bài học mới MJ5 level 1-5
3. Sửa lỗi current course khóa M - ABC7/1/2025 IOS v42.0.87
Ngày phát hành HĐH Mục đích cập nhật 27/12/2024
_/12/2024Android
IOS1.Tính năng Look back - Thêm thông điệp share để nhận quà (minigame xã hội)
2. A/B testing cho short videos - Thử nghiệm
3. Go live 18 games luồng mới - Tính năng chưa publish
4. Thêm deeplink cho thông báo Kinesis và Firebase- Cập nhật deep link cho các thông báo từ Kinesis và Firebasev42.0.86
Ngày phát hành HĐH Mục đích cập nhật 20/12/2024 Android Tối ưu bản build 42.0.84 24/12/2024 window Thêm mới tính năng Pack học giáng sinh 25/12/2024 Huawei Thêm mới tính năng Pack học giáng sinh v42.0.84
Ngày phát hành HĐH Mục đích cập nhật 17/12/2024
IOS
- Tối ưu Look back
- Thêm mới tính năng Pack học giáng sinh
- Bổ sung luồng A/B/C cho luồng verify contacts
17/12/2024 Android v42.0.82
Ngày phát hành HĐH Mục đích cập nhật 11/12/2024
IOS
1.Thêm tính năng lock back
11/12/2024 Android v42.0.79
Ngày phát hành HĐH Mục đích cập nhật 5/12/2024
IOS
1.Thêm giao diện Giáng Sinh
2. Tối ưu giao diện Monkey shop
3. Bổ sung event tracking cho Monkey Kindy coursev42.0.77
Ngày phát hành HĐH Mục đích cập nhật 26/11/2024
IOS
- Bổ sung phần loading mới cho app MJ
- Bật luồng A/B testing OBD
- Tối ưu deeplink truyện
- Bật lại luồng tặng M- speak free cho thị trường VN
27/11/2024 Android v42.0.76
Ngày phát hành HĐH Mục đích cập nhật 19/11/2024
IOS
- Monkey Kindy: Bỏ chức năng tua video; Bổ sung rewards cho Khóa Monkey Kindy; Bỏ chức năng replay ở video cuối cùng của mỗi unit.
- Ẩn khóa học Bài tập về nhà (Monkey Class).
- Tối ưu deeplink truyện
- Fix lỗi hoàn thành level khóa MJ5
- Event Kinesis
21/11/2024 Android v42.0.74
Ngày phát hành HĐH Mục đích cập nhật 13/11/2024
IOS
- Khắc phục lỗi hiển thị khóa học Monkey Class và Kindy khi gói mua hết hạn.
- Thêm nhãn "Học thử" cho khóa học Monkey Tutoring.
13/11/2024 Android v42.0.73
Ngày phát hành HĐH Mục đích cập nhật 3/11/2024
IOS
- Sửa lỗi đăng nhập của khách hàng do giới hạn data vỏ app
- Thêm logic A/B testing monkey pro cho luồng Khóa học trong parent setting, add profile và BCHT sau lesson
- Sửa lỗi đăng nhập của khách hàng do giới hạn data vỏ app
- Thêm logic A/B testing màn onboarding cho Thái Lan
- Thay đổi icon app hết halloween
4/11/2024 Android v42.0.72
Ngày phát hành HĐH Mục đích cập nhật 29/10/2024
IOS
- Thay đổi icon app cho ngày Halloween
- Thêm logic A/B testing monkey pro cho luồng App launch và locked lesson
- Xóa data tự động cho các user 7 ngày ko mở app
- Xóa data thủ công cho các khóa trong app MJ
29/10/2024 Android v42.0.71
Ngày phát hành HĐH Mục đích cập nhật 08/10/2024
IOS
- Tối ưu push event lost connection lên CleverTap
- Thêm logic A/B testing monkey pro cho luồng OBD và home course payment
08/10/2024 Android v42.0.69
Ngày phát hành HĐH Mục đích cập nhật 04/10/2024
ios
- Tối ưu thu âm Mspeak + MJ5 mode online, offline
- Bổ sung tính năng click deeplink vào truyện Monkey Stories
- Fix bug vẫn hiển thị tặng Mspeak khi đã để lại thông tin SĐT
- Đối với tài khoản Monkey Kindy chưa học Mj, lần đầu tiên vào thẳng Monkey Kindy
- Bổ sung event của app Monkey class trên clevertab
- Bổ sung mô hình Monkey Kindy thường
04/10/2024 Android v42.0.68
Ngày phát hành HĐH Mục đích cập nhật 23/10/2024 Win 1. Sửa lỗi game multiple choice image trắng màn hình. 30/9/2024
ios
- Fix bug lỗi vào sai khóa học khi chọn lại profile sau khi tạo thêm profile ở màn list profile ngang (với tài khoản free)
- Tối ưu game trên Khóa MJ5
- Bổ sung thêm các para cho event theo order của DA: Thêm para cho event thuộc 2 game video ...
- Thay đổi thumb khóa học trong parent setting để đồng bộ với thumb course list mới
- Thêm logic event mx_lost_connection trong game và thêm para cho event
- Thêm logic A/B/C testing cho luồng OBD
- Fix bug không hiển thị tool tip khi chọn ra popup course list khi đang ở khóa học ngôn ngữ khác trong course M-ABC
- Thêm phần security phase 1
30/9/2024 Android 30/9/2024 Huawei v42.0.67
Ngày phát hành HĐH Mục đích cập nhật 27/9/2024
Win
- Cập nhật logic và UI course list, tool tip mới
- Tối ưu game trên Khóa MJ5
25/9/2024
ios
- Cập nhật logic và UI course list, tool tip mới
25/9/2024 Android v42.0.65
Ngày phát hành HĐH Mục đích cập nhật 23/9/2024
ios
- Golive camp tặng khóa học Monker Speak
- Fix bug Hiển thị màn 4 câu hỏi của khóa học Monkey Stories nhiều lần khi click học thử trong parent setting
- Thêm Background cho game Intro dialog và Dialog khóa học Monkey Speak
23/9/2024 Android 25/9/2024
Win
- Golive camp tặng khóa học Monkey Speak
- Thêm Background cho game Intro dialog và Dialog khóa học Monkey Speak
- Tối ưu ghi âm cho khóa học Monkey Speak
v42.0.64
Ngày phát hành HĐH Mục đích cập nhật 19/9/2024
ios
- Fix bug không click được vào mở khóa toàn bộ của popup hết bài miễn phí trong khóa Mspeak
- Fix bug không nhận được xu và sticker khi hoàn thành truyện Stories for you
- Fix lỗi đồng bộ số sao ghi âm trong MStories
/9/2024 Android v42.0.62
Ngày phát hành HĐH Mục đích cập nhật /9/2024
ios
- Sửa lỗi đồng bộ khóa học MJ5
- Fix bug không có sticker khi đổi profile
- Fix bug report hiển thị sai số lesson và âm đã học trong unit
/9/2024 Android v42.0.61
Ngày phát hành HĐH Mục đích cập nhật 10/9/2024
ios
- Tối ưu ghi âm v2: Web socket cho phần Ghi âm
9/9/2024 Android v42.0.60
Ngày phát hành HĐH Mục đích cập nhật 4/9/2024
IOS
- Fix lỗi mất xu local khi đổi level của khóa Monkey Stories
- Thêm CR game của khóa MJ5, MSpeak
- Weekly challenge tắt popup ở các khóa học MJ4
- Thêm luồng 4 câu hỏi khi user chưa có level
- Tối ưu ghi âm: Web socket cho phần Ghi âm
1/9/2024 Android v42.0.59
Ngày phát hành HĐH Mục đích cập nhật 28/8/2024
IOS
Fix cảnh báo SDK android của store
28/8/2024 Android v42.0.58
Ngày phát hành HĐH Mục đích cập nhật 23/8/2024
IOS
- Thay đổi logic màn upgade theo tài liệu
- Fixbug không chuyển về map MJ5 khi đang ở home course ngôn ngữ khác khóa Monkey ABC
- Fixbug vào unity sau đó ra vỏ app cài đặt khóa hock và lại unity không đổi theo cài đặt (bản trên live đang bị)
- Thay đối giá gói cho các khóa tại đây
- Bỏ giá gói 1m ở các thị trường quốc tế, bổ sung gói 6m cho các thị trường chính cho các khóa hiện tại
23/8/2024 Android 23/8/2024 Win 26/8/2024 Huawei v42.0.57
Ngày phát hành HĐH Mục đích cập nhật 15/8/2024
IOS
- Game blending sound- sửa lỗi data 2 âm giống nhau
- Sửa lỗi phần upgrade MJ3- MJ5 ko detect được màn 4 câu hỏi
- Crash khi mua hàng ở Monkey shop
- Sửa lỗi hiển thị profile trong báo cáo học tập
- Thay icon app
- Merge COD cho đơn combo
- Sửa lỗi nhấn thoát lesson ở Mspeak bị đơ app (bug từ MJ4)
- Sửa lỗi ko ghi nhận đã hoàn thành act gần cuối (bug từ MJ4)
- Bỏ button Khám phá ngay ở màn upgrade Mj3, MJ4 => MJ5
15/8/2024 Android v42.0.56
Ngày phát hành HĐH Mục đích cập nhật 9/8/2024
IOS
- Golive MJ5.0 Android, IOS
9/8/2024 Android