Group Details Private
administrators
Member List
-
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.63
Ngày phát hành HĐH Mục đích cập nhật /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
/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 -
trunghoang12
Recommend
Tài liệu về nghiên cứu và giải pháp Recomemd System .docx
-
trunghoang12
AI Converter
API Tools
- API Tool provides some API for features: Sync Text, Normalize Audio Mp3
- Sync Text for Audio API Documentation
Endpoint
URL:
https://aitools.monkeyenglish.net/segement
Method:
POST
Parameters
Name Type Description Required Example audio
File (mp3) Uploaded audio file in mp3 format Yes audio=@L2U6 - Chant 4 - Mr. Billy.mp3
karaoke_format
Boolean Option to convert to karaoke format or not Yes true
orfalse
text
String Text used for mapping sync text (Optional) No "Isn't this regular milk?"
Returns
Name Type Description data
Object Output of sync text function message
String Information about sync text successfully or state mapping status
Boolean True
if the system completes tasks completely, elseFalse
exception
String Empty if completed task, else contains exception message Example Request
curl -X 'POST' \ 'https://aitools.monkeyenglish.net/segement' \ -H 'accept: application/json' \ -H 'Content-Type: multipart/form-data' \ -F 'audio=@L2U6 - Chant 4 - Mr. Billy.mp3;type=audio/mpeg' \ -F 'karaoke_format=false' \ -F 'text='
- API normalize mp3 file
Endpoint: https://aitools.monkeyenglish.net/normalize-audio`
Method: POST
Parameters
Name Type Description Required Example file
File (mp3) Uploaded audio file in mp3 format Yes file=@L2U6 - Chant 4 - Mr. Billy.mp3
Returns
Name Type Description data
Object Output of normalized audio file message
String Information about normalization success or failure status
Boolean True
if the system completes tasks completely, elseFalse
exception
String Empty if completed task, else contains exception message Example Request
curl -X 'POST' \ 'https://aitools.monkeyenglish.net/normalize-audio' \ -H 'accept: application/json' \ -H 'Content-Type: multipart/form-data' \ -F 'file=@L2U6 - Chant 4 - Mr. Billy.mp3;type=audio/mpeg'
Score Audio from CSV
POST /score_audio
Description: Processes an uploaded CSV or Excel file and returns a CSV file with processed results.Request
Content-Type: multipart/form-data
Parameters:
file (required): An uploaded file in CSV or Excel format. The file should contain the data to be processed.
name_column_text (required): The name of the column in the file that contains text data.
name_column_audio (required): The name of the column in the file that contains audio data.
name_column_output (required): The name of the column where the processed results will be written.Convert Audio API
Base URL
The base URL for the API is:
https://aitools.monkeyenglish.net/
Endpoints
1. Convert MP3 to WAV
Endpoint:
POST /mp3-to-wav/
Description: Converts an MP3 file to a WAV file.
Request:
file
: The MP3 file to be converted. (required)
Response:
- Returns a WAV file with
Content-Disposition
header set toattachment; filename={original_filename}.wav
.
2. Convert WAV to MP3
Endpoint:
POST /wav-to-mp3/
Description: Converts a WAV file to an MP3 file.
Request:
file
: The WAV file to be converted. (required)
Response:
- Returns an MP3 file with
Content-Disposition
header set toattachment; filename={original_filename}.mp3
.
3. Normalize MP3
Endpoint:
POST /normalize-mp3/
Description: Normalizes the volume of an MP3 file.
Request:
file
: The MP3 file to be normalized. (required)
Response:
- Returns a normalized MP3 file with
Content-Disposition
header set toattachment; filename={original_filename}_normalized.mp3
.
4. Normalize WAV
Endpoint:
POST /normalize-wav/
Description: Normalizes the volume of a WAV file and optionally changes the sample rate and number of channels.
Request:
file
: The WAV file to be normalized. (required)sample_rate
: The sample rate for the output file. (optional, default: 44100)channels
: The number of channels for the output file. (optional, default: 2)
Response:
- Returns a normalized WAV file with
Content-Disposition
header set toattachment; filename={original_filename}_normalized.wav
.
5. Convert WAV to Normalized MP3
Endpoint:
POST /wav-normalize-mp3/
Description: Converts a WAV file to an MP3 file and normalizes the volume.
Request:
file
: The WAV file to be converted and normalized. (required)
Response:
- Returns a normalized MP3 file with
Content-Disposition
header set toattachment; filename={original_filename}_normalized.mp3
.
6. Convert MP3 to Custom WAV
Endpoint:
POST /mp3-custom-wav/
Description: Converts an MP3 file to a WAV file with custom sample rate and number of channels.
Request:
file
: The MP3 file to be converted. (required)sample_rate
: The sample rate for the output file. (optional, default: 44100)channels
: The number of channels for the output file. (optional, default: 2)
Response:
- Returns a WAV file with
Content-Disposition
header set toattachment; filename={original_filename}_normalized.wav
.
CLI Tools
- CLI Usage Document for
_sync_lip_sync.py
Overview
The
_sync_lip_sync.py
script is designed to synchronize lip sync data from a source directory to a destination directory. This script is executed using Python 3 and takes two arguments: the source directory and the destination directory.Prerequisites
- Ensure that Python 3 is installed on your system. You can download it from python.org.
- Make sure the
_sync_lip_sync.py
script is in your working directory or provide the full path to the script. - Ensure you have the necessary permissions to read from the source directory and write to the destination directory.
Usage
To run the
_sync_lip_sync.py
script, open your terminal or command prompt and execute the following command:python3 _sync_lip_sync.py <source_directory> <destination_directory>
- CLI Tool for Scoring Audio
Overview
This CLI tool is designed to score audio files based on transcripts provided in a CSV file. It downloads audio files from URLs specified in the CSV, processes them, and outputs the results to a specified CSV file.
Usage
To use the CLI tool, run the following command in your terminal:
```bash
python3 _scoring_audio_competition.py arg1 arg2 arg3 arg4
```Arguments
-
arg1
: Input filename (CSV)- The path to the input CSV file containing the transcripts and URLs.
-
arg2
: Column text- The name of the column in the CSV file that contains the transcripts.
-
arg3
: Column URL- The name of the column in the CSV file that contains the URLs of the audio files to be downloaded.
-
arg4
: Output filename (CSV)- The path to the output CSV file where the scoring results will be saved.
Detailed Instructions
-
Prepare Input CSV File
- Create a CSV file with at least two columns: one for the transcripts and one for the URLs of the audio files.
- Ensure the column names match the values you will provide for
arg2
andarg3
.
Example:
```csv
transcript,url
"This is a sample transcript","http://example.com/audio1.mp3"
"Another transcript","http://example.com/audio2.mp3"
``` -
Run the Tool
- Open your terminal.
- Navigate to the directory where
_scoring_audio_competition.py
is located. - Run the following command, replacing
input.csv
,transcript
,url
, andoutput.csv
with your actual file and column names:
```bash
python3 _scoring_audio_competition.py input.csv transcript url output.csv
``` -
Output
- The tool will download the audio files from the URLs specified in the input CSV.
- It will process the audio files and score them based on the provided transcripts.
- The results will be saved in the output CSV file specified.
Example Command
Here is an example command based on the provided instructions:
```bash
python3 _scoring_audio_competition.py example_input.csv transcript url example_output.csv
```In this example:
example_input.csv
is the input CSV file containing the transcripts and audio URLs.transcript
is the name of the column containing the transcripts.url
is the name of the column containing the audio URLs.example_output.csv
is the output CSV file where the scoring results will be saved.
Notes
- Ensure you have all necessary dependencies installed before running the script.
- The input CSV file should be well-formatted to avoid any errors during processing.
- The output CSV file will contain the results of the scoring process, which can be used for further analysis.
-
thuyvu
v1.8.9
Ngày phát hành HĐH Mục đích cập nhật 28/06/2024 IOS 1. Sửa lỗi event cho airbridge 28/06/2024 Android v1.8.8
Ngày phát hành HĐH Mục đích cập nhật 13/06/2024 IOS 1. Thay đổi ảnh screen shots cho ngôn ngữ tiếng Anh v1.8.7
Ngày phát hành HĐH Mục đích cập nhật 12/06/2024 IOS 1. Thay đổi logic giỏ hàng cho tài khoản free/trial từ vào thẳng luồng mua về landing page 12/06/2024 Android v1.8.6
Ngày phát hành HĐH Mục đích cập nhật 10/06/2024 IOS 1. Thay đổi giao diện màn OBD của Vmonkey Chi tiết 10/06/2024 Android 2. Fix bug crash IOS 12 v1.8.5
Ngày phát hành HĐH Mục đích cập nhật 30/05/2024 IOS 1. Thay ảnh cho appstore IOS 2. Sửa lỗi airbrigde v1.8.3
Ngày phát hành HĐH Mục đích cập nhật 29/01/2024 Android Sửa lỗi trên device Mastel link text -
KT_Tuấn_Anh
{ "lvs": [ // list level { "i": 28, // id level "n": "1", // name level "th": "", // thumb level "o": 24, // order level "cs": [ // category { "i": 15838, // id category "n": "Greetings 1", // name category "o": 1, // order category "the": "", // thumb category "lv_i": 28, // level Id "us": [ // list unit { "i": 1, // id unit "t": "Hello!", // (name, title) unit "o": 1, // order unit "c_i": 15838, // category id "l_i": 28, // level Id "ls": [ // list lesson { "i": 300043, // id lesson "t": "Lesson 1", // (name, title) lesson "a": 1, // age lesson "ty": 7, // type lesson "o": 1, // order lesson "u_i": 1, // unit id "f": 0, // free "as": [ // list activity { "i": 1503139, // id activity "l_i": 300043, // lesson id "g_i": 1000091, // game id "u_i": 1, // unit id "g_c_i": 15838, // category id "o": 1, // order activity "f": "App/zip/activity/1503139-44737-lul.zip", // path download activity "p": 9428, } ] } ] } ] } ] } ], "d": { "ac": "https://vnmedia2.monkeyuni.net/", => "Link download Act" "w_b": "https://vnmedia2.monkeyuni.net/App/zip/hdr/word_bundle/" => "Link download Word" }, "d_l": { "ac": "https://vnmedia2.monkeyuni.net/", "w_b": "https://vnmedia2.monkeyuni.net/App/zip/hdr/word_bundle/" } }