diff --git a/.dockerignore b/.dockerignore index 65460ac..06d920f 100644 --- a/.dockerignore +++ b/.dockerignore @@ -5,4 +5,6 @@ README.md *.pyd __pycache__ .pytest_cache +postman /scripts +/.venv \ No newline at end of file diff --git a/.gitignore b/.gitignore index 9b77073..dca5b44 100644 --- a/.gitignore +++ b/.gitignore @@ -2,5 +2,6 @@ __pycache__ .idea .env .DS_Store -/firebase-configs/test_firebase.json -/scripts +.venv +_scripts +*.env \ No newline at end of file diff --git a/.idea/ielts-be.iml b/.idea/ielts-be.iml deleted file mode 100644 index 2cd02c1..0000000 --- a/.idea/ielts-be.iml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml deleted file mode 100644 index 105ce2d..0000000 --- a/.idea/inspectionProfiles/profiles_settings.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml deleted file mode 100644 index 6601cfb..0000000 --- a/.idea/misc.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml deleted file mode 100644 index 31940e2..0000000 --- a/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index 35eb1dd..0000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 939b732..8e0a4da 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,10 @@ +FROM python:3.11-slim as requirements-stage +WORKDIR /tmp +RUN pip install poetry +COPY pyproject.toml ./poetry.lock* /tmp/ +RUN poetry export -f requirements.txt --output requirements.txt --without-hashes + -# Use the official lightweight Python image. -# https://hub.docker.com/_/python FROM python:3.11-slim # Allow statements and log messages to immediately appear in the logs @@ -9,8 +13,11 @@ ENV PYTHONUNBUFFERED True # Copy local code to the container image. ENV APP_HOME /app WORKDIR $APP_HOME + COPY . ./ +COPY --from=requirements-stage /tmp/requirements.txt /app/requirements.txt + RUN apt update && apt install -y \ ffmpeg \ poppler-utils \ @@ -23,20 +30,18 @@ RUN apt update && apt install -y \ curl \ && rm -rf /var/lib/apt/lists/* - RUN curl -sL https://deb.nodesource.com/setup_20.x | bash - \ && apt-get install -y nodejs RUN npm install -g firebase-tools -# Install production dependencies. -RUN pip install --no-cache-dir -r requirements.txt +RUN pip install --no-cache-dir -r /app/requirements.txt -EXPOSE 5000 +EXPOSE 8000 # Run the web service on container startup. Here we use the gunicorn # webserver, with one worker process and 8 threads. # For environments with multiple CPU cores, increase the number of workers # to be equal to the cores available. # Timeout is set to 0 to disable the timeouts of the workers to allow Cloud Run to handle instance scaling. -CMD exec gunicorn --bind 0.0.0.0:5000 --workers 1 --threads 8 --timeout 0 app:app +ENTRYPOINT ["gunicorn", "--bind", "0.0.0.0:8000", "--workers", "1", "--threads", "8", "--timeout", "0", "-k", "uvicorn.workers.UvicornWorker", "ielts_be:app"] diff --git a/README.md b/README.md new file mode 100644 index 0000000..850098c --- /dev/null +++ b/README.md @@ -0,0 +1,26 @@ +# Run the app + +1. pip install poetry +2. poetry install +3. python app.py + +# Modules + +- api -> endpoints +- configs -> app configs and constants +- controllers -> meant for handling exceptions, transforming data or orchestrate complex use cases with several services, for now mostly just calls services directly +- dtos -> pydantic models used for receiving data and for validation +- exceptions -> if custom exceptions are needed to throw in services so they can be handled in the controllers to construct some specific http response +- helpers -> a bunch of lightweight functions grouped by some kind of logic +- mappers -> to map complex data +- middlewares -> classes that are run before executing the endpoint code +- repositories -> interfaces with data stores +- services -> all the business logic goes here +- utils -> loose functions used on one-off occasions + +# Dependency injection + +If you want to add new controllers/services/repositories you will have to change +app/configs/dependency_injection.py + +Also make sure you have @inject on your endpoint when calling these. diff --git a/app.py b/app.py index b1d060f..a757090 100644 --- a/app.py +++ b/app.py @@ -1,1742 +1,25 @@ -import threading -from functools import reduce - -import firebase_admin -from firebase_admin import credentials -from flask import Flask, request -from flask_jwt_extended import JWTManager, jwt_required -from pymongo import MongoClient -from sentence_transformers import SentenceTransformer - -from helper.api_messages import * -from helper.exam_variant import ExamVariant -from helper.exercises import * -from helper.file_helper import delete_files_older_than_one_day -from helper.firebase_helper import * -from helper.gpt_zero import GPTZero -from helper.heygen_api import create_video, create_videos_and_save_to_db -from helper.openai_interface import * -from helper.question_templates import * -from helper.speech_to_text_helper import * -from heygen.AvatarEnum import AvatarEnum -from modules import GPT -from modules.training_content import TrainingContentService, TrainingContentKnowledgeBase -from modules.upload_level import UploadLevelService -from modules.batch_users import BatchUsers - +import click +import uvicorn +from dotenv import load_dotenv load_dotenv() -app = Flask(__name__) -app.config['JWT_SECRET_KEY'] = os.getenv("JWT_SECRET_KEY") -jwt = JWTManager(app) - -# Initialize Firebase Admin SDK -cred = credentials.Certificate(os.getenv("GOOGLE_APPLICATION_CREDENTIALS")) -FIREBASE_BUCKET = os.getenv('FIREBASE_BUCKET') - -firebase_admin.initialize_app(cred) - -gpt_zero = GPTZero(os.getenv('GPT_ZERO_API_KEY')) - -# Training Content Dependencies -embeddings = SentenceTransformer('all-MiniLM-L6-v2') -kb = TrainingContentKnowledgeBase(embeddings) -kb.load_indices_and_metadata() -open_ai = GPT(OpenAI()) - -mongo_db = MongoClient(os.getenv('MONGODB_URI'))[os.getenv('MONGODB_DB')] - -tc_service = TrainingContentService(kb, open_ai, mongo_db) - -upload_level_service = UploadLevelService(open_ai) - -batch_users_service = BatchUsers(mongo_db) - -thread_event = threading.Event() - -# Configure logging -logging.basicConfig(level=logging.DEBUG, # Set the logging level (DEBUG, INFO, WARNING, ERROR, CRITICAL) - format='%(asctime)s - %(levelname)s - %(message)s') - - -@app.route('/healthcheck', methods=['GET']) -def healthcheck(): - return {"healthy": True} - - -@app.route('/listening_section_1', methods=['GET']) -@jwt_required() -def get_listening_section_1_question(): - try: - delete_files_older_than_one_day(AUDIO_FILES_PATH) - # Extract parameters from the URL query string - topic = request.args.get('topic', default=random.choice(two_people_scenarios)) - req_exercises = request.args.getlist('exercises') - difficulty = request.args.get("difficulty", default=random.choice(difficulties)) - - return gen_listening_section_1(topic, difficulty, req_exercises) - except Exception as e: - return str(e) - - -@app.route('/listening_section_2', methods=['GET']) -@jwt_required() -def get_listening_section_2_question(): - try: - delete_files_older_than_one_day(AUDIO_FILES_PATH) - # Extract parameters from the URL query string - topic = request.args.get('topic', default=random.choice(social_monologue_contexts)) - req_exercises = request.args.getlist('exercises') - difficulty = request.args.get("difficulty", default=random.choice(difficulties)) - - return gen_listening_section_2(topic, difficulty, req_exercises) - except Exception as e: - return str(e) - - -@app.route('/listening_section_3', methods=['GET']) -@jwt_required() -def get_listening_section_3_question(): - try: - delete_files_older_than_one_day(AUDIO_FILES_PATH) - # Extract parameters from the URL query string - topic = request.args.get('topic', default=random.choice(four_people_scenarios)) - req_exercises = request.args.getlist('exercises') - difficulty = request.args.get("difficulty", default=random.choice(difficulties)) - - return gen_listening_section_3(topic, difficulty, req_exercises) - except Exception as e: - return str(e) - - -@app.route('/listening_section_4', methods=['GET']) -@jwt_required() -def get_listening_section_4_question(): - try: - delete_files_older_than_one_day(AUDIO_FILES_PATH) - # Extract parameters from the URL query string - topic = request.args.get('topic', default=random.choice(academic_subjects)) - req_exercises = request.args.getlist('exercises') - difficulty = request.args.get("difficulty", default=random.choice(difficulties)) - - return gen_listening_section_4(topic, difficulty, req_exercises) - except Exception as e: - return str(e) - - -@app.route('/listening', methods=['POST']) -@jwt_required() -def save_listening(): - try: - data = request.get_json() - parts = data.get('parts') - minTimer = data.get('minTimer', LISTENING_MIN_TIMER_DEFAULT) - difficulty = data.get('difficulty', random.choice(difficulties)) - template = getListeningTemplate() - template['difficulty'] = difficulty - id = data.get('id', str(uuid.uuid4())) - for i, part in enumerate(parts, start=0): - part_template = getListeningPartTemplate() - - file_name = str(uuid.uuid4()) + ".mp3" - sound_file_path = AUDIO_FILES_PATH + file_name - firebase_file_path = FIREBASE_LISTENING_AUDIO_FILES_PATH + file_name - if "conversation" in part["text"]: - conversation_text_to_speech(part["text"]["conversation"], sound_file_path) - else: - text_to_speech(part["text"], sound_file_path) - file_url = upload_file_firebase_get_url(FIREBASE_BUCKET, firebase_file_path, sound_file_path) - - part_template["audio"]["source"] = file_url - part_template["exercises"] = part["exercises"] - - template['parts'].append(part_template) - - if minTimer != LISTENING_MIN_TIMER_DEFAULT: - template["minTimer"] = minTimer - template["variant"] = ExamVariant.PARTIAL.value - else: - template["variant"] = ExamVariant.FULL.value - - (result, id) = save_to_db_with_id(mongo_db, "listening", template, id) - if result: - return {**template, "id": id} - else: - raise Exception("Failed to save question: " + parts) - except Exception as e: - return str(e) - - -@app.route('/writing_task1', methods=['POST']) -@jwt_required() -def grade_writing_task_1(): - try: - data = request.get_json() - question = data.get('question') - answer = data.get('answer') - if not has_words(answer): - return { - 'comment': "The answer does not contain enough english words.", - 'overall': 0, - 'task_response': { - 'Task Achievement': { - "grade": 0.0, - "comment": "" - }, - 'Coherence and Cohesion': { - "grade": 0.0, - "comment": "" - }, - 'Lexical Resource': { - "grade": 0.0, - "comment": "" - }, - 'Grammatical Range and Accuracy': { - "grade": 0.0, - "comment": "" - } - } - } - elif not has_x_words(answer, 100): - return { - 'comment': "The answer is insufficient and too small to be graded.", - 'overall': 0, - 'task_response': { - 'Task Achievement': { - "grade": 0.0, - "comment": "" - }, - 'Coherence and Cohesion': { - "grade": 0.0, - "comment": "" - }, - 'Lexical Resource': { - "grade": 0.0, - "comment": "" - }, - 'Grammatical Range and Accuracy': { - "grade": 0.0, - "comment": "" - } - } - } - else: - json_format = { - "comment": "comment about student's response quality", - "overall": 0.0, - "task_response": { - "Task Achievement": { - "grade": 0.0, - "comment": "comment about Task Achievement of the student's response" - }, - "Coherence and Cohesion": { - "grade": 0.0, - "comment": "comment about Coherence and Cohesion of the student's response" - }, - "Lexical Resource": { - "grade": 0.0, - "comment": "comment about Lexical Resource of the student's response" - }, - "Grammatical Range and Accuracy": { - "grade": 0.0, - "comment": "comment about Grammatical Range and Accuracy of the student's response" - } - } - } - - messages = [ - { - "role": "system", - "content": ('You are a helpful assistant designed to output JSON on this format: ' + str( - json_format)) - }, - { - "role": "user", - "content": ('Evaluate the given Writing Task 1 response based on the IELTS grading system, ' - 'ensuring a strict assessment that penalizes errors. Deduct points for deviations ' - 'from the task, and assign a score of 0 if the response fails to address the question. ' - 'Additionally, provide a detailed commentary highlighting both strengths and ' - 'weaknesses in the response. ' - '\n Question: "' + question + '" \n Answer: "' + answer + '"') - }, - { - "role": "user", - "content": ('Refer to the parts of the letter as: "Greeting Opener", "bullet 1", "bullet 2", ' - '"bullet 3", "closer (restate the purpose of the letter)", "closing greeting"') - } - ] - token_count = count_total_tokens(messages) - response = make_openai_call(GPT_3_5_TURBO, messages, token_count, - ["comment"], - GRADING_TEMPERATURE) - response["perfect_answer"] = get_perfect_answer(question, 150)["perfect_answer"] - response["overall"] = fix_writing_overall(response["overall"], response["task_response"]) - response['fixed_text'] = get_fixed_text(answer) - ai_detection = gpt_zero.run_detection(answer) - if ai_detection is not None: - response['ai_detection'] = ai_detection - return response - except Exception as e: - return str(e) - - -@app.route('/writing_task1_general', methods=['GET']) -@jwt_required() -def get_writing_task_1_general_question(): - difficulty = request.args.get("difficulty", default=random.choice(difficulties)) - topic = request.args.get("topic", default=random.choice(mti_topics)) - try: - return gen_writing_task_1(topic, difficulty) - except Exception as e: - return str(e) - - -def add_newline_before_hyphen(s): - return s.replace(" -", "\n-") - - -@app.route('/writing_task2', methods=['POST']) -@jwt_required() -def grade_writing_task_2(): - try: - data = request.get_json() - question = data.get('question') - answer = data.get('answer') - if not has_words(answer): - return { - 'comment': "The answer does not contain enough english words.", - 'overall': 0, - 'task_response': { - 'Task Achievement': { - "grade": 0.0, - "comment": "" - }, - 'Coherence and Cohesion': { - "grade": 0.0, - "comment": "" - }, - 'Lexical Resource': { - "grade": 0.0, - "comment": "" - }, - 'Grammatical Range and Accuracy': { - "grade": 0.0, - "comment": "" - } - } - } - elif not has_x_words(answer, 180): - return { - 'comment': "The answer is insufficient and too small to be graded.", - 'overall': 0, - 'task_response': { - 'Task Achievement': { - "grade": 0.0, - "comment": "" - }, - 'Coherence and Cohesion': { - "grade": 0.0, - "comment": "" - }, - 'Lexical Resource': { - "grade": 0.0, - "comment": "" - }, - 'Grammatical Range and Accuracy': { - "grade": 0.0, - "comment": "" - } - } - } - else: - json_format = { - "comment": "comment about student's response quality", - "overall": 0.0, - "task_response": { - "Task Achievement": { - "grade": 0.0, - "comment": "comment about Task Achievement of the student's response" - }, - "Coherence and Cohesion": { - "grade": 0.0, - "comment": "comment about Coherence and Cohesion of the student's response" - }, - "Lexical Resource": { - "grade": 0.0, - "comment": "comment about Lexical Resource of the student's response" - }, - "Grammatical Range and Accuracy": { - "grade": 0.0, - "comment": "comment about Grammatical Range and Accuracy of the student's response" - } - } - } - - messages = [ - { - "role": "system", - "content": ('You are a helpful assistant designed to output JSON on this format: ' + str( - json_format)) - }, - { - "role": "user", - "content": ( - 'Evaluate the given Writing Task 2 response based on the IELTS grading system, ensuring a ' - 'strict assessment that penalizes errors. Deduct points for deviations from the task, and ' - 'assign a score of 0 if the response fails to address the question. Additionally, provide' - ' a detailed commentary highlighting ' - 'both strengths and weaknesses in the response.' - '\n Question: "' + question + '" \n Answer: "' + answer + '"') - } - ] - token_count = count_total_tokens(messages) - response = make_openai_call(GPT_4_O, messages, token_count, ["comment"], - GEN_QUESTION_TEMPERATURE) - response["perfect_answer"] = get_perfect_answer(question, 250)["perfect_answer"] - response["overall"] = fix_writing_overall(response["overall"], response["task_response"]) - response['fixed_text'] = get_fixed_text(answer) - ai_detection = gpt_zero.run_detection(answer) - if ai_detection is not None: - response['ai_detection'] = ai_detection - return response - except Exception as e: - return str(e) - - -def fix_writing_overall(overall: float, task_response: dict): - grades = [category["grade"] for category in task_response.values()] - - if overall > max(grades) or overall < min(grades): - total_sum = sum(grades) - average = total_sum / len(grades) - rounded_average = round(average, 0) - return rounded_average - - return overall - - -@app.route('/writing_task2_general', methods=['GET']) -@jwt_required() -def get_writing_task_2_general_question(): - difficulty = request.args.get("difficulty", default=random.choice(difficulties)) - topic = request.args.get("topic", default=random.choice(mti_topics)) - try: - return gen_writing_task_2(topic, difficulty) - except Exception as e: - return str(e) - - -@app.route('/speaking_task_1', methods=['POST']) -@jwt_required() -def grade_speaking_task_1(): - request_id = uuid.uuid4() - delete_files_older_than_one_day(AUDIO_FILES_PATH) - logging.info("POST - speaking_task_1 - Received request to grade speaking task 1. " - "Use this id to track the logs: " + str(request_id) + " - Request data: " + str(request.get_json())) - try: - data = request.get_json() - answers = data.get('answers') - text_answers = [] - perfect_answers = [] - logging.info("POST - speaking_task_1 - " + str( - request_id) + " - Received " + str(len(answers)) + " total answers.") - - for item in answers: - sound_file_name = AUDIO_FILES_PATH + str(uuid.uuid4()) - - logging.info("POST - speaking_task_1 - " + str(request_id) + " - Downloading file " + item["answer"]) - download_firebase_file(FIREBASE_BUCKET, item["answer"], sound_file_name) - logging.info("POST - speaking_task_1 - " + str( - request_id) + " - Downloaded file " + item["answer"] + " to " + sound_file_name) - - answer_text = speech_to_text(sound_file_name) - logging.info("POST - speaking_task_1 - " + str(request_id) + " - Transcripted answer: " + answer_text) - - text_answers.append(answer_text) - item["answer"] = answer_text - os.remove(sound_file_name) - - if not has_x_words(answer_text, 20): - logging.info("POST - speaking_task_1 - " + str( - request_id) + " - The answer had less words than threshold 20 to be graded. Answer: " + answer_text) - return { - "comment": "The audio recorded does not contain enough english words to be graded.", - "overall": 0, - "task_response": { - "Fluency and Coherence": { - "grade": 0.0, - "comment": "" - }, - "Lexical Resource": { - "grade": 0.0, - "comment": "" - }, - "Grammatical Range and Accuracy": { - "grade": 0.0, - "comment": "" - }, - "Pronunciation": { - "grade": 0.0, - "comment": "" - } - } - } - - perfect_answer_messages = [ - { - "role": "system", - "content": ('You are a helpful assistant designed to output JSON on this format: ' - '{"answer": "perfect answer"}') - }, - { - "role": "user", - "content": ( - 'Provide a perfect answer according to ielts grading system to the following ' - 'Speaking Part 1 question: "' + item["question"] + '"') - }, - { - "role": "user", - "content": 'The answer must be 2 or 3 sentences long.' - } - ] - - token_count = count_total_tokens(perfect_answer_messages) - logging.info("POST - speaking_task_1 - " + str( - request_id) + " - Requesting perfect answer for question: " + item["question"]) - perfect_answers.append(make_openai_call(GPT_4_O, - perfect_answer_messages, - token_count, - ["answer"], - GEN_QUESTION_TEMPERATURE)) - - json_format = { - "comment": "comment about answers quality", - "overall": 0.0, - "task_response": { - "Fluency and Coherence": { - "grade": 0.0, - "comment": "comment about fluency and coherence" - }, - "Lexical Resource": { - "grade": 0.0, - "comment": "comment about lexical resource" - }, - "Grammatical Range and Accuracy": { - "grade": 0.0, - "comment": "comment about grammatical range and accuracy" - }, - "Pronunciation": { - "grade": 0.0, - "comment": "comment about pronunciation on the transcribed answers" - } - } - } - - logging.info("POST - speaking_task_1 - " + str(request_id) + " - Formatting answers and questions for prompt.") - formatted_text = "" - for i, entry in enumerate(answers, start=1): - formatted_text += f"**Question {i}:**\n{entry['question']}\n\n" - formatted_text += f"**Answer {i}:**\n{entry['answer']}\n\n" - logging.info("POST - speaking_task_1 - " + str( - request_id) + " - Formatted answers and questions for prompt: " + formatted_text) - - grade_message = ( - 'Evaluate the given Speaking Part 1 response based on the IELTS grading system, ensuring a ' - 'strict assessment that penalizes errors. Deduct points for deviations from the task, and ' - 'assign a score of 0 if the response fails to address the question. Additionally, provide ' - 'detailed commentary highlighting both strengths and weaknesses in the response.' - "\n\n The questions and answers are: \n\n'" + formatted_text) - - messages = [ - { - "role": "system", - "content": ( - 'You are a helpful assistant designed to output JSON on this format: ' + str(json_format)) - }, - { - "role": "user", - "content": grade_message - }, - { - "role": "user", - "content": 'Address the student as "you". If the answers are not 2 or 3 sentences long, warn the ' - 'student that they should be.' - }, - { - "role": "user", - "content": 'For pronunciations act as if you heard the answers and they were transcripted as you heard them.' - }, - { - "role": "user", - "content": 'The comments must be long, detailed, justify the grading and suggest improvements.' - } - ] - token_count = count_total_tokens(messages) - - logging.info("POST - speaking_task_1 - " + str(request_id) + " - Requesting grading of the answer.") - response = make_openai_call(GPT_4_O, messages, token_count, ["comment"], - GRADING_TEMPERATURE) - logging.info("POST - speaking_task_1 - " + str(request_id) + " - Answers graded: " + str(response)) - - logging.info("POST - speaking_task_1 - " + str(request_id) + " - Adding perfect answers to response.") - for i, answer in enumerate(perfect_answers, start=1): - response['perfect_answer_' + str(i)] = answer - - logging.info("POST - speaking_task_1 - " + str( - request_id) + " - Adding transcript and fixed texts to response.") - for i, answer in enumerate(text_answers, start=1): - response['transcript_' + str(i)] = answer - response['fixed_text_' + str(i)] = get_speaking_corrections(answer) - - response["overall"] = fix_speaking_overall(response["overall"], response["task_response"]) - - logging.info("POST - speaking_task_1 - " + str(request_id) + " - Final response: " + str(response)) - return response - except Exception as e: - return str(e), 400 - - -@app.route('/speaking_task_1', methods=['GET']) -@jwt_required() -def get_speaking_task_1_question(): - difficulty = request.args.get("difficulty", default="easy") - first_topic = request.args.get("first_topic", default=random.choice(mti_topics)) - second_topic = request.args.get("second_topic", default=random.choice(mti_topics)) - - try: - return gen_speaking_part_1(first_topic, second_topic, difficulty) - except Exception as e: - return str(e) - - -@app.route('/speaking_task_2', methods=['POST']) -@jwt_required() -def grade_speaking_task_2(): - request_id = uuid.uuid4() - delete_files_older_than_one_day(AUDIO_FILES_PATH) - sound_file_name = AUDIO_FILES_PATH + str(uuid.uuid4()) - logging.info("POST - speaking_task_2 - Received request to grade speaking task 2. " - "Use this id to track the logs: " + str(request_id) + " - Request data: " + str(request.get_json())) - try: - data = request.get_json() - question = data.get('question') - answer_firebase_path = data.get('answer') - - logging.info("POST - speaking_task_2 - " + str(request_id) + " - Downloading file " + answer_firebase_path) - download_firebase_file(FIREBASE_BUCKET, answer_firebase_path, sound_file_name) - logging.info("POST - speaking_task_2 - " + str( - request_id) + " - Downloaded file " + answer_firebase_path + " to " + sound_file_name) - - answer = speech_to_text(sound_file_name) - logging.info("POST - speaking_task_2 - " + str(request_id) + " - Transcripted answer: " + answer) - - json_format = { - "comment": "extensive comment about answer quality", - "overall": 0.0, - "task_response": { - "Fluency and Coherence": { - "grade": 0.0, - "comment": "extensive comment about fluency and coherence, use examples to justify the grade " - "awarded." - }, - "Lexical Resource": { - "grade": 0.0, - "comment": "extensive comment about lexical resource, use examples to justify the grade awarded." - }, - "Grammatical Range and Accuracy": { - "grade": 0.0, - "comment": "extensive comment about grammatical range and accuracy, use examples to justify the " - "grade awarded." - }, - "Pronunciation": { - "grade": 0.0, - "comment": "extensive comment about pronunciation on the transcribed answer, use examples to " - "justify the grade awarded." - } - } - } - - if has_x_words(answer, 20): - messages = [ - { - "role": "system", - "content": ( - 'You are a helpful assistant designed to output JSON on this format: ' + str(json_format)) - }, - { - "role": "user", - "content": ( - 'Evaluate the given Speaking Part 2 response based on the IELTS grading system, ensuring a ' - 'strict assessment that penalizes errors. Deduct points for deviations from the task, and ' - 'assign a score of 0 if the response fails to address the question. Additionally, provide ' - 'detailed commentary highlighting both strengths and weaknesses in the response.' - '\n Question: "' + question + '" \n Answer: "' + answer + '"') - }, - { - "role": "user", - "content": 'Address the student as "you"' - } - ] - token_count = count_total_tokens(messages) - - logging.info("POST - speaking_task_2 - " + str(request_id) + " - Requesting grading of the answer.") - response = make_openai_call(GPT_4_O, messages, token_count, ["comment"], - GRADING_TEMPERATURE) - logging.info("POST - speaking_task_2 - " + str(request_id) + " - Answer graded: " + str(response)) - - perfect_answer_messages = [ - { - "role": "system", - "content": ('You are a helpful assistant designed to output JSON on this format: ' - '{"answer": "perfect answer"}') - }, - { - "role": "user", - "content": ( - 'Provide a perfect answer according to ielts grading system to the following ' - 'Speaking Part 2 question: "' + question + '"') - } - ] - token_count = count_total_tokens(perfect_answer_messages) - - logging.info("POST - speaking_task_2 - " + str(request_id) + " - Requesting perfect answer.") - response['perfect_answer'] = make_openai_call(GPT_3_5_TURBO, - perfect_answer_messages, - token_count, - ["answer"], - GEN_QUESTION_TEMPERATURE)["answer"] - logging.info("POST - speaking_task_2 - " + str( - request_id) + " - Perfect answer: " + response['perfect_answer']) - - response['transcript'] = answer - - logging.info("POST - speaking_task_2 - " + str(request_id) + " - Requesting fixed text.") - response['fixed_text'] = get_speaking_corrections(answer) - logging.info("POST - speaking_task_2 - " + str(request_id) + " - Fixed text: " + response['fixed_text']) - - response["overall"] = fix_speaking_overall(response["overall"], response["task_response"]) - - logging.info("POST - speaking_task_2 - " + str(request_id) + " - Final response: " + str(response)) - return response - else: - logging.info("POST - speaking_task_2 - " + str( - request_id) + " - The answer had less words than threshold 20 to be graded. Answer: " + answer) - return { - "comment": "The audio recorded does not contain enough english words to be graded.", - "overall": 0, - "task_response": { - "Fluency and Coherence": { - "grade": 0.0, - "comment": "" - }, - "Lexical Resource": { - "grade": 0.0, - "comment": "" - }, - "Grammatical Range and Accuracy": { - "grade": 0.0, - "comment": "" - }, - "Pronunciation": { - "grade": 0.0, - "comment": "" - } - } - } - except Exception as e: - os.remove(sound_file_name) - return str(e), 400 - - -@app.route('/speaking_task_2', methods=['GET']) -@jwt_required() -def get_speaking_task_2_question(): - difficulty = request.args.get("difficulty", default=random.choice(difficulties)) - topic = request.args.get("topic", default=random.choice(mti_topics)) - - try: - return gen_speaking_part_2(topic, difficulty) - except Exception as e: - return str(e) - - -@app.route('/speaking_task_3', methods=['GET']) -@jwt_required() -def get_speaking_task_3_question(): - difficulty = request.args.get("difficulty", default=random.choice(difficulties)) - topic = request.args.get("topic", default=random.choice(mti_topics)) - - try: - return gen_speaking_part_3(topic, difficulty) - except Exception as e: - return str(e) - - -@app.route('/speaking_task_3', methods=['POST']) -@jwt_required() -def grade_speaking_task_3(): - request_id = uuid.uuid4() - delete_files_older_than_one_day(AUDIO_FILES_PATH) - logging.info("POST - speaking_task_3 - Received request to grade speaking task 3. " - "Use this id to track the logs: " + str(request_id) + " - Request data: " + str(request.get_json())) - try: - data = request.get_json() - answers = data.get('answers') - text_answers = [] - perfect_answers = [] - logging.info("POST - speaking_task_3 - " + str( - request_id) + " - Received " + str(len(answers)) + " total answers.") - for item in answers: - sound_file_name = AUDIO_FILES_PATH + str(uuid.uuid4()) - - logging.info("POST - speaking_task_3 - " + str(request_id) + " - Downloading file " + item["answer"]) - download_firebase_file(FIREBASE_BUCKET, item["answer"], sound_file_name) - logging.info("POST - speaking_task_3 - " + str( - request_id) + " - Downloaded file " + item["answer"] + " to " + sound_file_name) - - answer_text = speech_to_text(sound_file_name) - logging.info("POST - speaking_task_3 - " + str(request_id) + " - Transcripted answer: " + answer_text) - - text_answers.append(answer_text) - item["answer"] = answer_text - os.remove(sound_file_name) - if not has_x_words(answer_text, 20): - logging.info("POST - speaking_task_3 - " + str( - request_id) + " - The answer had less words than threshold 20 to be graded. Answer: " + answer_text) - return { - "comment": "The audio recorded does not contain enough english words to be graded.", - "overall": 0, - "task_response": { - "Fluency and Coherence": { - "grade": 0.0, - "comment": "" - }, - "Lexical Resource": { - "grade": 0.0, - "comment": "" - }, - "Grammatical Range and Accuracy": { - "grade": 0.0, - "comment": "" - }, - "Pronunciation": { - "grade": 0.0, - "comment": "" - } - } - } - - perfect_answer_messages = [ - { - "role": "system", - "content": ('You are a helpful assistant designed to output JSON on this format: ' - '{"answer": "perfect answer"}') - }, - { - "role": "user", - "content": ( - 'Provide a perfect answer according to ielts grading system to the following ' - 'Speaking Part 3 question: "' + item["question"] + '"') - } - ] - token_count = count_total_tokens(perfect_answer_messages) - logging.info("POST - speaking_task_3 - " + str( - request_id) + " - Requesting perfect answer for question: " + item["question"]) - perfect_answers.append(make_openai_call(GPT_3_5_TURBO, - perfect_answer_messages, - token_count, - ["answer"], - GEN_QUESTION_TEMPERATURE)) - - json_format = { - "comment": "extensive comment about answer quality", - "overall": 0.0, - "task_response": { - "Fluency and Coherence": { - "grade": 0.0, - "comment": "extensive comment about fluency and coherence, use examples to justify the grade awarded." - }, - "Lexical Resource": { - "grade": 0.0, - "comment": "extensive comment about lexical resource, use examples to justify the grade awarded." - }, - "Grammatical Range and Accuracy": { - "grade": 0.0, - "comment": "extensive comment about grammatical range and accuracy, use examples to justify the grade awarded." - }, - "Pronunciation": { - "grade": 0.0, - "comment": "extensive comment about pronunciation on the transcribed answer, use examples to justify the grade awarded." - } - } - } - - logging.info("POST - speaking_task_3 - " + str(request_id) + " - Formatting answers and questions for prompt.") - formatted_text = "" - for i, entry in enumerate(answers, start=1): - formatted_text += f"**Question {i}:**\n{entry['question']}\n\n" - formatted_text += f"**Answer {i}:**\n{entry['answer']}\n\n" - logging.info("POST - speaking_task_3 - " + str( - request_id) + " - Formatted answers and questions for prompt: " + formatted_text) - - grade_message = ( - "Evaluate the given Speaking Part 3 response based on the IELTS grading system, ensuring a " - "strict assessment that penalizes errors. Deduct points for deviations from the task, and " - "assign a score of 0 if the response fails to address the question. Additionally, provide detailed " - "commentary highlighting both strengths and weaknesses in the response." - "\n\n The questions and answers are: \n\n'") - - messages = [ - { - "role": "system", - "content": ( - 'You are a helpful assistant designed to output JSON on this format: ' + str(json_format)) - }, - { - "role": "user", - "content": grade_message - }, - { - "role": "user", - "content": 'Address the student as "you" and pay special attention to coherence between the answers.' - }, - { - "role": "user", - "content": 'For pronunciations act as if you heard the answers and they were transcripted as you heard them.' - }, - { - "role": "user", - "content": 'The comments must be long, detailed, justify the grading and suggest improvements.' - } - ] - - token_count = count_total_tokens(messages) - - logging.info("POST - speaking_task_3 - " + str(request_id) + " - Requesting grading of the answers.") - response = make_openai_call(GPT_4_O, messages, token_count, ["comment"], GRADING_TEMPERATURE) - logging.info("POST - speaking_task_3 - " + str(request_id) + " - Answers graded: " + str(response)) - - logging.info("POST - speaking_task_3 - " + str(request_id) + " - Adding perfect answers to response.") - for i, answer in enumerate(perfect_answers, start=1): - response['perfect_answer_' + str(i)] = answer - - logging.info("POST - speaking_task_3 - " + str( - request_id) + " - Adding transcript and fixed texts to response.") - for i, answer in enumerate(text_answers, start=1): - response['transcript_' + str(i)] = answer - response['fixed_text_' + str(i)] = get_speaking_corrections(answer) - response["overall"] = fix_speaking_overall(response["overall"], response["task_response"]) - logging.info("POST - speaking_task_3 - " + str(request_id) + " - Final response: " + str(response)) - return response - except Exception as e: - return str(e), 400 - - -def fix_speaking_overall(overall: float, task_response: dict): - grades = [category["grade"] for category in task_response.values()] - - if overall > max(grades) or overall < min(grades): - total_sum = sum(grades) - average = total_sum / len(grades) - rounded_average = round(average, 0) - return rounded_average - - return overall - - -@app.route('/speaking', methods=['POST']) -@jwt_required() -def save_speaking(): - try: - data = request.get_json() - exercises = data.get('exercises') - minTimer = data.get('minTimer', SPEAKING_MIN_TIMER_DEFAULT) - template = getSpeakingTemplate() - template["minTimer"] = minTimer - - if minTimer < SPEAKING_MIN_TIMER_DEFAULT: - template["variant"] = ExamVariant.PARTIAL.value - else: - template["variant"] = ExamVariant.FULL.value - - id = str(uuid.uuid4()) - app.logger.info('Received request to save speaking with id: ' + id) - thread_event.set() - thread = threading.Thread( - target=create_videos_and_save_to_db, - args=(exercises, template, id), - name=("thread-save-speaking-" + id) - ) - thread.start() - app.logger.info('Started thread to save speaking. Thread: ' + thread.name) - - # Return response without waiting for create_videos_and_save_to_db to finish - return {**template, "id": id} - except Exception as e: - return str(e) - - -@app.route("/speaking/generate_video_1", methods=['POST']) -@jwt_required() -def generate_video_1(): - try: - data = request.get_json() - sp1_questions = [] - avatar = data.get("avatar", random.choice(list(AvatarEnum)).value) - - request_id = str(uuid.uuid4()) - logging.info("POST - generate_video_1 - Received request to generate video 1. " - "Use this id to track the logs: " + str(request_id) + " - Request data: " + str( - request.get_json())) - - id_to_name = { - "5912afa7c77c47d3883af3d874047aaf": "MATTHEW", - "9e58d96a383e4568a7f1e49df549e0e4": "VERA", - "d2cdd9c0379a4d06ae2afb6e5039bd0c": "EDWARD", - "045cb5dcd00042b3a1e4f3bc1c12176b": "TANYA", - "1ae1e5396cc444bfad332155fdb7a934": "KAYLA", - "0ee6aa7cc1084063a630ae514fccaa31": "JEROME", - "5772cff935844516ad7eeff21f839e43": "TYLER", - - } - - standard_questions = [ - "Hello my name is " + id_to_name.get(avatar) + ", what is yours?", - "Do you work or do you study?" - ] - questions = standard_questions + data["questions"] - logging.info("POST - generate_video_1 - " + str(request_id) + " - Creating videos for speaking part 1.") - for question in questions: - logging.info("POST - generate_video_1 - " + str(request_id) + " - Creating video for question: " + question) - result = create_video(question, avatar) - logging.info("POST - generate_video_1 - " + str(request_id) + " - Video created: " + result) - if result is not None: - sound_file_path = VIDEO_FILES_PATH + result - firebase_file_path = FIREBASE_SPEAKING_VIDEO_FILES_PATH + result - logging.info( - "POST - generate_video_1 - " + str( - request_id) + " - Uploading video to firebase: " + firebase_file_path) - url = upload_file_firebase_get_url(FIREBASE_BUCKET, firebase_file_path, sound_file_path) - logging.info( - "POST - generate_video_1 - " + str( - request_id) + " - Uploaded video to firebase: " + url) - video = { - "text": question, - "video_path": firebase_file_path, - "video_url": url - } - sp1_questions.append(video) - else: - logging.error("POST - generate_video_1 - " + str( - request_id) + " - Failed to create video for part 1 question: " + question) - - response = { - "prompts": sp1_questions, - "first_title": data["first_topic"], - "second_title": data["second_topic"], - "type": "interactiveSpeaking", - "id": uuid.uuid4() - } - logging.info( - "POST - generate_video_1 - " + str( - request_id) + " - Finished creating videos for speaking part 1: " + str(response)) - return response - except Exception as e: - return str(e) - - -@app.route("/speaking/generate_video_2", methods=['POST']) -@jwt_required() -def generate_video_2(): - try: - data = request.get_json() - avatar = data.get("avatar", random.choice(list(AvatarEnum)).value) - prompts = data.get("prompts", []) - question = data.get("question") - suffix = data.get("suffix", "") - - # Removed as the examiner should not say what is on the card. - # question = question + " In your answer you should consider: " + " ".join(prompts) + suffix - question = question + "\nYou have 1 minute to take notes." - - request_id = str(uuid.uuid4()) - logging.info("POST - generate_video_2 - Received request to generate video 2. " - "Use this id to track the logs: " + str(request_id) + " - Request data: " + str( - request.get_json())) - - logging.info("POST - generate_video_2 - " + str(request_id) + " - Creating video for speaking part 2.") - logging.info("POST - generate_video_2 - " + str(request_id) + " - Creating video for question: " + question) - result = create_video(question, avatar) - logging.info("POST - generate_video_2 - " + str(request_id) + " - Video created: " + result) - - if result is not None: - sound_file_path = VIDEO_FILES_PATH + result - firebase_file_path = FIREBASE_SPEAKING_VIDEO_FILES_PATH + result - logging.info( - "POST - generate_video_2 - " + str( - request_id) + " - Uploading video to firebase: " + firebase_file_path) - url = upload_file_firebase_get_url(FIREBASE_BUCKET, firebase_file_path, sound_file_path) - logging.info( - "POST - generate_video_2 - " + str( - request_id) + " - Uploaded video to firebase: " + url) - sp1_video_path = firebase_file_path - sp1_video_url = url - - return { - "text": data["question"], - "prompts": prompts, - "title": data["topic"], - "video_url": sp1_video_url, - "video_path": sp1_video_path, - "type": "speaking", - "id": uuid.uuid4(), - "suffix": suffix - } - else: - logging.error("POST - generate_video_2 - " + str( - request_id) + " - Failed to create video for part 2 question: " + question) - return str("Failed to create video for part 2 question: " + data["question"]) - - except Exception as e: - return str(e) - - -@app.route("/speaking/generate_video_3", methods=['POST']) -@jwt_required() -def generate_video_3(): - try: - data = request.get_json() - sp3_questions = [] - avatar = data.get("avatar", random.choice(list(AvatarEnum)).value) - - request_id = str(uuid.uuid4()) - logging.info("POST - generate_video_3 - Received request to generate video 3. " - "Use this id to track the logs: " + str(request_id) + " - Request data: " + str( - request.get_json())) - - logging.info("POST - generate_video_3 - " + str(request_id) + " - Creating videos for speaking part 3.") - for question in data["questions"]: - logging.info("POST - generate_video_3 - " + str(request_id) + " - Creating video for question: " + question) - result = create_video(question, avatar) - logging.info("POST - generate_video_3 - " + str(request_id) + " - Video created: " + result) - - if result is not None: - sound_file_path = VIDEO_FILES_PATH + result - firebase_file_path = FIREBASE_SPEAKING_VIDEO_FILES_PATH + result - logging.info( - "POST - generate_video_3 - " + str( - request_id) + " - Uploading video to firebase: " + firebase_file_path) - url = upload_file_firebase_get_url(FIREBASE_BUCKET, firebase_file_path, sound_file_path) - logging.info( - "POST - generate_video_3 - " + str( - request_id) + " - Uploaded video to firebase: " + url) - video = { - "text": question, - "video_path": firebase_file_path, - "video_url": url - } - sp3_questions.append(video) - else: - logging.error("POST - generate_video_3 - " + str( - request_id) + " - Failed to create video for part 3 question: " + question) - - response = { - "prompts": sp3_questions, - "title": data["topic"], - "type": "interactiveSpeaking", - "id": uuid.uuid4() - } - logging.info( - "POST - generate_video_3 - " + str( - request_id) + " - Finished creating videos for speaking part 3: " + str(response)) - return response - except Exception as e: - return str(e) - - -@app.route('/reading_passage_1', methods=['GET']) -@jwt_required() -def get_reading_passage_1_question(): - try: - # Extract parameters from the URL query string - topic = request.args.get('topic', default=random.choice(topics)) - req_exercises = request.args.getlist('exercises') - difficulty = request.args.get("difficulty", default=random.choice(difficulties)) - return gen_reading_passage_1(topic, difficulty, req_exercises) - except Exception as e: - return str(e) - - -@app.route('/reading_passage_2', methods=['GET']) -@jwt_required() -def get_reading_passage_2_question(): - try: - # Extract parameters from the URL query string - topic = request.args.get('topic', default=random.choice(topics)) - req_exercises = request.args.getlist('exercises') - difficulty = request.args.get("difficulty", default=random.choice(difficulties)) - return gen_reading_passage_2(topic, difficulty, req_exercises) - except Exception as e: - return str(e) - - -@app.route('/reading_passage_3', methods=['GET']) -@jwt_required() -def get_reading_passage_3_question(): - try: - # Extract parameters from the URL query string - topic = request.args.get('topic', default=random.choice(topics)) - req_exercises = request.args.getlist('exercises') - difficulty = request.args.get("difficulty", default=random.choice(difficulties)) - return gen_reading_passage_3(topic, difficulty, req_exercises) - except Exception as e: - return str(e) - - -@app.route('/level', methods=['GET']) -@jwt_required() -def get_level_exam(): - try: - number_of_exercises = 25 - exercises = gen_multiple_choice_level(mongo_db, number_of_exercises) - return { - "exercises": [exercises], - "isDiagnostic": False, - "minTimer": 25, - "module": "level" - } - except Exception as e: - return str(e) - - -@app.route('/level_utas', methods=['GET']) -@jwt_required() -def get_level_utas(): - try: - # Formats - mc = { - "id": str(uuid.uuid4()), - "prompt": "Choose the correct word or group of words that completes the sentences.", - "questions": None, - "type": "multipleChoice", - "part": 1 - } - - umc = { - "id": str(uuid.uuid4()), - "prompt": "Choose the underlined word or group of words that is not correct.", - "questions": None, - "type": "multipleChoice", - "part": 2 - } - - bs_1 = { - "id": str(uuid.uuid4()), - "prompt": "Read the text and write the correct word for each space.", - "questions": None, - "type": "blankSpaceText", - "part": 3 - } - - bs_2 = { - "id": str(uuid.uuid4()), - "prompt": "Read the text and write the correct word for each space.", - "questions": None, - "type": "blankSpaceText", - "part": 4 - } - - reading = { - "id": str(uuid.uuid4()), - "prompt": "Read the text and answer the questions below.", - "questions": None, - "type": "readingExercises", - "part": 5 - } - - all_mc_questions = [] - - # PART 1 - mc_exercises1 = gen_multiple_choice_blank_space_utas(15, 1, all_mc_questions) - print(json.dumps(mc_exercises1, indent=4)) - all_mc_questions.append(mc_exercises1) - - # PART 2 - mc_exercises2 = gen_multiple_choice_blank_space_utas(15, 16, all_mc_questions) - print(json.dumps(mc_exercises2, indent=4)) - all_mc_questions.append(mc_exercises2) - - # PART 3 - mc_exercises3 = gen_multiple_choice_blank_space_utas(15, 31, all_mc_questions) - print(json.dumps(mc_exercises3, indent=4)) - all_mc_questions.append(mc_exercises3) - - mc_exercises = mc_exercises1['questions'] + mc_exercises2['questions'] + mc_exercises3['questions'] - print(json.dumps(mc_exercises, indent=4)) - mc["questions"] = mc_exercises - - # Underlined mc - underlined_mc = gen_multiple_choice_underlined_utas(15, 46) - print(json.dumps(underlined_mc, indent=4)) - umc["questions"] = underlined_mc - - # Blank Space text 1 - blank_space_text_1 = gen_blank_space_text_utas(12, 61, 250) - print(json.dumps(blank_space_text_1, indent=4)) - bs_1["questions"] = blank_space_text_1 - - # Blank Space text 2 - blank_space_text_2 = gen_blank_space_text_utas(14, 73, 350) - print(json.dumps(blank_space_text_2, indent=4)) - bs_2["questions"] = blank_space_text_2 - - # Reading text - reading_text = gen_reading_passage_utas(mongo_db, 87, 10, 4) - print(json.dumps(reading_text, indent=4)) - reading["questions"] = reading_text - - return { - "exercises": { - "blankSpaceMultipleChoice": mc, - "underlinedMultipleChoice": umc, - "blankSpaceText1": bs_1, - "blankSpaceText2": bs_2, - "readingExercises": reading, - }, - "isDiagnostic": False, - "minTimer": 25, - "module": "level" - } - except Exception as e: - return str(e) - - -from enum import Enum - - -class CustomLevelExerciseTypes(Enum): - MULTIPLE_CHOICE_4 = "multiple_choice_4" - MULTIPLE_CHOICE_BLANK_SPACE = "multiple_choice_blank_space" - MULTIPLE_CHOICE_UNDERLINED = "multiple_choice_underlined" - FILL_BLANKS_MC = "fill_blanks_mc" - BLANK_SPACE_TEXT = "blank_space_text" - READING_PASSAGE_UTAS = "reading_passage_utas" - WRITING_LETTER = "writing_letter" - WRITING_2 = "writing_2" - SPEAKING_1 = "speaking_1" - SPEAKING_2 = "speaking_2" - SPEAKING_3 = "speaking_3" - READING_1 = "reading_1" - READING_2 = "reading_2" - READING_3 = "reading_3" - LISTENING_1 = "listening_1" - LISTENING_2 = "listening_2" - LISTENING_3 = "listening_3" - LISTENING_4 = "listening_4" - - -@app.route('/custom_level', methods=['GET']) -@jwt_required() -def get_custom_level(): - nr_exercises = int(request.args.get('nr_exercises')) - - exercise_id = 1 - response = { - "exercises": {}, - "module": "level" - } - for i in range(1, nr_exercises + 1, 1): - exercise_type = request.args.get('exercise_' + str(i) + '_type') - exercise_difficulty = request.args.get('exercise_' + str(i) + '_difficulty', - random.choice(['easy', 'medium', 'hard'])) - exercise_qty = int(request.args.get('exercise_' + str(i) + '_qty', -1)) - exercise_topic = request.args.get('exercise_' + str(i) + '_topic', random.choice(topics)) - exercise_topic_2 = request.args.get('exercise_' + str(i) + '_topic_2', random.choice(topics)) - exercise_text_size = int(request.args.get('exercise_' + str(i) + '_text_size', 700)) - exercise_sa_qty = int(request.args.get('exercise_' + str(i) + '_sa_qty', -1)) - exercise_mc_qty = int(request.args.get('exercise_' + str(i) + '_mc_qty', -1)) - exercise_mc3_qty = int(request.args.get('exercise_' + str(i) + '_mc3_qty', -1)) - exercise_fillblanks_qty = int(request.args.get('exercise_' + str(i) + '_fillblanks_qty', -1)) - exercise_writeblanks_qty = int(request.args.get('exercise_' + str(i) + '_writeblanks_qty', -1)) - exercise_writeblanksquestions_qty = int( - request.args.get('exercise_' + str(i) + '_writeblanksquestions_qty', -1)) - exercise_writeblanksfill_qty = int(request.args.get('exercise_' + str(i) + '_writeblanksfill_qty', -1)) - exercise_writeblanksform_qty = int(request.args.get('exercise_' + str(i) + '_writeblanksform_qty', -1)) - exercise_truefalse_qty = int(request.args.get('exercise_' + str(i) + '_truefalse_qty', -1)) - exercise_paragraphmatch_qty = int(request.args.get('exercise_' + str(i) + '_paragraphmatch_qty', -1)) - exercise_ideamatch_qty = int(request.args.get('exercise_' + str(i) + '_ideamatch_qty', -1)) - - if exercise_type == CustomLevelExerciseTypes.MULTIPLE_CHOICE_4.value: - response["exercises"]["exercise_" + str(i)] = {} - response["exercises"]["exercise_" + str(i)]["questions"] = [] - response["exercises"]["exercise_" + str(i)]["type"] = "multipleChoice" - while exercise_qty > 0: - if exercise_qty - 15 > 0: - qty = 15 - else: - qty = exercise_qty - - response["exercises"]["exercise_" + str(i)]["questions"].extend( - generate_level_mc(exercise_id, qty, - response["exercises"]["exercise_" + str(i)]["questions"])["questions"]) - exercise_id = exercise_id + qty - exercise_qty = exercise_qty - qty - - elif exercise_type == CustomLevelExerciseTypes.MULTIPLE_CHOICE_BLANK_SPACE.value: - response["exercises"]["exercise_" + str(i)] = {} - response["exercises"]["exercise_" + str(i)]["questions"] = [] - response["exercises"]["exercise_" + str(i)]["type"] = "multipleChoice" - while exercise_qty > 0: - if exercise_qty - 15 > 0: - qty = 15 - else: - qty = exercise_qty - - response["exercises"]["exercise_" + str(i)]["questions"].extend( - gen_multiple_choice_blank_space_utas(qty, exercise_id, - response["exercises"]["exercise_" + str(i)]["questions"])[ - "questions"]) - exercise_id = exercise_id + qty - exercise_qty = exercise_qty - qty - - elif exercise_type == CustomLevelExerciseTypes.MULTIPLE_CHOICE_UNDERLINED.value: - response["exercises"]["exercise_" + str(i)] = {} - response["exercises"]["exercise_" + str(i)]["questions"] = [] - response["exercises"]["exercise_" + str(i)]["type"] = "multipleChoice" - while exercise_qty > 0: - if exercise_qty - 15 > 0: - qty = 15 - else: - qty = exercise_qty - - response["exercises"]["exercise_" + str(i)]["questions"].extend( - gen_multiple_choice_underlined_utas(qty, exercise_id, - response["exercises"]["exercise_" + str(i)]["questions"])[ - "questions"]) - exercise_id = exercise_id + qty - exercise_qty = exercise_qty - qty - - elif exercise_type == CustomLevelExerciseTypes.FILL_BLANKS_MC.value: - response["exercises"]["exercise_" + str(i)] = gen_fill_blanks_mc_utas( - exercise_qty, exercise_id, exercise_text_size - ) - response["exercises"]["exercise_" + str(i)]["type"] = "fillBlanks" - response["exercises"]["exercise_" + str(i)]["variant"] = "mc" - exercise_id = exercise_id + exercise_qty - - elif exercise_type == CustomLevelExerciseTypes.BLANK_SPACE_TEXT.value: - response["exercises"]["exercise_" + str(i)] = gen_blank_space_text_utas(exercise_qty, exercise_id, - exercise_text_size) - response["exercises"]["exercise_" + str(i)]["type"] = "blankSpaceText" - exercise_id = exercise_id + exercise_qty - elif exercise_type == CustomLevelExerciseTypes.READING_PASSAGE_UTAS.value: - response["exercises"]["exercise_" + str(i)] = gen_reading_passage_utas(exercise_id, exercise_sa_qty, - exercise_mc_qty, exercise_topic) - response["exercises"]["exercise_" + str(i)]["type"] = "readingExercises" - exercise_id = exercise_id + exercise_qty - elif exercise_type == CustomLevelExerciseTypes.WRITING_LETTER.value: - response["exercises"]["exercise_" + str(i)] = gen_writing_task_1(exercise_topic, exercise_difficulty) - response["exercises"]["exercise_" + str(i)]["type"] = "writing" - exercise_id = exercise_id + 1 - elif exercise_type == CustomLevelExerciseTypes.WRITING_2.value: - response["exercises"]["exercise_" + str(i)] = gen_writing_task_2(exercise_topic, exercise_difficulty) - response["exercises"]["exercise_" + str(i)]["type"] = "writing" - exercise_id = exercise_id + 1 - elif exercise_type == CustomLevelExerciseTypes.SPEAKING_1.value: - response["exercises"]["exercise_" + str(i)] = ( - gen_speaking_part_1(exercise_topic, exercise_topic_2, exercise_difficulty)) - response["exercises"]["exercise_" + str(i)]["type"] = "interactiveSpeaking" - exercise_id = exercise_id + 1 - elif exercise_type == CustomLevelExerciseTypes.SPEAKING_2.value: - response["exercises"]["exercise_" + str(i)] = gen_speaking_part_2(exercise_topic, exercise_difficulty) - response["exercises"]["exercise_" + str(i)]["type"] = "speaking" - exercise_id = exercise_id + 1 - elif exercise_type == CustomLevelExerciseTypes.SPEAKING_3.value: - response["exercises"]["exercise_" + str(i)] = gen_speaking_part_3(exercise_topic, exercise_difficulty) - response["exercises"]["exercise_" + str(i)]["type"] = "interactiveSpeaking" - exercise_id = exercise_id + 1 - elif exercise_type == CustomLevelExerciseTypes.READING_1.value: - exercises = [] - exercise_qty_q = queue.Queue() - total_qty = 0 - if exercise_fillblanks_qty != -1: - exercises.append('fillBlanks') - exercise_qty_q.put(exercise_fillblanks_qty) - total_qty = total_qty + exercise_fillblanks_qty - if exercise_writeblanks_qty != -1: - exercises.append('writeBlanks') - exercise_qty_q.put(exercise_writeblanks_qty) - total_qty = total_qty + exercise_writeblanks_qty - if exercise_truefalse_qty != -1: - exercises.append('trueFalse') - exercise_qty_q.put(exercise_truefalse_qty) - total_qty = total_qty + exercise_truefalse_qty - if exercise_paragraphmatch_qty != -1: - exercises.append('paragraphMatch') - exercise_qty_q.put(exercise_paragraphmatch_qty) - total_qty = total_qty + exercise_paragraphmatch_qty - - response["exercises"]["exercise_" + str(i)] = gen_reading_passage_1(exercise_topic, exercise_difficulty, - exercises, exercise_qty_q, exercise_id) - response["exercises"]["exercise_" + str(i)]["type"] = "reading" - - exercise_id = exercise_id + total_qty - elif exercise_type == CustomLevelExerciseTypes.READING_2.value: - exercises = [] - exercise_qty_q = queue.Queue() - total_qty = 0 - if exercise_fillblanks_qty != -1: - exercises.append('fillBlanks') - exercise_qty_q.put(exercise_fillblanks_qty) - total_qty = total_qty + exercise_fillblanks_qty - if exercise_writeblanks_qty != -1: - exercises.append('writeBlanks') - exercise_qty_q.put(exercise_writeblanks_qty) - total_qty = total_qty + exercise_writeblanks_qty - if exercise_truefalse_qty != -1: - exercises.append('trueFalse') - exercise_qty_q.put(exercise_truefalse_qty) - total_qty = total_qty + exercise_truefalse_qty - if exercise_paragraphmatch_qty != -1: - exercises.append('paragraphMatch') - exercise_qty_q.put(exercise_paragraphmatch_qty) - total_qty = total_qty + exercise_paragraphmatch_qty - - response["exercises"]["exercise_" + str(i)] = gen_reading_passage_2(exercise_topic, exercise_difficulty, - exercises, exercise_qty_q, exercise_id) - response["exercises"]["exercise_" + str(i)]["type"] = "reading" - - exercise_id = exercise_id + total_qty - elif exercise_type == CustomLevelExerciseTypes.READING_3.value: - exercises = [] - exercise_qty_q = queue.Queue() - total_qty = 0 - if exercise_fillblanks_qty != -1: - exercises.append('fillBlanks') - exercise_qty_q.put(exercise_fillblanks_qty) - total_qty = total_qty + exercise_fillblanks_qty - if exercise_writeblanks_qty != -1: - exercises.append('writeBlanks') - exercise_qty_q.put(exercise_writeblanks_qty) - total_qty = total_qty + exercise_writeblanks_qty - if exercise_truefalse_qty != -1: - exercises.append('trueFalse') - exercise_qty_q.put(exercise_truefalse_qty) - total_qty = total_qty + exercise_truefalse_qty - if exercise_paragraphmatch_qty != -1: - exercises.append('paragraphMatch') - exercise_qty_q.put(exercise_paragraphmatch_qty) - total_qty = total_qty + exercise_paragraphmatch_qty - if exercise_ideamatch_qty != -1: - exercises.append('ideaMatch') - exercise_qty_q.put(exercise_ideamatch_qty) - total_qty = total_qty + exercise_ideamatch_qty - - response["exercises"]["exercise_" + str(i)] = gen_reading_passage_3(exercise_topic, exercise_difficulty, - exercises, exercise_qty_q, exercise_id) - response["exercises"]["exercise_" + str(i)]["type"] = "reading" - - exercise_id = exercise_id + total_qty - elif exercise_type == CustomLevelExerciseTypes.LISTENING_1.value: - exercises = [] - exercise_qty_q = queue.Queue() - total_qty = 0 - if exercise_mc_qty != -1: - exercises.append('multipleChoice') - exercise_qty_q.put(exercise_mc_qty) - total_qty = total_qty + exercise_mc_qty - if exercise_writeblanksquestions_qty != -1: - exercises.append('writeBlanksQuestions') - exercise_qty_q.put(exercise_writeblanksquestions_qty) - total_qty = total_qty + exercise_writeblanksquestions_qty - if exercise_writeblanksfill_qty != -1: - exercises.append('writeBlanksFill') - exercise_qty_q.put(exercise_writeblanksfill_qty) - total_qty = total_qty + exercise_writeblanksfill_qty - if exercise_writeblanksform_qty != -1: - exercises.append('writeBlanksForm') - exercise_qty_q.put(exercise_writeblanksform_qty) - total_qty = total_qty + exercise_writeblanksform_qty - - response["exercises"]["exercise_" + str(i)] = gen_listening_section_1(exercise_topic, exercise_difficulty, - exercises, exercise_qty_q, - exercise_id) - response["exercises"]["exercise_" + str(i)]["type"] = "listening" - - exercise_id = exercise_id + total_qty - elif exercise_type == CustomLevelExerciseTypes.LISTENING_2.value: - exercises = [] - exercise_qty_q = queue.Queue() - total_qty = 0 - if exercise_mc_qty != -1: - exercises.append('multipleChoice') - exercise_qty_q.put(exercise_mc_qty) - total_qty = total_qty + exercise_mc_qty - if exercise_writeblanksquestions_qty != -1: - exercises.append('writeBlanksQuestions') - exercise_qty_q.put(exercise_writeblanksquestions_qty) - total_qty = total_qty + exercise_writeblanksquestions_qty - - response["exercises"]["exercise_" + str(i)] = gen_listening_section_2(exercise_topic, exercise_difficulty, - exercises, exercise_qty_q, - exercise_id) - response["exercises"]["exercise_" + str(i)]["type"] = "listening" - - exercise_id = exercise_id + total_qty - elif exercise_type == CustomLevelExerciseTypes.LISTENING_3.value: - exercises = [] - exercise_qty_q = queue.Queue() - total_qty = 0 - if exercise_mc3_qty != -1: - exercises.append('multipleChoice3Options') - exercise_qty_q.put(exercise_mc3_qty) - total_qty = total_qty + exercise_mc3_qty - if exercise_writeblanksquestions_qty != -1: - exercises.append('writeBlanksQuestions') - exercise_qty_q.put(exercise_writeblanksquestions_qty) - total_qty = total_qty + exercise_writeblanksquestions_qty - - response["exercises"]["exercise_" + str(i)] = gen_listening_section_3(exercise_topic, exercise_difficulty, - exercises, exercise_qty_q, - exercise_id) - response["exercises"]["exercise_" + str(i)]["type"] = "listening" - - exercise_id = exercise_id + total_qty - elif exercise_type == CustomLevelExerciseTypes.LISTENING_4.value: - exercises = [] - exercise_qty_q = queue.Queue() - total_qty = 0 - if exercise_mc_qty != -1: - exercises.append('multipleChoice') - exercise_qty_q.put(exercise_mc_qty) - total_qty = total_qty + exercise_mc_qty - if exercise_writeblanksquestions_qty != -1: - exercises.append('writeBlanksQuestions') - exercise_qty_q.put(exercise_writeblanksquestions_qty) - total_qty = total_qty + exercise_writeblanksquestions_qty - if exercise_writeblanksfill_qty != -1: - exercises.append('writeBlanksFill') - exercise_qty_q.put(exercise_writeblanksfill_qty) - total_qty = total_qty + exercise_writeblanksfill_qty - if exercise_writeblanksform_qty != -1: - exercises.append('writeBlanksForm') - exercise_qty_q.put(exercise_writeblanksform_qty) - total_qty = total_qty + exercise_writeblanksform_qty - - response["exercises"]["exercise_" + str(i)] = gen_listening_section_4(exercise_topic, exercise_difficulty, - exercises, exercise_qty_q, - exercise_id) - response["exercises"]["exercise_" + str(i)]["type"] = "listening" - - exercise_id = exercise_id + total_qty - - return response - - -@app.route('/grade_short_answers', methods=['POST']) -@jwt_required() -def grade_short_answers(): - data = request.get_json() - - json_format = { - "exercises": [ - { - "id": 1, - "correct": True, - "correct_answer": " correct answer if wrong" - } - ] - } - - try: - messages = [ - { - "role": "system", - "content": ( - 'You are a helpful assistant designed to output JSON on this format: ' + str(json_format)) - }, - { - "role": "user", - "content": 'Grade these answers according to the text content and write a correct answer if they are ' - 'wrong. Text, questions and answers:\n ' + str(data) - - } - ] - token_count = count_total_tokens(messages) - response = make_openai_call(GPT_4_O, messages, token_count, GEN_FIELDS, GEN_QUESTION_TEMPERATURE) - return response - except Exception as e: - return str(e) - - -@app.route('/fetch_tips', methods=['POST']) -@jwt_required() -def fetch_answer_tips(): - try: - data = request.get_json() - context = data.get('context') - question = data.get('question') - answer = data.get('answer') - correct_answer = data.get('correct_answer') - messages = get_question_tips(question, answer, correct_answer, context) - token_count = reduce(lambda count, item: count + count_tokens(item)['n_tokens'], - map(lambda x: x["content"], filter(lambda x: "content" in x, messages)), 0) - response = make_openai_call(GPT_3_5_TURBO, messages, token_count, None, TIPS_TEMPERATURE) - - if isinstance(response, str): - response = re.sub(r"^[a-zA-Z0-9_]+\:\s*", "", response) - - return response - except Exception as e: - return str(e) - - -@app.route('/grading_summary', methods=['POST']) -@jwt_required() -def grading_summary(): - # Body Format - # {'sections': Array of {'code': key, 'name': name, 'grade': grade}} - # Output Format - # {'sections': Array of {'code': key, 'name': name, 'grade': grade, 'evaluation': evaluation, 'suggestions': suggestions}} - try: - return calculate_grading_summary(request.get_json()) - except Exception as e: - return str(e) - - -@app.route('/training_content', methods=['POST']) -@jwt_required() -def training_content(): - try: - return tc_service.get_tips(request.get_json()) - except Exception as e: - app.logger.error(str(e)) - return str(e) - - -# TODO: create a doc in firestore with a status and get its id, run this in a thread and modify the doc in firestore, -# return the id right away, in generation view poll for the id -@app.route('/upload_level', methods=['POST']) -def upload_file(): - if 'file' not in request.files: - return 'File wasn\'t uploaded', 400 - file = request.files['file'] - if file.filename == '': - return 'No selected file', 400 - if file: - return upload_level_service.generate_level_from_file(file), 200 - - -@app.route('/batch_users', methods=['POST']) -def create_users_batch(): - try: - return batch_users_service.batch_users(request.get_json()) - except Exception as e: - app.logger.error(str(e)) - return str(e) - - -if __name__ == '__main__': - app.run() +@click.command() +@click.option( + "--env", + type=click.Choice(["local", "staging", "production"], case_sensitive=False), + default="staging", +) +def main(env: str): + uvicorn.run( + app="ielts_be:app", + host="localhost", + port=8000, + reload=True if env != "production" else False, + workers=1, + ) + + +if __name__ == "__main__": + main() diff --git a/audio-samples/placeholder.txt b/audio-samples/placeholder.txt deleted file mode 100644 index f89d219..0000000 --- a/audio-samples/placeholder.txt +++ /dev/null @@ -1 +0,0 @@ -THIS FILE ONLY EXISTS TO KEEP THIS FOLDER IN THE REPO \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 5c9e43e..7848999 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,10 +1,10 @@ -version: "3" - -services: - ielts-be: - container_name: ielts-be - build: . - image: ecrop/ielts-be:latest - ports: - - 8080:5000 - restart: unless-stopped +version: "3" + +services: + ielts-be: + container_name: ielts-be + build: . + image: ecrop/ielts-be:latest + ports: + - 8080:8000 + restart: unless-stopped diff --git a/download-audio/placeholder.txt b/download-audio/placeholder.txt deleted file mode 100644 index f89d219..0000000 --- a/download-audio/placeholder.txt +++ /dev/null @@ -1 +0,0 @@ -THIS FILE ONLY EXISTS TO KEEP THIS FOLDER IN THE REPO \ No newline at end of file diff --git a/download-video/placeholder.txt b/download-video/placeholder.txt deleted file mode 100644 index f89d219..0000000 --- a/download-video/placeholder.txt +++ /dev/null @@ -1 +0,0 @@ -THIS FILE ONLY EXISTS TO KEEP THIS FOLDER IN THE REPO \ No newline at end of file diff --git a/elai/AvatarEnum.py b/elai/AvatarEnum.py new file mode 100644 index 0000000..73e1840 --- /dev/null +++ b/elai/AvatarEnum.py @@ -0,0 +1,62 @@ +from enum import Enum + + +class AvatarEnum(Enum): + # Works + GIA_BUSINESS = { + "avatar_code": "gia.business", + "avatar_gender": "female", + "avatar_url": "https://elai-avatars.s3.us-east-2.amazonaws.com/common/gia/business/gia_business.png", + "avatar_canvas": "https://elai-avatars.s3.us-east-2.amazonaws.com/common/gia/business/gia_business.png", + "voice_id": "EXAVITQu4vr4xnSDxMaL", + "voice_provider": "elevenlabs" + } + # Works + VADIM_BUSINESS = { + "avatar_code": "vadim.business", + "avatar_gender": "male", + "avatar_url": "https://elai-avatars.s3.us-east-2.amazonaws.com/common/vadim/business/vadim_business.png", + "avatar_canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/vadim/business/vadim_business.png", + "voice_id": "flq6f7yk4E4fJM5XTYuZ", + "voice_provider": "elevenlabs" + } + ORHAN_BUSINESS = { + "avatar_code": "orhan.business", + "avatar_gender": "male", + "avatar_url": "https://elai-avatars.s3.us-east-2.amazonaws.com/common/orhan/business/orhan.png", + "avatar_canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/orhan/business/orhan.png", + "voice_id": "en-US-AndrewMultilingualNeural", + "voice_provider": "azure" + } + FLORA_BUSINESS = { + "avatar_code": "flora.business", + "avatar_gender": "female", + "avatar_url": "https://elai-avatars.s3.us-east-2.amazonaws.com/common/flora/business/flora_business.png", + "avatar_canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/flora/business/flora_business.png", + "voice_id": "en-US-JaneNeural", + "voice_provider": "azure" + } + SCARLETT_BUSINESS = { + "avatar_code": "scarlett.business", + "avatar_gender": "female", + "avatar_url": "https://elai-avatars.s3.us-east-2.amazonaws.com/common/scarlett/business/scarlett_business.png", + "avatar_canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/scarlett/business/scarlett_business.png", + "voice_id": "en-US-NancyNeural", + "voice_provider": "azure" + } + PARKER_CASUAL = { + "avatar_code": "parker.casual", + "avatar_gender": "male", + "avatar_url": "https://elai-avatars.s3.us-east-2.amazonaws.com/common/parker/casual/parker_casual.png", + "avatar_canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/parker/casual/parker_casual.png", + "voice_id": "en-US-TonyNeural", + "voice_provider": "azure" + } + ETHAN_BUSINESS = { + "avatar_code": "ethan.business", + "avatar_gender": "male", + "avatar_url": "https://elai-avatars.s3.us-east-2.amazonaws.com/common/ethan/business/ethan_business_low.png", + "avatar_canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/ethan/business/ethan_business_low.png", + "voice_id": "en-US-JasonNeural", + "voice_provider": "azure" + } diff --git a/elai/avatars.json b/elai/avatars.json new file mode 100644 index 0000000..463c50a --- /dev/null +++ b/elai/avatars.json @@ -0,0 +1,1965 @@ +{ + "avatars": [ + { + "code": "gia", + "name": "Gia", + "type": null, + "status": 2, + "gender": "female", + "limit": 300, + "defaultVoice": "elevenlabs@EXAVITQu4vr4xnSDxMaL", + "age": 32, + "ethnicity": "Black", + "variants": [ + { + "code": "business", + "id": "business", + "name": "Business", + "listeningAvatar": { + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/gia/business/listening/Gia_business_1.png", + "file": "s3://elai-avatars/common/gia/business/listening/gia_business_listening.mp4", + "alpha_video_file": "s3://elai-avatars/common/gia/business/listening/gia_business_listening_alpha.mp4" + }, + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/gia/business/gia_business.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/gia/business/gia_business.png", + "limit": 300, + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/gia/new_intro/gia_business_new.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/gia/new_intro/Gia_business.png" + }, + { + "code": "casual", + "id": "casual", + "name": "Casual", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/gia/casual/gia_casual.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/gia/casual/gia_casual.png", + "listeningAvatar": { + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/gia/casual/listening/Gia_casual_1.png", + "file": "s3://elai-avatars/common/gia/casual/listening/gia_casual_listening.mp4", + "alpha_video_file": "s3://elai-avatars/common/gia/casual/listening/gia_casual_listening_alpha.mp4" + }, + "limit": 300, + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/gia/new_intro/gia_casual_new.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/gia/new_intro/Gia_casual.png" + } + ] + }, + { + "code": "dylan", + "name": "Dylan", + "type": null, + "status": 2, + "gender": "male", + "limit": 300, + "age": 25, + "ethnicity": "White / Caucasian", + "variants": [ + { + "code": "casual", + "id": "casual", + "name": "Casual", + "listeningAvatar": { + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/dylan/casual/listening/Dylan_casual_1.png", + "file": "s3://elai-avatars/common/dylan/casual/listening/dylan_casual_listening.mp4", + "alpha_video_file": "s3://elai-avatars/common/dylan/casual/listening/dylan_casual_listening_alpha.mp4" + }, + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/dylan/casual/dylan_casual.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/dylan/casual/dylan_casual.png", + "limit": 300, + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/dylan/new_intro/dylan_casual_new.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/dylan/new_intro/Dylan-casual.png" + }, + { + "code": "call_centre", + "id": "call_centre", + "name": "Call Centre", + "listeningAvatar": { + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/dylan/callcentre/listening/Dylan_callcenter_1.png", + "file": "s3://elai-avatars/common/dylan/callcentre/listening/dylan_callcentre_listening.mp4", + "alpha_video_file": "s3://elai-avatars/common/dylan/callcentre/listening/dylan_callcentre_listening_alpha.mp4" + }, + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/dylan/callcentre/dylan_callcentre.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/dylan/callcentre/dylan_callcentre.png", + "limit": 300, + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/dylan/new_intro/dylan_callcentre_new.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/dylan/new_intro/Dylan-callcentre.png" + } + ] + }, + { + "code": "1547917583563", + "type": "photo", + "status": 2, + "accountId": null, + "tilt": { + "top": 0, + "left": 0, + "zoom": 1 + }, + "gender": "female", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/staging/avatar_uploads/63105155b5c45d0e07492bfc/dreamshaper_v5_3d_render_small_quit_girl_with_flower_in_hair_p_0-1_thumbnail.jpg?Expires=1727654400&Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cHM6Ly9kM3U2M21oYmhrZXZ6OC5jbG91ZGZyb250Lm5ldC9zdGFnaW5nL2F2YXRhcl91cGxvYWRzLzYzMTA1MTU1YjVjNDVkMGUwNzQ5MmJmYy9kcmVhbXNoYXBlcl92NV8zZF9yZW5kZXJfc21hbGxfcXVpdF9naXJsX3dpdGhfZmxvd2VyX2luX2hhaXJfcF8wLTFfdGh1bWJuYWlsLmpwZyIsIkNvbmRpdGlvbiI6eyJEYXRlTGVzc1RoYW4iOnsiQVdTOkVwb2NoVGltZSI6MTcyNzY1NDQwMH19fV19&Signature=Dy5ZIrpDYdEjNlQPx7SCoKjkrsgjLQMTYCs8hNQwYOY3OP71IaSPJrXbtGVGdgzt%7E6TJ9rFEGFodWzJjbsSsFnUql4uB8sqphLTWv0BHE7EYzvihHo-iIvsGx7Sl-Cy4QM9g4EmNosnipXJk15g3EdeOEfsI9cpojAuDVKrnOsd-bXta22KwDKwpcA0TJ66X0b9CBrr6KMSNNMNZGty4Ts5afaEpcycyRBLOiWDNaSh3DlJx%7EvjZ1W8YT3eElItQVQmuoc5kyKwmtqhFiQ4LD5r22CU41ZI32IeVkESyRQ41N4xNq1yClcyc9WirAZdnLck5y0tnJNwPqVZDvTIWVA__&Key-Pair-Id=K1Y7U91AR6T7E5", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/staging/avatar_uploads/63105155b5c45d0e07492bfc/dreamshaper_v5_3d_render_small_quit_girl_with_flower_in_hair_p_0-1.jpg?Expires=1727654400&Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cHM6Ly9kM3U2M21oYmhrZXZ6OC5jbG91ZGZyb250Lm5ldC9zdGFnaW5nL2F2YXRhcl91cGxvYWRzLzYzMTA1MTU1YjVjNDVkMGUwNzQ5MmJmYy9kcmVhbXNoYXBlcl92NV8zZF9yZW5kZXJfc21hbGxfcXVpdF9naXJsX3dpdGhfZmxvd2VyX2luX2hhaXJfcF8wLTEuanBnIiwiQ29uZGl0aW9uIjp7IkRhdGVMZXNzVGhhbiI6eyJBV1M6RXBvY2hUaW1lIjoxNzI3NjU0NDAwfX19XX0_&Signature=ngJIsM1sdBNNXYh9Ro-4HKxF7hGaD%7Edu7dkzPkpwEn8Mc0BGgO0vTzxKfUx2OgTlDxoIJ%7ETt1J1rVQwVvETpvFWOZzsCIOJoWR7%7EDX3UBqAM%7E-iY8C6psCg5HBA53URZ9zN97wVyTBZrDCJvJzlnyYkrbWkfpsq4AjG3J-9lMApYe27%7EzGdsx9FvBkd7%7Ew25%7EOFHoDfAlfqv0v436JuKtxAEJTJnbsTXL0V%7ELQ6YT%7ExPzfMzC2ExG6I0K3L%7EiCgCykicVdpEk70Q5bD9X1D8d3QYD94IDpJiYQAD3jye3XqIk2O1-sq07ERY3mfua63EGd6Dax5wY1ERldawCYpq3g__&Key-Pair-Id=K1Y7U91AR6T7E5", + "faceBbox": { + "x": 0, + "y": 0, + "faceWidth": 768, + "faceHeight": 830, + "faceShare": 0.7204861111111112 + }, + "intro": "https://elai-media.s3.eu-west-2.amazonaws.com/avatars-examples/photo-avatar-5.mp4", + "variants": [] + }, + { + "code": "vadim", + "name": "Vadim", + "type": null, + "status": 2, + "gender": "male", + "age": 40, + "ethnicity": "White / Caucasian", + "defaultVoice": "elevenlabs@flq6f7yk4E4fJM5XTYuZ", + "limit": 300, + "variants": [ + { + "code": "business", + "id": "business", + "name": "Business", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/vadim/business/vadim_business.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/vadim/business/vadim_business.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/vadim/intro/vadim_bus.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/vadim/intro/vadim_bus.png", + "limit": 300 + }, + { + "code": "casual", + "id": "casual", + "name": "Casual", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/vadim/casual/vadim_casual.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/vadim/casual/vadim_casual.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/vadim/intro/vadim_cas.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/vadim/intro/vadim_cas.png" + } + ] + }, + { + "code": "max", + "name": "Max", + "type": null, + "status": 2, + "gender": "male", + "limit": 300, + "defaultVoice": "elevenlabs@TX3LPaxmHKxFdv7VOQHJ", + "age": 29, + "ethnicity": "White / Caucasian", + "variants": [ + { + "code": "business", + "id": "business", + "name": "Business", + "listeningAvatar": { + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/max/listening_business/Max_business_1.png", + "file": "s3://elai-avatars/common/max/listening_business/max_business_listening.mp4", + "alpha_video_file": "s3://elai-avatars/common/max/listening_business/max_business_listening_alpha.mp4" + }, + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/max/max_business.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/max/max_business.png", + "limit": 300, + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/max/new_intro/max_business_new.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/max/new_intro/Max-business.png" + }, + { + "code": "doctor", + "id": "doctor", + "name": "Doctor", + "listeningAvatar": { + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/max/doctor/listening_doctor/Max_doctor_1.png", + "file": "s3://elai-avatars/common/max/doctor/listening_doctor/max_doctor_listening.mp4", + "alpha_video_file": "s3://elai-avatars/common/max/doctor/listening_doctor/max_doctor_listening_alpha.mp4" + }, + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/max/doctor/max_doctor.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/max/doctor/max_doctor.png", + "tilt": { + "left": 0.02 + }, + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/max/new_intro/max_doctor_new.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/max/new_intro/Max-doctor.png" + }, + { + "code": "construction", + "id": "construction", + "name": "Construction", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/max/const/max_const.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/max/const/max_const_1.png", + "tilt": { + "left": 0.04 + }, + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/max/new_intro/max_constr_new.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/max/new_intro/Max-constr.png" + } + ] + }, + { + "code": "daniel", + "name": "Daniel", + "type": null, + "status": 2, + "gender": "male", + "age": 30, + "ethnicity": "Black, Latino / Hispanic", + "limit": 300, + "variants": [ + { + "code": "casual", + "id": "casual", + "name": "Casual", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/daniel/casual/daniel_casual.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/daniel/casual/daniel_casual.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/daniel/intro/daniel.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/daniel/intro/Daniel.png", + "limit": 300 + }, + { + "code": "fitness", + "id": "fitness", + "name": "Fitness", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/daniel/fitness/daniel_fitness.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/daniel/fitness/daniel_fitness.png", + "intro": "https://elai-avatars.s3.us-east-2.amazonaws.com/common/daniel/intro/fitness.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/daniel/intro/fitness.png", + "limit": 300 + }, + { + "code": "business", + "id": "business", + "name": "Business", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/daniel/business/daniel_business.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/daniel/business/daniel_business.png", + "intro": "", + "introPoster": "", + "limit": 300 + } + ] + }, + { + "code": "neyson", + "name": "Neyson", + "type": null, + "status": 2, + "gender": "male", + "age": 25, + "limit": 300, + "ethnicity": "Black", + "variants": [ + { + "code": "business", + "id": "business", + "name": "Business", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/neyson/business/2/neyson.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/neyson/business/neyson.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/neyson/business/intro/neyson.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/neyson/business/intro/neyson_int.png" + } + ] + }, + { + "code": "orhan", + "name": "Orhan", + "type": null, + "status": 2, + "gender": "male", + "age": 34, + "limit": 300, + "ethnicity": "White / Caucasian", + "variants": [ + { + "code": "casual", + "id": "casual", + "name": "Casual", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/orhan/casual/orhan.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/orhan/casual/orhan.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/orhan/intro/orhan_cas.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/orhan/intro/orhan_cas_1.png", + "limit": 300 + }, + { + "code": "business", + "id": "business", + "name": "Business", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/orhan/business/orhan.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/orhan/business/orhan.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/orhan/intro/orhan_bus.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/orhan/intro/orhan_bus_1.png", + "limit": 300 + } + ] + }, + { + "code": "evelina", + "name": "Evelina", + "type": null, + "status": 2, + "gender": "female", + "age": 20, + "ethnicity": "Asian", + "variants": [ + { + "code": "casual", + "id": "casual", + "name": "Casual", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/evelina/casual/evelina_casual.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/evelina/casual/evelina_casual.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/evelina/intro/evelina_cas.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/evelina/intro/evelina_cas.png" + } + ] + }, + { + "code": "1363961221861", + "type": "photo", + "status": 2, + "accountId": null, + "tilt": { + "top": -0.1366120218579235, + "left": 0.08469945355191257, + "zoom": 2.098360655737705 + }, + "gender": "male", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/staging/avatar_uploads/63105155b5c45d0e07492bfc/photoreal_a_photorealistic_portrait_of_a_man_in_a_crisp_busine_3_thumbnail.jpg?Expires=1727654400&Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cHM6Ly9kM3U2M21oYmhrZXZ6OC5jbG91ZGZyb250Lm5ldC9zdGFnaW5nL2F2YXRhcl91cGxvYWRzLzYzMTA1MTU1YjVjNDVkMGUwNzQ5MmJmYy9waG90b3JlYWxfYV9waG90b3JlYWxpc3RpY19wb3J0cmFpdF9vZl9hX21hbl9pbl9hX2NyaXNwX2J1c2luZV8zX3RodW1ibmFpbC5qcGciLCJDb25kaXRpb24iOnsiRGF0ZUxlc3NUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjE3Mjc2NTQ0MDB9fX1dfQ__&Signature=uxb9UauWuHwnwMvBu2MKyHUd9fbOM%7E%7E4acjoLBLA5pUzzzkcZ0t9RWakHMkCddm3dnB1ct%7EB47k2utZRt35gLntljXz-WqcVAzB3C69nkrard0meITSVxmfhiqxvkdb9M9I-QiMpQGvRL%7EbU1pbV2hfAQh7O3Rww85na%7EjzNgv7seBEEFPuYEGv8WVrE31SmhP8hnSKJlnaqc13PVPtBEW%7EiUChB8-NvdZFLJzfeC49gJ3ZNtKsvCMNOA2BkHLxSNLN3LBjGBDM-AnrKgRUHkmTPrOj2F%7EwoDNcGTNVIaKzerWBlT0r0NyvygbKK9a-ax%7EQ4cOEQPatCZ9eYSA5Qnw__&Key-Pair-Id=K1Y7U91AR6T7E5", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/staging/avatar_uploads/63105155b5c45d0e07492bfc/photoreal_a_photorealistic_portrait_of_a_man_in_a_crisp_busine_3.jpg?Expires=1727654400&Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cHM6Ly9kM3U2M21oYmhrZXZ6OC5jbG91ZGZyb250Lm5ldC9zdGFnaW5nL2F2YXRhcl91cGxvYWRzLzYzMTA1MTU1YjVjNDVkMGUwNzQ5MmJmYy9waG90b3JlYWxfYV9waG90b3JlYWxpc3RpY19wb3J0cmFpdF9vZl9hX21hbl9pbl9hX2NyaXNwX2J1c2luZV8zLmpwZyIsIkNvbmRpdGlvbiI6eyJEYXRlTGVzc1RoYW4iOnsiQVdTOkVwb2NoVGltZSI6MTcyNzY1NDQwMH19fV19&Signature=QEOQYwhNitxBDl74ktuZ62b%7EM7uRWn1dXuP9D2sC3WxftpA7r8J7X1nLFaKHfz7i1O9RyRNZP7TyIEl6JIWDI4Vmlmyy29vvtmdks%7EK9VdyVDr6sZj7JJpTGQ6blZOha9YordXNAOleySrXBMQlRXmLVBiKRozzBU7DxZ7IYb0yiRNcH1nS3l3j4L2FGyIuwjcWku-cDUQL2wxHL5OzLklrc5kppIGQPxtpQg1Gi5zxKrX-Bq5x%7E1Hwj6LSTP9EhUq%7E5TtE7ls-31x2erC7s0XrK4TWX2j32pHHWvxtWmFBriuMPyPJN0ffMXbtdK3z%7EKdFaA-dduPO4gTIvB-xEWA__&Key-Pair-Id=K1Y7U91AR6T7E5", + "faceBbox": { + "x": 170, + "y": 50, + "faceWidth": 366, + "faceHeight": 366, + "faceShare": 0.3177083333333333 + }, + "intro": "https://elai-media.s3.eu-west-2.amazonaws.com/avatars-examples/photo-avatar-6.mp4", + "variants": [] + }, + { + "code": "mila", + "name": "Mila", + "type": null, + "status": 2, + "gender": "female", + "age": 27, + "limit": 300, + "ethnicity": "Asian", + "defaultVoice": "elevenlabs@ThT5KcBeYPX3keUQqHPh", + "variants": [ + { + "code": "doctor", + "id": "doctor", + "name": "Doctor", + "listeningAvatar": { + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/mila/doctor/listening/Mila_doctor_1.png", + "file": "s3://elai-avatars/common/mila/doctor/listening/mila_doctor_listening.mp4", + "alpha_video_file": "s3://elai-avatars/common/mila/doctor/listening/mila_doctor_listening_alpha.mp4" + }, + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/mila/doctor/mila_doctor.jpg", + "limit": 300, + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/mila/doctor/mila_doctor.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/mila/new_intro/mila_doctor_new.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/mila/new_intro/Mia-doctor.png" + }, + { + "code": "chief", + "id": "chief", + "name": "Chef", + "listeningAvatar": { + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/mila/chief/listening/Mila_chief_1.png", + "file": "s3://elai-avatars/common/mila/chief/listening/mila_chief_listening.mp4", + "alpha_video_file": "s3://elai-avatars/common/mila/chief/listening/mila_chief_listening_alpha.mp4" + }, + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/mila/chief/mila_chief.jpg", + "limit": 300, + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/mila/chief/mila_chief.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/mila/new_intro/mila_chef_new.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/mila/new_intro/Mia-chief.png" + } + ] + }, + { + "code": "derek", + "name": "Derek", + "type": null, + "status": 2, + "gender": "male", + "limit": 300, + "defaultVoice": "elevenlabs@VR6AewLTigWG4xSOukaG", + "age": 29, + "ethnicity": "Latino / Hispanic", + "variants": [ + { + "code": "casual", + "id": "casual", + "name": "Casual", + "listeningAvatar": { + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/derek/listening/Derek_casual_1.png", + "file": "s3://elai-avatars/common/derek/listening/derek_casual_listening.mp4", + "alpha_video_file": "s3://elai-avatars/common/derek/listening/derek_casual_listening_alpha.mp4" + }, + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/derek/derek_casual.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/derek/derek_casual.png", + "limit": 300, + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/derek/new_intro/derek_casual_new.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/derek/new_intro/Derek-casual.png" + }, + { + "code": "business", + "id": "business", + "name": "Business", + "listeningAvatar": { + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/derek/business/listening/Derek_business__1.png", + "file": "s3://elai-avatars/common/derek/business/listening/derek_business_listening.mp4", + "alpha_video_file": "s3://elai-avatars/common/derek/business/listening/derek_business_listening_alpha.mp4" + }, + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/derek/business/derek_business.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/derek/business/derek_business.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/derek/new_intro/derek_business_new.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/derek/new_intro/Derek-business.png" + } + ] + }, + { + "code": "rory", + "name": "Rory", + "type": null, + "status": 2, + "gender": "female", + "age": 25, + "ethnicity": "Latino / Hispanic", + "variants": [ + { + "code": "fitness", + "id": "fitness", + "name": "Fitness", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/rory/rory_fitness.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/rory/rory_fitness.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/rory/new_intro/rory_fitness_new.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/rory/new_intro/Rory-fintess.png" + }, + { + "code": "business", + "id": "business", + "name": "Business", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/rory/business/rory_business.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/rory/business/rory_business.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/rory/new_intro/rory_business_new.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/rory/new_intro/Rory-business.png" + } + ] + }, + { + "code": "flora", + "name": "Flora ", + "type": null, + "status": 2, + "gender": "female", + "age": 35, + "ethnicity": "White / Caucasian", + "variants": [ + { + "code": "business", + "id": "business", + "name": "Business", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/flora/business/flora_business.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/flora/business/flora_business.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/flora/new_intro/flora_business_new.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/flora/new_intro/flora_business.png" + }, + { + "code": "casual", + "id": "casual", + "name": "Casual", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/flora/casual/flora_casual.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/flora/casual/flora_casual.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/flora/new_intro/flora_casual_new.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/flora/new_intro/Flora_casual.png" + } + ] + }, + { + "code": "scarlett", + "name": "Scarlett", + "type": null, + "status": 2, + "gender": "female", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/scarlett/business/scarlett_business.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/scarlett/business/scarlett_business.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/scarlett/new_intro/scarlett.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/scarlett/new_intro/scarlett.png", + "age": 40, + "ethnicity": "White / Caucasian", + "variants": [] + }, + { + "code": "parker", + "name": "Parker", + "type": null, + "status": 2, + "gender": "male", + "age": 35, + "ethnicity": "White / Caucasian", + "variants": [ + { + "code": "business", + "id": "business", + "name": "Business", + "tilt": { + "left": -0.05 + }, + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/parker/business/parker_business.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/parker/business/parker_business.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/parker/new_intro/parker_business_new.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/parker/new_intro/Parker.png" + }, + { + "code": "casual", + "id": "casual", + "name": "Casual", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/parker/casual/parker_casual.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/parker/casual/parker_casual.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/parker/new_intro/parker_casual_new.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/parker/new_intro/Parker_casual+.png" + } + ] + }, + { + "code": "roy", + "name": "Roy", + "type": null, + "status": 2, + "gender": "male", + "age": 25, + "ethnicity": "White / Caucasian", + "variants": [ + { + "code": "casual", + "id": "casual", + "name": "Casual", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/roy/casual/roy_casual.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/roy/casual/roy_casual.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/roy/new_intro/roy_casual_new.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/roy/new_intro/Roy_casual.png" + }, + { + "code": "chief", + "id": "chief", + "name": "Chef", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/roy/chief/roy_chief.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/roy/chief/roy_chief.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/roy/new_intro/roy_chef_new.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/roy/new_intro/Roy_chief.png" + } + ] + }, + { + "code": "enzo", + "name": "Enzo", + "type": null, + "status": 2, + "gender": "male", + "limit": 300, + "age": 40, + "ethnicity": "Black", + "variants": [ + { + "code": "doctor", + "id": "doctor", + "name": "Doctor", + "listeningAvatar": { + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/enzo/listening/Enzo_doctor_1.png", + "file": "s3://elai-avatars/common/enzo/listening/enzo_doctor_listening.mp4", + "alpha_video_file": "s3://elai-avatars/common/enzo/listening/enzo_doctor_listening_alpha.mp4" + }, + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/enzo/enzo_doctor.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/enzo/enzo_doctor..png", + "limit": 300, + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/enzo/new_intro/enzo_doctor_new.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/enzo/new_intro/Enzo-doctor.png" + }, + { + "code": "casual", + "id": "casual", + "name": "Casual", + "listeningAvatar": { + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/enzo/casual/listening/Enzo_casual_1.png", + "file": "s3://elai-avatars/common/enzo/casual/listening/enzo_casual_listening.mp4", + "alpha_video_file": "s3://elai-avatars/common/enzo/casual/listening/enzo_casual_listening_alpha.mp4" + }, + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/enzo/casual/enzo_casual.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/enzo/casual/enzo_casual.png", + "limit": 300, + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/enzo/new_intro/enzo_casual_new.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/enzo/new_intro/Enzo-casual.png" + } + ] + }, + { + "code": "magnolia_v2", + "name": "Magnolia", + "type": null, + "status": 2, + "gender": "female", + "limit": 300, + "age": 35, + "ethnicity": "White / Caucasian", + "variants": [ + { + "code": "business", + "id": "business", + "name": "Business", + "listeningAvatar": { + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/magnolia/listening_business/Magnolia_business_1.png", + "file": "s3://elai-avatars/common/magnolia/listening_business/magnolia_business_listening.mp4", + "alpha_video_file": "s3://elai-avatars/common/magnolia/listening_business/magnolia_business_listening_alpha.mp4" + }, + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/magnolia/magnolia_business.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/magnolia/magnolia_business.png", + "limit": 300 + }, + { + "code": "casual", + "id": "casual", + "name": "Casual", + "listeningAvatar": { + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/magnolia/casual/listening_casual/Magnolia_casual_1.png", + "file": "s3://elai-avatars/common/magnolia/casual/listening_casual/magnolia_casual_listening.mp4", + "alpha_video_file": "s3://elai-avatars/common/magnolia/casual/listening_casual/magnolia_casual_listening_alpha.mp4" + }, + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/magnolia/casual/magnolia_casual.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/magnolia/casual/magnolia_casual.png", + "limit": 300 + } + ] + }, + { + "code": "1641142113121", + "type": "photo", + "status": 2, + "accountId": null, + "tilt": { + "top": -0.04684684684684685, + "left": -0.0045045045045045045, + "zoom": 1.3837837837837839 + }, + "gender": "female", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/staging/avatar_uploads/63105155b5c45d0e07492bfc/photoreal_a_realistic_portrait_of_a_young_woman_with_long_flow_0_thumbnail.jpg?Expires=1727654400&Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cHM6Ly9kM3U2M21oYmhrZXZ6OC5jbG91ZGZyb250Lm5ldC9zdGFnaW5nL2F2YXRhcl91cGxvYWRzLzYzMTA1MTU1YjVjNDVkMGUwNzQ5MmJmYy9waG90b3JlYWxfYV9yZWFsaXN0aWNfcG9ydHJhaXRfb2ZfYV95b3VuZ193b21hbl93aXRoX2xvbmdfZmxvd18wX3RodW1ibmFpbC5qcGciLCJDb25kaXRpb24iOnsiRGF0ZUxlc3NUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjE3Mjc2NTQ0MDB9fX1dfQ__&Signature=nzfp-C2lo6xqb5bIw4uBxJ-Y28co0cqt12FpYwvDbTiafe4S2jz67IidBzHLRw9wNSS9rDpZd6%7EPEPwhBmgYPESimtic2VsjWMrBjDKFT8Bhk1CyzB7u5nPLKUAZ2zhSZIgegykhdrJps18QzOhtKCPynNbWDTjbX-b9zieNBU90mTeXTj-GF8zZ-U92HtnKsFgksywiMKK2i-bc0Og%7EoepcsgpAOTauP4IDn78vEJZfedX6GJPkzKvCxbZW6qVLN8Y0i2jQQfQnY6Ljgce0oPCKd1uityzxibCjhggXOzXd5IItKjG6xcdt0kzrQ0ld6UTdWKHTl4D6mo2w86hcfg__&Key-Pair-Id=K1Y7U91AR6T7E5", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/staging/avatar_uploads/63105155b5c45d0e07492bfc/photoreal_a_realistic_portrait_of_a_young_woman_with_long_flow_0.jpg?Expires=1727654400&Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cHM6Ly9kM3U2M21oYmhrZXZ6OC5jbG91ZGZyb250Lm5ldC9zdGFnaW5nL2F2YXRhcl91cGxvYWRzLzYzMTA1MTU1YjVjNDVkMGUwNzQ5MmJmYy9waG90b3JlYWxfYV9yZWFsaXN0aWNfcG9ydHJhaXRfb2ZfYV95b3VuZ193b21hbl93aXRoX2xvbmdfZmxvd18wLmpwZyIsIkNvbmRpdGlvbiI6eyJEYXRlTGVzc1RoYW4iOnsiQVdTOkVwb2NoVGltZSI6MTcyNzY1NDQwMH19fV19&Signature=jQXWl1LfrBghfiKGNqjN67CmAY2h%7E-ou1XrWAfK%7EXe3zCcQP0FM%7ELumkkMXfv6KXfS6oC432LFB2uE0Y-21Ngr9ZIjTpRdVuQOQLuAw%7EmnkNq9RUauq%7EbjbB5KZRoKNoLGt47xyN3XLHs2h%7Eyd3NfmS5pkgYR3TuTU1kT91LLl4%7EWihuGQhjMu%7E-0eLAeqee3d46UpfYtrlBfFFPKQxCvtEc9fJfaI6mLQA%7ErUxPDqwLdq73ikedSw2eVjaeqOeQUYViZJF8Kg4LNiszHNowFfOx6T0UOgAsLX4bZyxxRsgErUSQd82g-4mCHWWyt4YOhzHpdnovcu3no7vdglWlCA__&Key-Pair-Id=K1Y7U91AR6T7E5", + "faceBbox": { + "x": 109, + "y": 26, + "faceWidth": 555, + "faceHeight": 555, + "faceShare": 0.4817708333333333 + }, + "intro": "https://elai-media.s3.eu-west-2.amazonaws.com/avatars-examples/photo-avatar-4.mp4", + "variants": [] + }, + { + "code": "amanda", + "name": "Amanda", + "type": null, + "status": 2, + "gender": "female", + "limit": 300, + "age": 27, + "ethnicity": "White / Caucasian", + "defaultVoice": "elevenlabs@XrExE9yKIg1WjnnlVkGX", + "variants": [ + { + "code": "casual", + "id": "casual", + "name": "Casual", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/amanda/amanda_regular_low.jpg", + "limit": 300, + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/amanda/amanda_regular_low.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/amanda/new_intro/amanda-casual_1080.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/amanda/new_intro/Amanda-casual.png", + "listeningAvatar": { + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/amanda/listening_regular/Amanda_regular_1.png", + "file": "s3://elai-avatars/common/amanda/listening_regular/amanda_regular_listening.mp4", + "alpha_video_file": "s3://elai-avatars/common/amanda/listening_regular/amanda_regular_listening_alpha.mp4" + } + }, + { + "code": "business", + "id": "business", + "name": "Business", + "limit": 300, + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/amanda/amanda_business_low.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/amanda/amanda_business_low.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/amanda/new_intro/amanda-business_1080.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/amanda/new_intro/Amanda-business.png", + "listeningAvatar": { + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/amanda/listening_business/Amanda_business_1.png", + "file": "s3://elai-avatars/common/amanda/listening_business/amanda_business_listening.mp4", + "alpha_video_file": "s3://elai-avatars/common/amanda/listening_business/amanda_business_listening_alpha.mp4" + } + } + ] + }, + { + "code": "sonya", + "name": "Sonya", + "type": null, + "status": 2, + "gender": "female", + "age": 25, + "ethnicity": "White / Caucasian", + "variants": [ + { + "code": "business", + "id": "business", + "name": "Business", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/sonya/business/sonya_business.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/sonya/business/sonya_business.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/sonya/new_intro/intro.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/sonya/new_intro/Sonya.png" + }, + { + "code": "casual", + "id": "casual", + "name": "Casual", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/sonya/casual/sonya_casual.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/sonya/casual/sonya_casual.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/sonya/new_intro/Sonya_casual.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/sonya/new_intro/Sonya_casual.png" + } + ] + }, + { + "code": "naomi", + "name": "Naomi", + "type": null, + "status": 2, + "gender": "female", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/naomi/naomi_intro_2.mp4", + "age": 25, + "ethnicity": "Asian", + "variants": [ + { + "code": "business", + "id": "business", + "name": "Business", + "listeningAvatar": { + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/naomi/business_listening/Naomi_business_1.png", + "file": "s3://elai-avatars/common/naomi/business_listening/naomi_business_listening.mp4", + "alpha_video_file": "s3://elai-avatars/common/naomi/business_listening/naomi_business_listening_alpha.mp4" + }, + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/naomi/naomi_business.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/naomi/naomi_business.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/naomi/new_intro/naomi_1080.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/naomi/new_intro/Naomi_busines.png" + }, + { + "code": "casual", + "id": "casual", + "name": "Casual", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/naomi/casual/naomi_casual.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/naomi/casual/naomi_casual.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/naomi/new_intro/naomi_casual.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/naomi/new_intro/Naomi_casual.png" + } + ] + }, + { + "code": "amber", + "name": "Amber", + "type": null, + "status": 2, + "gender": "female", + "age": 30, + "ethnicity": "White / Caucasian", + "variants": [ + { + "code": "casual", + "id": "casual", + "name": "Casual", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/amber/casual/amber_casual.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/amber/casual/amber_casual.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/amber/new_intro/amber-casual-1080.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/amber/new_intro/Amber_casual.png", + "listeningAvatar": { + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/amber/casual/listening/Amber_casual_1.png", + "file": "s3://elai-avatars/common/amber/casual/listening/amber_casual_listening.mp4", + "alpha_video_file": "s3://elai-avatars/common/amber/casual/listening/amber_casual_listening_alpha.mp4" + } + }, + { + "code": "business", + "id": "business", + "name": "Business", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/amber/business/amber_business.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/amber/business/amber_business.png", + "listeningAvatar": { + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/amber/business/listening/Amber_business_1.png", + "file": "s3://elai-avatars/common/amber/business/listening/amber_business_listening.mp4", + "alpha_video_file": "s3://elai-avatars/common/amber/business/listening/amber_business_listening_alpha.mp4" + }, + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/amber/new_intro/amber-business-1080.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/amber/new_intro/Amber_business.png" + } + ] + }, + { + "code": "lei", + "name": "Lei", + "type": null, + "status": 2, + "gender": "female", + "age": 30, + "ethnicity": "Asian", + "variants": [ + { + "code": "business", + "id": "business", + "name": "Business", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/lei/lei_business.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/lei/lei_business.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/lei/new_intro/lei-business_1080.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/lei/new_intro/Lei-business.png" + }, + { + "code": "casual", + "id": "casual", + "name": "Casual", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/lei/casual/lei_casual.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/lei/casual/lei_casual.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/lei/new_intro/lei-casual_1080.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/lei/new_intro/Lei-casual.png" + } + ] + }, + { + "code": "taylor", + "name": "Taylor", + "type": null, + "status": 2, + "gender": "female", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/taylor/taylor_intro_2.mp4", + "age": 28, + "ethnicity": "White / Caucasian", + "variants": [ + { + "code": "casual", + "id": "casual", + "name": "Casual", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/taylor/casual/taylor_casual.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/taylor/casual/taylor_casual.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/taylor/new_intro/taylor-casual_1080.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/taylor/new_intro/Taylor-casual.png" + }, + { + "code": "business", + "id": "business", + "name": "Business", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/taylor/business/taylor_business.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/taylor/business/taylor_business.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/taylor/new_intro/taylor-business_1080.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/taylor/new_intro/Taylor-business.png" + } + ] + }, + { + "code": "kevin", + "name": "Kevin", + "type": null, + "status": 2, + "gender": "male", + "age": 27, + "ethnicity": "White / Caucasian", + "variants": [ + { + "code": "casual", + "id": "casual", + "name": "Casual", + "listeningAvatar": { + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/kevin/listening_casual/Kevin_casual_1.png", + "file": "s3://elai-avatars/common/kevin/listening_casual/kevin_casual_listening.mp4", + "alpha_video_file": "s3://elai-avatars/common/kevin/listening_casual/kevin_casual_listening_alpha.mp4" + }, + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/kevin/kevin_casual.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/kevin/kevin_casual.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/kevin/new_intro/kevin-casual_1080.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/kevin/new_intro/Kevin-casual.png" + }, + { + "code": "business", + "id": "business", + "name": "Business", + "listeningAvatar": { + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/kevin/business/listening_business/Kevin_business_1.png", + "file": "s3://elai-avatars/common/kevin/business/listening_business/kevin_business_listening.mp4", + "alpha_video_file": "s3://elai-avatars/common/kevin/business/listening_business/kevin_business_listening_alpha.mp4" + }, + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/kevin/business/kevin_business.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/kevin/business/kevin_business.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/kevin/new_intro/kevin-business_1080.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/kevin/new_intro/Kevin-business.png" + }, + { + "code": "construction", + "id": "construction", + "name": "Construction", + "listeningAvatar": { + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/kevin/const/listening_constr/Kevin-const.png", + "file": "s3://elai-avatars/common/kevin/const/listening_constr/kevin_const_listening.mp4", + "alpha_video_file": "s3://elai-avatars/common/kevin/const/listening_constr/kevin_const_listening_alpha.mp4" + }, + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/kevin/const/kevin_const.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/kevin/const/kevin_const.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/kevin/new_intro/kevin-construction_1080.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/kevin/new_intro/Kevin-constr.png" + } + ] + }, + { + "code": "cody", + "name": "Cody", + "type": null, + "status": 2, + "gender": "male", + "age": 35, + "ethnicity": "Black", + "variants": [ + { + "code": "casual", + "id": "casual", + "name": "Casual", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/cody/casual/cody_casual.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/cody/casual/cody_casual.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/cody/new_intro/cody-casual_1080.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/cody/new_intro/Cody-casual.png" + }, + { + "code": "business", + "id": "business", + "name": "Business", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/cody/business/cody_business.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/cody/business/cody_business.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/cody/new_intro/cody-business_1080.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/cody/new_intro/Cody-business.png" + } + ] + }, + { + "code": "nancy", + "name": "Nancy", + "type": null, + "status": 2, + "gender": "female", + "age": 30, + "ethnicity": "White / Caucasian", + "variants": [ + { + "code": "business", + "id": "business", + "name": "Business", + "listeningAvatar": { + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/nancy/business/listening/Nancy_business_1.png", + "file": "s3://elai-avatars/common/nancy/business/listening/nancy_business_listening.mp4", + "alpha_video_file": "s3://elai-avatars/common/nancy/business/listening/nancy_business_listening_alpha.mp4" + }, + "tilt": { + "left": -0.02 + }, + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/nancy/business/nancy_business.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/nancy/business/nancy_business.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/nancy/new_intro/nancy-business_1080.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/nancy/new_intro/Nancy-business.png" + }, + { + "code": "casual", + "id": "casual", + "name": "Casual", + "listeningAvatar": { + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/nancy/casual/listening/Nancy_casual_1.png", + "file": "s3://elai-avatars/common/nancy/casual/listening/nancy_casual_listening.mp4", + "alpha_video_file": "s3://elai-avatars/common/nancy/casual/listening/nancy_casual_listening_alpha.mp4" + }, + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/nancy/casual/nancy_casual.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/nancy/casual/nancy_casual.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/nancy/new_intro/nancy-casual_1080.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/nancy/new_intro/Nancy-casual.png" + } + ] + }, + { + "code": "michael", + "name": "Michael", + "type": null, + "status": 2, + "gender": "male", + "age": 37, + "ethnicity": "White / Caucasian", + "variants": [ + { + "code": "casual", + "id": "casual", + "name": "Casual", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/michael/casual/michael_casual.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/michael/casual/michael_casual.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/michael/new_intro/michael-casual.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/michael/new_intro/Michael-casual.png" + }, + { + "code": "business", + "id": "business", + "name": "Business", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/michael/business/michael_business.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/michael/business/michael_business.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/michael/new_intro/michael-business.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/michael/new_intro/Michael-business.png" + }, + { + "code": "construction", + "id": "construction", + "name": "Construction", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/michael/constr/michael_constr.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/michael/constr/michael_constr.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/michael/new_intro/michael-construction.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/michael/new_intro/Michael-constr.png" + } + ] + }, + { + "code": "emilia", + "name": "Emilia", + "type": null, + "status": 2, + "gender": "female", + "age": 25, + "ethnicity": "White / Caucasian", + "variants": [ + { + "code": "business", + "id": "business", + "name": "Business", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/emilia/business/emilia_business.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/emilia/business/emilia_business.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/emilia/new_intro/emilia_business_new.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/emilia/new_intro/Emilia__business.png" + }, + { + "code": "doctor", + "id": "doctor", + "name": "Doctor", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/emilia/doctor/emilia_doctor.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/emilia/doctor/emilia_doctor.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/emilia/new_intro/emilia_doctor_new.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/emilia/new_intro/emilia_doctor.png" + } + ] + }, + { + "code": "luke", + "name": "Luke", + "type": null, + "status": 2, + "gender": "male", + "age": 26, + "ethnicity": "White / Caucasian", + "variants": [ + { + "code": "business", + "id": "business", + "name": "Business", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/luke/business/luke_business.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/luke/business/luke_business.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/luke/new_intro/luke-business.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/luke/new_intro/Luke-business-1.png" + }, + { + "code": "casual", + "id": "casual", + "name": "Casual", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/luke/casual/luke_casual.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/luke/casual/luke_casual.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/luke/new_intro/luke-casual.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/luke/new_intro/Luke-casual.png" + }, + { + "code": "business_2", + "id": "business_2", + "name": "Business", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/luke/business2/luke_business_2.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/luke/business2/luke_business_2.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/luke/new_intro/luke-business-2.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/luke/new_intro/Luke-business-2.png" + } + ] + }, + { + "code": "richard", + "name": "Richard", + "type": null, + "status": 2, + "gender": "male", + "age": 60, + "ethnicity": "White / Caucasian", + "variants": [ + { + "code": "business", + "id": "business", + "name": "Business", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/richard/business/richard_business.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/richard/business/richard_business.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/richard/new_intro/richard-business.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/richard/new_intro/Richard-business.png" + }, + { + "code": "casual", + "id": "casual", + "name": "Casual", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/richard/casual/richard_casual.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/richard/casual/richard_casual.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/richard/new_intro/richard-casual.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/richard/new_intro/Richard-casual.png" + } + ] + }, + { + "code": "stella", + "name": "Stella", + "type": null, + "status": 2, + "gender": "female", + "age": 35, + "ethnicity": "White / Caucasian", + "variants": [ + { + "code": "casual", + "id": "casual", + "name": "Casual", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/stella/casual/stella_casual.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/stella/casual/stella_casual.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/stella/new_intro/stella_casual_new.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/stella/new_intro/Stella-casual.png" + }, + { + "code": "casual_2", + "id": "casual_2", + "name": "Casual", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/stella/casual2/stella_casual_2.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/stella/casual2/stella_casual_2.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/stella/new_intro/stella_casual2_new.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/stella/new_intro/casual_2.png" + }, + { + "code": "business", + "id": "business", + "name": "Business", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/stella/business/stella_business.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/stella/business/stella_business.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/stella/new_intro/stella_business_new.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/stella/business/new_intro/Stella.png" + } + ] + }, + { + "code": "kira", + "name": "Kira", + "type": null, + "status": 2, + "tilt": { + "left": 0.05 + }, + "gender": "female", + "age": 25, + "ethnicity": "White / Caucasian", + "variants": [ + { + "code": "business", + "id": "business", + "name": "Business", + "listeningAvatar": { + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/kira/listening_business/Kira_business_1.png", + "file": "s3://elai-avatars/common/kira/listening_business/kira_business_listening.mp4", + "alpha_video_file": "s3://elai-avatars/common/kira/listening_business/kira_business_listening_alpha.mp4" + }, + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/kira/kira_business.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/kira/kira_business.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/kira/new_intro/kira_business_new.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/kira/new_intro/Kira-business.png" + }, + { + "code": "doctor", + "id": "doctor", + "name": "Doctor", + "listeningAvatar": { + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/kira/doctor/listening_doctor/Kira_doctor_1.png", + "file": "s3://elai-avatars/common/kira/doctor/listening_doctor/kira_doctor_listening.mp4", + "alpha_video_file": "s3://elai-avatars/common/kira/doctor/listening_doctor/kira_doctor_listening_alpha.mp4" + }, + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/kira/doctor/kira_doctor.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/kira/doctor/kira_doctor.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/kira/new_intro/kira_doctor_new.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/kira/new_intro/Kira-doctor.png" + } + ] + }, + { + "code": "kamal", + "name": "Kamal", + "type": null, + "status": 2, + "gender": "male", + "limit": 300, + "age": 43, + "ethnicity": "White / Caucasian", + "variants": [ + { + "code": "casual", + "id": "casual", + "name": "Casual", + "listeningAvatar": { + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/kamal/listening_casual/Kamal_casual_1.png", + "file": "s3://elai-avatars/common/kamal/listening_casual/kamal_casual_listening.mp4", + "alpha_video_file": "s3://elai-avatars/common/kamal/listening_casual/kamal_casual_listening_alpha.mp4" + }, + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/kamal/new_intro/kamal-casual-1080.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/kamal/new_intro/Kamal_casual.png", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/kamal/low/kamal_look2.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/kamal/low/kamal_look2_low.png" + }, + { + "code": "business", + "id": "business", + "name": "Business", + "listeningAvatar": { + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/kamal/listening_business/Kamal_business_1.png", + "file": "s3://elai-avatars/common/kamal/listening_business/kamal_business_listening.mp4", + "alpha_video_file": "s3://elai-avatars/common/kamal/listening_business/kamal_business_listening_alpha.mp4" + }, + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/kamal/low/kamal.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/kamal/low/kamal_low.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/kamal/new_intro/kamal-business-1080.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/kamal/new_intro/Kamal_business.png", + "limit": 300 + }, + { + "code": "thobe", + "id": "thobe", + "name": "Thobe", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/kamal/thobe/kamal_look3.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/kamal/thobe/kamal_look3.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/kamal/new_intro/kamal-thobe-1080.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/kamal/new_intro/Kamal_thobe.png" + } + ] + }, + { + "code": "joseph", + "name": "Joseph", + "type": null, + "status": 2, + "gender": "male", + "age": 42, + "ethnicity": "White / Caucasian", + "variants": [ + { + "code": "construction", + "id": "construction", + "name": "Construction", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/joseph/constr/joseph_constr.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/joseph/constr/joseph_constr.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/joseph/new_intro/joseph-construction.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/joseph/new_intro/Joseph-constr.png" + }, + { + "code": "business", + "id": "business", + "name": "Business", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/joseph/business/joseph_business.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/joseph/business/joseph_business.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/joseph/new_intro/joseph.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/joseph/new_intro/joseph.png" + } + ] + }, + { + "code": "657802031273", + "type": "photo", + "status": 2, + "accountId": null, + "tilt": { + "top": 0, + "left": 0.03474520185307743, + "zoom": 1.0814030443414957 + }, + "gender": "male", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/staging/avatar_uploads/63105155b5c45d0e07492bfc/rectangle-1220_thumbnail.jpg?Expires=1727654400&Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cHM6Ly9kM3U2M21oYmhrZXZ6OC5jbG91ZGZyb250Lm5ldC9zdGFnaW5nL2F2YXRhcl91cGxvYWRzLzYzMTA1MTU1YjVjNDVkMGUwNzQ5MmJmYy9yZWN0YW5nbGUtMTIyMF90aHVtYm5haWwuanBnIiwiQ29uZGl0aW9uIjp7IkRhdGVMZXNzVGhhbiI6eyJBV1M6RXBvY2hUaW1lIjoxNzI3NjU0NDAwfX19XX0_&Signature=P2Q4kEr%7E4cqFUyLqu--T020wz0zk-FXjBSh2aAuAbmwxiQAYqaVZyULqoqSPInV1phqpYSJlcNuBGk0VqUC2hWsnN7jKruYVrEshi2A1uFEzWJiPljSWSU1Aa5SraX-AOFVwTlqS1WeZr41T05Gw3GroTYc2N%7E5vfiNLVZgnYHkTHDwXhLxyGntPg5j359JhhvslPldqiNs-pHV3zU3W7O0jurwWinjUMV-aoE0BEsSAczR%7Ebdn2A3K4Xk8i49oADT6ImzKCAFJg7bm3qlmNkQRa1fMH2QAldd4wRyJx2owMfRrX7Kr6%7EvXoMTL6HhhtRI3jvA12Fb5ktDDFS9km2A__&Key-Pair-Id=K1Y7U91AR6T7E5", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/staging/avatar_uploads/63105155b5c45d0e07492bfc/rectangle-1220.jpg?Expires=1727654400&Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cHM6Ly9kM3U2M21oYmhrZXZ6OC5jbG91ZGZyb250Lm5ldC9zdGFnaW5nL2F2YXRhcl91cGxvYWRzLzYzMTA1MTU1YjVjNDVkMGUwNzQ5MmJmYy9yZWN0YW5nbGUtMTIyMC5qcGciLCJDb25kaXRpb24iOnsiRGF0ZUxlc3NUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjE3Mjc2NTQ0MDB9fX1dfQ__&Signature=DdoMY8Z1x7XXqc8No7fkxOf64XzAjvSgg6CiWWledt818M6iermOxohEEbVmnciLzHcVL93bZhFVi8rB7vTyl1mDX6Z1cVxaOdvU0DrM4e0ueGyPdN-q3h08UMQESI4Sa3X4jlR29OSp3M9nUBmBsJBoiQOFR5z0g2RtTNqHba2E%7EX40ZY3RTR36H9Exlw99Op0xZOoXM5aqUEV5TNhS3ol2ULXq%7EIZ4-7TGiZ%7EpAZ%7Ea5rIbbYZv05szR0xFa%7E6y2AceUHkhWtCDm7skT%7E5FT%7EzAWJ5ezM9%7E6Pbw7naSIBoeTrC81Op7EjIIixddDZkqY1mNI-7R9xui4ysc%7EC5hbw__&Key-Pair-Id=K1Y7U91AR6T7E5", + "faceBbox": { + "x": 9, + "y": 0, + "faceWidth": 1511, + "faceHeight": 1441, + "faceShare": 0.8818849449204407 + }, + "intro": "https://elai-media.s3.eu-west-2.amazonaws.com/avatars-examples/photo-avatar-7.mp4", + "variants": [] + }, + { + "code": "388613879006", + "type": "photo", + "status": 2, + "accountId": null, + "tilt": { + "top": 0, + "left": 0.03092006033182504, + "zoom": 1.158371040723982 + }, + "gender": "female", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/staging/avatar_uploads/63105155b5c45d0e07492bfc/dreamshaper_v7_3d_render_business_woman_light_colors_potrait_1_thumbnail.jpg?Expires=1727654400&Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cHM6Ly9kM3U2M21oYmhrZXZ6OC5jbG91ZGZyb250Lm5ldC9zdGFnaW5nL2F2YXRhcl91cGxvYWRzLzYzMTA1MTU1YjVjNDVkMGUwNzQ5MmJmYy9kcmVhbXNoYXBlcl92N18zZF9yZW5kZXJfYnVzaW5lc3Nfd29tYW5fbGlnaHRfY29sb3JzX3BvdHJhaXRfMV90aHVtYm5haWwuanBnIiwiQ29uZGl0aW9uIjp7IkRhdGVMZXNzVGhhbiI6eyJBV1M6RXBvY2hUaW1lIjoxNzI3NjU0NDAwfX19XX0_&Signature=KxF8cHlqdqHwgmhjFkB1OO%7EXHPyZMULKVg6tqWZHQR%7ESYbrJI5TSeVukQ6QElURrvkzvtk5lj1bLuB8N53Vh8Ouz2su7m8rLljNiVrf8VAM95uVksLf%7E0YqhlBBZTukCchcz-83HwfrSAHiEVUDr5v5ZCwIOEptSczPEUasIsWZrBrgh3BH-P1rdeHv09mZewUZ9ZSd4bZT0nsKETGm5C7cTr4t62yeS%7EEafqWXgnh1eS3q5riAo9NJCupdp6zqlxE7wTmmUUUwYILkn5paexRCcNSHbWC61XwVmDMOyyAqwtOpkp4JVHmkcNsySYofUq%7EIpzKfObk2ZMGU9iArCrA__&Key-Pair-Id=K1Y7U91AR6T7E5", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/staging/avatar_uploads/63105155b5c45d0e07492bfc/dreamshaper_v7_3d_render_business_woman_light_colors_potrait_1.jpg?Expires=1727654400&Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cHM6Ly9kM3U2M21oYmhrZXZ6OC5jbG91ZGZyb250Lm5ldC9zdGFnaW5nL2F2YXRhcl91cGxvYWRzLzYzMTA1MTU1YjVjNDVkMGUwNzQ5MmJmYy9kcmVhbXNoYXBlcl92N18zZF9yZW5kZXJfYnVzaW5lc3Nfd29tYW5fbGlnaHRfY29sb3JzX3BvdHJhaXRfMS5qcGciLCJDb25kaXRpb24iOnsiRGF0ZUxlc3NUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjE3Mjc2NTQ0MDB9fX1dfQ__&Signature=UTSitemYmaenXwDcYIkqk8DtVdyVoVWJBvBaxdyYQlSolPSUfFUIBy-HmSI01SaSCw23yQuZnx4wjWCtTk4knmRfp8cL3LroeILIrO2k-ifHa%7E73NPHeFXdQ74lvHGyXLMZvhkgJ3NeASqyf1G87-lh2l2qrQCMpaaHC2Z8ieg86H-8YTDZ0qpky7NU4FvTu0Vxx0kvrpJ80FJzA0pOBn4ykhdWWFlJ5PHyrsZncg9tjmgpkX%7EKA4AQ6E4911jo4rpXKkwDORXR27JI7nXe4yjHBCrMQU32N5z%7E%7Et5RUpPMUZzKGqtcoEdtzy%7ESFaw%7EsILfogIQk8oHeSJx9sa8lyQ__&Key-Pair-Id=K1Y7U91AR6T7E5", + "faceBbox": { + "x": 32, + "y": 0, + "faceWidth": 663, + "faceHeight": 620, + "faceShare": 0.60546875 + }, + "intro": "https://elai-media.s3.eu-west-2.amazonaws.com/avatars-examples/photo-avatar-9.mp4", + "variants": [] + }, + { + "code": "leyla", + "name": "Leyla", + "type": null, + "status": 2, + "gender": "female", + "defaultVoice": "elevenlabs@Xb7hH8MSUJpSbSDYk0k2", + "age": 25, + "ethnicity": "Black", + "variants": [ + { + "code": "fitness", + "id": "fitness", + "name": "Fitness", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/leyla/leyla_fitness.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/leyla/leyla_fitness.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/leyla/new_intro/leyla_1080.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/leyla/new_intro/Leyla-fitness.png" + }, + { + "code": "business", + "id": "business", + "name": "Business", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/leyla/business/leyla_business.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/leyla/business/leyla_business.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/leyla/new_intro/leyla-business.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/leyla/new_intro/Leyla-business.png" + } + ] + }, + { + "code": "noah", + "name": "Noah", + "type": null, + "status": 2, + "gender": "male", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/avatars/custom/noah_hq.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/avatars/custom/noah_hq.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/noah/new_intro/noah-business_1080.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/noah/new_intro/Noah.png", + "age": 35, + "ethnicity": "Asian", + "variants": [ + { + "code": "business", + "id": "business", + "name": "Business", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/noah/noah1/noah.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/noah/noah1/noah.png" + }, + { + "code": "doctor", + "id": "doctor", + "name": "Doctor", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/noah/doctor_2_hq/noah_doctor_hq.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/noah/doctor_2_hq/noah_doctor_hq.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/noah/new_intro/noah-doctor_1080.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/noah/new_intro/Noah-doctor.png" + } + ] + }, + { + "code": "aniqa", + "name": "Aniqa", + "type": null, + "status": 2, + "gender": "female", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/aniqa/new_intro/aniqa_1080.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/aniqa/new_intro/Aniqa.png", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/aniqa/aniqa_low.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/aniqa/aniqa_low.png", + "age": 28, + "ethnicity": "Middle Eastern", + "variants": [] + }, + { + "code": "dora", + "name": "Dora", + "type": null, + "status": 2, + "gender": "female", + "age": 31, + "ethnicity": "White / Caucasian", + "variants": [ + { + "code": "business", + "id": "business", + "name": "Business", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/dora/business/dora_business.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/dora/business/dora_business.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/dora/business/new_intro/dora_business_new.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/dora/business/new_intro/dora_business_new.png" + }, + { + "code": "casual", + "id": "casual", + "name": "Casual", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/dora/casual/dora_casual.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/dora/casual/dora_casual.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/dora/casual/new_intro/dora_casual_new.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/dora/casual/new_intro/dora.png" + } + ] + }, + { + "code": "megan", + "name": "Megan", + "type": null, + "status": 2, + "gender": "female", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/megan/megan_intro_2.mp4", + "age": 30, + "ethnicity": "White / Caucasian", + "variants": [ + { + "code": "casual", + "id": "casual", + "name": "Casual", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/megan/megan_casual.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/megan/megan_casual.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/megan/new_intro/megan-casual_1080.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/megan/new_intro/Megan-casual.png" + }, + { + "code": "business", + "id": "business", + "name": "Business", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/megan/business/megan_business.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/megan/business/megan_business.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/megan/new_intro/megan-business_1080.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/megan/new_intro/Megan-business.png" + }, + { + "code": "doctor", + "id": "doctor", + "name": "Doctor", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/megan/doctor/megan_doctor.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/megan/doctor/megan_doctor.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/megan/new_intro/megan-doctor_1080.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/megan/new_intro/Megan-doctor.png", + "tilt": { + "left": 0.05 + } + } + ] + }, + { + "code": "1110947882243", + "type": "photo", + "status": 2, + "accountId": null, + "tilt": { + "top": 0, + "left": 0.27121771217712176, + "zoom": 2.8339483394833946 + }, + "gender": "male", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/staging/avatar_uploads/63105155b5c45d0e07492bfc/dreamshaper_v7_a_closeup_of_a_distinguished_professor_wearing_0_thumbnail.jpg?Expires=1727654400&Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cHM6Ly9kM3U2M21oYmhrZXZ6OC5jbG91ZGZyb250Lm5ldC9zdGFnaW5nL2F2YXRhcl91cGxvYWRzLzYzMTA1MTU1YjVjNDVkMGUwNzQ5MmJmYy9kcmVhbXNoYXBlcl92N19hX2Nsb3NldXBfb2ZfYV9kaXN0aW5ndWlzaGVkX3Byb2Zlc3Nvcl93ZWFyaW5nXzBfdGh1bWJuYWlsLmpwZyIsIkNvbmRpdGlvbiI6eyJEYXRlTGVzc1RoYW4iOnsiQVdTOkVwb2NoVGltZSI6MTcyNzY1NDQwMH19fV19&Signature=A7I837pRTr%7E5DtmwdbNHBt1IPOjATTu-F5EChshRpY%7EA%7E1gCgLLiLgCwsnriGUUBENiBLdnIEAVSmW7DVf-4gkuYW63HPSF7KuR1I-k0uRFfmFYszEg%7EW8PK17ICZUzgfphCgR3e39BcD-mBWoxel5aGRvDztt-ChqTvQdOSSRUZfIC-r7cLXyyzCXIum435fcRqn8C4SRg3b9uTbd%7EY4UnhnmHV4GyXrNwBEFZ-5E72vHBazydnLfORad3qtOtcEdV-8FCSGsUvZNX--rAzLdPn3ByIbdWMSvIAYsNBD26rd%7EPKeYL9eLFdNF1ah-de3TnXz%7EHYr0t5Y3YgPndI2Q__&Key-Pair-Id=K1Y7U91AR6T7E5", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/staging/avatar_uploads/63105155b5c45d0e07492bfc/dreamshaper_v7_a_closeup_of_a_distinguished_professor_wearing_0.jpg?Expires=1727654400&Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cHM6Ly9kM3U2M21oYmhrZXZ6OC5jbG91ZGZyb250Lm5ldC9zdGFnaW5nL2F2YXRhcl91cGxvYWRzLzYzMTA1MTU1YjVjNDVkMGUwNzQ5MmJmYy9kcmVhbXNoYXBlcl92N19hX2Nsb3NldXBfb2ZfYV9kaXN0aW5ndWlzaGVkX3Byb2Zlc3Nvcl93ZWFyaW5nXzAuanBnIiwiQ29uZGl0aW9uIjp7IkRhdGVMZXNzVGhhbiI6eyJBV1M6RXBvY2hUaW1lIjoxNzI3NjU0NDAwfX19XX0_&Signature=a0iVpjluab4TU1Ck39r9o4WK1CUHxo645c1ANmHtAOqVxIN2kRqfXWRHzyOysR%7E%7ErLgXiKtU-9-ENCvZgPZIHqQi3SFZf8MS8cxkcZ3i2We5PeF0UnfLaDge3ITRVC-%7EWmwjPDS2BCzYsgX3PwTCd4GYFViCmpb3bODXWYNni0OzsSyHWyClCo-WYBa0MJFry5H8SS0c2m2ywErel8%7E1CsvLDw8WeEy7cfLb4%7Egus8kLno4xhDnIqh3Qc%7ENhVOrLH4L3uF2wNX43SRTX3GUoTX8yaaYRxp0adRTOSDsxKoHvvNtqAm9DGuQc3JPTeoSRlpicy7w9Yr3cwJRhxjxoaQ__&Key-Pair-Id=K1Y7U91AR6T7E5", + "faceBbox": { + "x": 175, + "y": 0, + "faceWidth": 271, + "faceHeight": 271, + "faceShare": 0.529296875 + }, + "intro": "https://elai-media.s3.eu-west-2.amazonaws.com/avatars-examples/photo-avatar-8.mp4", + "variants": [] + }, + { + "code": "margaret", + "name": "Margaret", + "type": null, + "status": 2, + "gender": "female", + "age": 50, + "ethnicity": "White / Caucasian", + "variants": [ + { + "code": "business", + "id": "business", + "name": "Business", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/margaret/business/margaret_business.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/margaret/business/margaret_business.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/margaret/new_intro/margaret-business_1080.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/margaret/new_intro/Margaret-business.png" + }, + { + "code": "doctor", + "id": "doctor", + "name": "Doctor", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/margaret/doctor/margaret_doctor.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/margaret/doctor/margaret_doctor.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/margaret/new_intro/margaret-doctor_1080.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/margaret/new_intro/Margaret-doctor.png" + } + ] + }, + { + "code": "olivia", + "name": "Olivia ", + "type": null, + "status": 2, + "gender": "female", + "age": 38, + "ethnicity": "White / Caucasian", + "variants": [ + { + "code": "casual", + "id": "casual", + "name": "Casual", + "listeningAvatar": { + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/olivia/casual/listening_casual/Olivia_casual_1.png", + "file": "s3://elai-avatars/common/olivia/casual/listening_casual/olivia_casual listening.mp4", + "alpha_video_file": "s3://elai-avatars/common/olivia/casual/listening_casual/olivia_casual listening_alpha.mp4" + }, + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/olivia/casual/olivia_casual.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/olivia/casual/olivia_casual.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/olivia/new_intro/olivia-casual_1080.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/olivia/new_intro/Olivia-casual.png" + }, + { + "code": "business", + "id": "business", + "name": "Business", + "listeningAvatar": { + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/olivia/business/listening_business/Olivia_business_1.png", + "file": "s3://elai-avatars/common/olivia/business/listening_business/olivia_business_listening.mp4", + "alpha_video_file": "s3://elai-avatars/common/olivia/business/listening_business/olivia_business_listening_alpha.mp4" + }, + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/olivia/business/olivia_business.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/olivia/business/olivia_business.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/olivia/new_intro/olivia-business_1080.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/olivia/new_intro/Olivia-business.png" + } + ] + }, + { + "code": "tyler", + "name": "Tyler", + "type": null, + "status": 2, + "gender": "male", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/tyler/tyler_intro_2.mp4", + "age": 35, + "ethnicity": "White / Caucasian", + "variants": [ + { + "code": "casual", + "id": "casual", + "name": "Casual", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/tyler/casual/tyler_casual.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/tyler/casual/tyler_casual.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/tyler/new_intro/tyler-casual_1080.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/tyler/new_intro/Tyler-casual.png" + }, + { + "code": "business", + "id": "business", + "name": "Business", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/tyler/business/tyler_business.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/tyler/business/tyler_business.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/tyler/new_intro/tyler-business_1080.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/tyler/new_intro/Tyler-business.png" + } + ] + }, + { + "code": "aspen", + "name": "Aspen", + "type": null, + "status": 2, + "gender": "female", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/aspen/aspen_intro_2.mp4", + "age": 25, + "ethnicity": "Asian", + "variants": [ + { + "code": "business", + "id": "business", + "name": "Business", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/aspen/aspen_business.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/aspen/aspen_business.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/aspen/new_intro/aspen-business_1080.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/aspen/new_intro/Aspen-business.png" + }, + { + "code": "casual", + "id": "casual", + "name": "Casual", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/aspen/casual/aspen_casual.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/aspen/casual/aspen_casual.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/aspen/new_intro/aspen-casual_1080.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/aspen/new_intro/Aspen-casual.png" + } + ] + }, + { + "code": "533713721819", + "type": "photo", + "status": 2, + "accountId": null, + "tilt": { + "top": 0, + "left": 0.16719745222929935, + "zoom": 1.8343949044585988 + }, + "gender": "female", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/staging/avatar_uploads/63105155b5c45d0e07492bfc/dreamshaper_v7_a_mischievous_american_school_girl_with_a_backp_1_thumbnail.jpg?Expires=1727654400&Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cHM6Ly9kM3U2M21oYmhrZXZ6OC5jbG91ZGZyb250Lm5ldC9zdGFnaW5nL2F2YXRhcl91cGxvYWRzLzYzMTA1MTU1YjVjNDVkMGUwNzQ5MmJmYy9kcmVhbXNoYXBlcl92N19hX21pc2NoaWV2b3VzX2FtZXJpY2FuX3NjaG9vbF9naXJsX3dpdGhfYV9iYWNrcF8xX3RodW1ibmFpbC5qcGciLCJDb25kaXRpb24iOnsiRGF0ZUxlc3NUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjE3Mjc2NTQ0MDB9fX1dfQ__&Signature=GJZ6Yb%7EZGd8wf594Twb%7E1Y6knIOdPkCVico85ftGAr5Opx%7EhShT96faFPKABM8edvnOyUvvJF8iaOzoyaENPcL9jTfr4KQD7MWMVgrX9l%7Eyqe5e0BzdNOVbNtaPb2kr2PJucrDrZSx0q3EulWP4E6%7EUPHiYbAFMKCLZc0O5njqHJuGtHHfX59768NZ6yddtJRwxfRaro%7EBI03LnHbc3zhaQ%7ETwR9Idkpq0ga9HmKBb4f11c%7EcISLzO5%7EAuwBB3CpXj167hFH0mcx5f8zSzzeV03q%7EF-lQL3ZzEf17oC0Bkyrn6Bp4Ds3lD%7EW0tytvTz03p9N7KATeaWzKqKF7MiB9A__&Key-Pair-Id=K1Y7U91AR6T7E5", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/staging/avatar_uploads/63105155b5c45d0e07492bfc/dreamshaper_v7_a_mischievous_american_school_girl_with_a_backp_1.jpg?Expires=1727654400&Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cHM6Ly9kM3U2M21oYmhrZXZ6OC5jbG91ZGZyb250Lm5ldC9zdGFnaW5nL2F2YXRhcl91cGxvYWRzLzYzMTA1MTU1YjVjNDVkMGUwNzQ5MmJmYy9kcmVhbXNoYXBlcl92N19hX21pc2NoaWV2b3VzX2FtZXJpY2FuX3NjaG9vbF9naXJsX3dpdGhfYV9iYWNrcF8xLmpwZyIsIkNvbmRpdGlvbiI6eyJEYXRlTGVzc1RoYW4iOnsiQVdTOkVwb2NoVGltZSI6MTcyNzY1NDQwMH19fV19&Signature=HzJ3Is1vcKn1XSBDCQPYS1-wwme21m6NYPOHl%7EOj9nYRw7z6pZqDZH3t0PrBpiSSsrSp7Oi3d6iQuwjRSU1MtUgzP22NbJTWuWMZgAre1GQgkuYykw81GiM5Dts2kQMJtmla6CZKTPfFA7Oc3MfkSM%7E4apNJ%7E2U3lTOlORwJKHXS5SP%7EAG9Xwrk5fxMHWBe4bFAzekXKPyba2SRr5SmG3YJJj-hCKDTsNc-ZMoiLB3QpE%7EmTIo%7ElAq95JRaBWlAt4jUkVX4fWaM7cMrXoYYJLFEChFlTCtSE8qKIyhMQ3YHVKogNAP1jxWa-WboOm3CdqL3gPJfUk4n6TzzGP8EOLA__&Key-Pair-Id=K1Y7U91AR6T7E5", + "faceBbox": { + "x": 157, + "y": 0, + "faceWidth": 628, + "faceHeight": 577, + "faceShare": 0.7513020833333334 + }, + "intro": "https://elai-media.s3.eu-west-2.amazonaws.com/avatars-examples/photo-avatar-11.mp4", + "variants": [] + }, + { + "code": "496765495523", + "type": "photo", + "status": 2, + "accountId": null, + "tilt": { + "top": 0, + "left": 0.05506607929515418, + "zoom": 1.6916299559471366 + }, + "gender": "male", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/staging/avatar_uploads/63105155b5c45d0e07492bfc/dreamshaper_v7_a_portrait_of_a_young_man_illuminated_by_a_warm_1_thumbnail.jpg?Expires=1727654400&Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cHM6Ly9kM3U2M21oYmhrZXZ6OC5jbG91ZGZyb250Lm5ldC9zdGFnaW5nL2F2YXRhcl91cGxvYWRzLzYzMTA1MTU1YjVjNDVkMGUwNzQ5MmJmYy9kcmVhbXNoYXBlcl92N19hX3BvcnRyYWl0X29mX2FfeW91bmdfbWFuX2lsbHVtaW5hdGVkX2J5X2Ffd2FybV8xX3RodW1ibmFpbC5qcGciLCJDb25kaXRpb24iOnsiRGF0ZUxlc3NUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjE3Mjc2NTQ0MDB9fX1dfQ__&Signature=RHpJa-aw6YBJ6J24B43V7eTI18zDumswSsq08xZ3%7EPw69ymmtj0MO3g-jcj-%7EpS3ysGmzcrvOjoowxzzob4%7ENbOcSy7n4L2z4nVHc7u2cthnAx-tzHR3E%7E6cwja%7Ebi78SOxgPEHIphsDMkSczEG7U4mcVQ%7EIwaGSocxfnElG31Phjs7Q%7E3tAVAyb0ediqlpGANpxxvA77NSTWhvCiGdsgNdQvqsLbrVnN7Vaow3SfDybxcGbYBWExov4ndv40XWwJcS4KuXRKDSEan-mr4Z2R-9CWpychOaaz6Y210ii%7EK%7EFHYlufXgA9plsq0zeTWje5AbFdO9bEk9A3rNP6oH%7ECQ__&Key-Pair-Id=K1Y7U91AR6T7E5", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/staging/avatar_uploads/63105155b5c45d0e07492bfc/dreamshaper_v7_a_portrait_of_a_young_man_illuminated_by_a_warm_1.jpg?Expires=1727654400&Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cHM6Ly9kM3U2M21oYmhrZXZ6OC5jbG91ZGZyb250Lm5ldC9zdGFnaW5nL2F2YXRhcl91cGxvYWRzLzYzMTA1MTU1YjVjNDVkMGUwNzQ5MmJmYy9kcmVhbXNoYXBlcl92N19hX3BvcnRyYWl0X29mX2FfeW91bmdfbWFuX2lsbHVtaW5hdGVkX2J5X2Ffd2FybV8xLmpwZyIsIkNvbmRpdGlvbiI6eyJEYXRlTGVzc1RoYW4iOnsiQVdTOkVwb2NoVGltZSI6MTcyNzY1NDQwMH19fV19&Signature=Bp0Tj1J1ek0D4R5jRaRl3cGnkOg6iQrHR0iy8UKlkvyNEXlWKZHQJKIgBKyciRUnruIvtYAm-h0EGIm81i0sLnEsRRPPSbbZkpWJRTNALV8jwN0DcXgwM293q6Oyb4q4w%7E539vFaZMI3%7EXJVCAIAuVcEaWa8RijsmnaN5Z%7Ep2rxTMuW38VJzJb9AxCuXy-C9yFSTFZaAP4pemW6zFWCi%7EyyFDjM9vj0BHTN%7EFNYFKGXmscqpws70YA%7EuX7j3ebyq60Ex1LU2Gkqa961Wtg7SLKqi4-3q7JjG1jwTswGEGDBP-SqvjF13gdefQfEPy8VQ0goxqSiITRE%7EG9SFiFU-ZQ__&Key-Pair-Id=K1Y7U91AR6T7E5", + "faceBbox": { + "x": 132, + "y": 0, + "faceWidth": 454, + "faceHeight": 429, + "faceShare": 0.837890625 + }, + "intro": "https://elai-media.s3.eu-west-2.amazonaws.com/avatars-examples/photo-avatar-10.mp4", + "variants": [] + }, + { + "code": "ethan", + "name": "Ethan", + "type": null, + "status": 2, + "tilt": { + "left": -0.02 + }, + "gender": "male", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/ethan/new_intro/ethan_1080.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/ethan/new_intro/Ethan.png", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/ethan/business/ethan_business_low.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/ethan/business/ethan_business_low.png", + "age": 35, + "ethnicity": "Black", + "variants": [] + }, + { + "code": "alma", + "name": "Alma", + "type": null, + "status": 2, + "gender": "female", + "age": 32, + "ethnicity": "Black", + "variants": [ + { + "code": "casual", + "id": "casual", + "name": "Casual", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/alma/casual/alma_casual.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/alma/casual/alma_casual.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/alma/new_intro/alma-casual_1080.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/alma/new_intro/Alma-casual.png" + }, + { + "code": "business", + "id": "business", + "name": "Business", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/alma/business/alma_business.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/alma/business/alma_business.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/alma/new_intro/alma-business_1080.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/alma/new_intro/Alma-business.png" + } + ] + }, + { + "code": "42734972195", + "type": "photo", + "status": 2, + "accountId": null, + "tilt": { + "top": 0, + "left": -0.025451559934318555, + "zoom": 1.0509031198686372 + }, + "gender": "female", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/staging/avatar_uploads/63105155b5c45d0e07492bfc/dreamshaper_v5_a_stunning_image_of_a_young_woman_in_a_light_bl_1-1_thumbnail.jpg?Expires=1727654400&Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cHM6Ly9kM3U2M21oYmhrZXZ6OC5jbG91ZGZyb250Lm5ldC9zdGFnaW5nL2F2YXRhcl91cGxvYWRzLzYzMTA1MTU1YjVjNDVkMGUwNzQ5MmJmYy9kcmVhbXNoYXBlcl92NV9hX3N0dW5uaW5nX2ltYWdlX29mX2FfeW91bmdfd29tYW5faW5fYV9saWdodF9ibF8xLTFfdGh1bWJuYWlsLmpwZyIsIkNvbmRpdGlvbiI6eyJEYXRlTGVzc1RoYW4iOnsiQVdTOkVwb2NoVGltZSI6MTcyNzY1NDQwMH19fV19&Signature=DehLN6d7ATWW5bGuagbjnjDfTOGV%7E-6CqsqLF7iG54hBgfwDFvSRcbiVgIngHv1n6CFK%7Eh8c4UJnOfQyYc1aoNyMEM6Wav5gyh94hXTC9H72uRGa9lYnWrvhLeMW0hVKgmXwvq4X6K51g3PDq%7Eb2tVUpEWJcsXb4EVcdAcNsKaNk3vRCU%7EXs5fgaQOAdmJ7XjnMYUuuG8j7aSUnsbXjwXRyHjqyBqadNyYBBuUdkK--mz%7ER2Gkacc6lWPxlJnWeQcCudnhha1D6MH4NR%7ERx9rEZt0RZFDWo00%7EZdtvpersXHDRg2s4v6fE3J5fvCKAJN0imbyQtv8BVPYziIcCmmEQ__&Key-Pair-Id=K1Y7U91AR6T7E5", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/staging/avatar_uploads/63105155b5c45d0e07492bfc/dreamshaper_v5_a_stunning_image_of_a_young_woman_in_a_light_bl_1-1.jpg?Expires=1727654400&Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cHM6Ly9kM3U2M21oYmhrZXZ6OC5jbG91ZGZyb250Lm5ldC9zdGFnaW5nL2F2YXRhcl91cGxvYWRzLzYzMTA1MTU1YjVjNDVkMGUwNzQ5MmJmYy9kcmVhbXNoYXBlcl92NV9hX3N0dW5uaW5nX2ltYWdlX29mX2FfeW91bmdfd29tYW5faW5fYV9saWdodF9ibF8xLTEuanBnIiwiQ29uZGl0aW9uIjp7IkRhdGVMZXNzVGhhbiI6eyJBV1M6RXBvY2hUaW1lIjoxNzI3NjU0NDAwfX19XX0_&Signature=cKw96qbIaGs-pLYt5mi-jk1WB02Aa-ij3Ta7oecMeY%7EACmmqw5NOBRX9vzRW6XsGh1HD3aaIU%7EbRAX9wQ8XZTR0DyiKZACTMa9ZfO5mPEJ4KpNQ9lfjMlevKIQK8FVH41jM5pYTh1ObzjdeAEHLxk60y1p9sJ-RgTto9zWJXbZQ9TM1W94MluAihcccbfjhb73HxU6FAeuIiTY2gqlGjw2b9cgxLbgqYqlkspwX0PaenV4zwDPY4zIu1aUmoUOdeOrjMuo2shC7urD4rrOUe7H6MnQCtjjd%7E8yLF%7EEoLM3IFHLsuOpUmVlhAmVwP1JkxbOvGgfO2jEe1CB3mg0eM2w__&Key-Pair-Id=K1Y7U91AR6T7E5", + "faceBbox": { + "x": 31, + "y": 0, + "faceWidth": 609, + "faceHeight": 667, + "faceShare": 0.8016826923076923 + }, + "intro": "https://elai-media.s3.eu-west-2.amazonaws.com/avatars-examples/photo-avatar-12.mp4", + "variants": [] + }, + { + "code": "jade", + "name": "Jade", + "type": null, + "status": 2, + "gender": "female", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/jade/new_intro/jade_intro_2.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/jade/new_intro/Jade.png", + "canvas": "https://elai-media.s3.eu-west-2.amazonaws.com/avatars-footage/jade_jade_silent_look_modified_hq_low_1.png", + "thumbnail": "https://elai-media.s3.eu-west-2.amazonaws.com/avatars-footage/jade_jade_.silent_09.12.jpg", + "age": 23, + "ethnicity": "White / Caucasian", + "variants": [] + }, + { + "code": "brooke", + "name": "Brooke", + "type": null, + "status": 2, + "gender": "female", + "age": 25, + "ethnicity": "Black", + "variants": [ + { + "code": "business", + "id": "business", + "name": "Business", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/brooke/brooke_business.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/brooke/brooke_business.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/brooke/new_intro/brooke_business.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/brooke/new_intro/brooke_business.png" + }, + { + "code": "casual", + "id": "casual", + "name": "Casual", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/brooke/casual/brooke_casual.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/brooke/casual/brooke_casual.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/brooke/new_intro/brooke_casual.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/brooke/new_intro/brooke_casual.png" + } + ] + }, + { + "code": "1539984167115", + "type": "photo", + "status": 2, + "accountId": null, + "tilt": { + "top": -0.08703535811423391, + "left": -0.0022665457842248413, + "zoom": 1.3055303717135087 + }, + "gender": "female", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/staging/avatar_uploads/63105155b5c45d0e07492bfc/tamara-bellis-edvqwvmlmgu-unsplash_thumbnail.jpg?Expires=1727654400&Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cHM6Ly9kM3U2M21oYmhrZXZ6OC5jbG91ZGZyb250Lm5ldC9zdGFnaW5nL2F2YXRhcl91cGxvYWRzLzYzMTA1MTU1YjVjNDVkMGUwNzQ5MmJmYy90YW1hcmEtYmVsbGlzLWVkdnF3dm1sbWd1LXVuc3BsYXNoX3RodW1ibmFpbC5qcGciLCJDb25kaXRpb24iOnsiRGF0ZUxlc3NUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjE3Mjc2NTQ0MDB9fX1dfQ__&Signature=eBYFA4RzhNpZWoMuAGDwGcSzpNsTxZm6RRTMWaZGvk2gcQgDZm6GI19LOSZH4RmuIj4quo-S-TJV0YbAcHY5hwkDaEM5JL-6O9hSg1x5CqaMHxoouHMy-YVEg3y4KARcjBqAwIo6O56pzz%7EGwS8-RyOHLRSsyaAO%7EnUpbycmzQgyfet8UXe9iqEYLsD-dF5frayGtvmTxxubmxsBCxybIjadhDfWc7iPcwVtxbDW7Jm9ozPdcKfkCGra0nD5MO0-PudMh7vimV1RPBJdqTFqWR3-U8tLUB2vhwuwOkmdIBBNAJ9seFf1lGTMlw%7EMrtz3-I5FEraIgPf%7EEvwUQRGx8w__&Key-Pair-Id=K1Y7U91AR6T7E5", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/staging/avatar_uploads/63105155b5c45d0e07492bfc/tamara-bellis-edvqwvmlmgu-unsplash.jpg?Expires=1727654400&Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cHM6Ly9kM3U2M21oYmhrZXZ6OC5jbG91ZGZyb250Lm5ldC9zdGFnaW5nL2F2YXRhcl91cGxvYWRzLzYzMTA1MTU1YjVjNDVkMGUwNzQ5MmJmYy90YW1hcmEtYmVsbGlzLWVkdnF3dm1sbWd1LXVuc3BsYXNoLmpwZyIsIkNvbmRpdGlvbiI6eyJEYXRlTGVzc1RoYW4iOnsiQVdTOkVwb2NoVGltZSI6MTcyNzY1NDQwMH19fV19&Signature=FJaAW-aXBVj9vuvr8QfRNniNnDFNaW1wuPBhAdQvKMV%7ECJWMYLO%7EOoUjr2S-8fLTZH7kN3O-9NVxF6nfcSMqeXIoDpU6sWl%7EN2UX23UoL-w8lObE4UJC8m8rOZZvKAIg-ZVpVrUvLeMi9jx7hbB78IWBG2E7hA2cnAL0EbOSLfjv1onld4z0SNhC8Q9WOkjyh8QWxRdWmYmWju240Nn8JStHI9ZLpwyYUgBjS-VIRncY0Ro6AZ8d3PfLmWf-qQgE%7E0VCFNTJyNqg0m2YiCwN75cc%7E6sRs4ecMNu2cjOrpqagsQug6btvTgiZcsryeW5LUBmmBsNddYTQ5aMIBaXDQg__&Key-Pair-Id=K1Y7U91AR6T7E5", + "faceBbox": { + "x": 171, + "y": 96, + "faceWidth": 1103, + "faceHeight": 1103, + "faceShare": 0.5106481481481482 + }, + "intro": "https://elai-media.s3.eu-west-2.amazonaws.com/avatars-examples/photo-avatar-2.mp4", + "variants": [] + }, + { + "code": "gia_realtime_smooth", + "name": "Gia Seamless", + "type": null, + "status": 2, + "gender": "female", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/gia/casual/gia_casual.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/gia/casual/gia_casual.png", + "defaultVoice": "elevenlabs@EXAVITQu4vr4xnSDxMaL", + "variants": [] + }, + { + "code": "skye", + "name": "Skye", + "type": null, + "status": 2, + "gender": "female", + "limit": 300, + "age": 27, + "ethnicity": "Black", + "variants": [ + { + "code": "casual", + "id": "casual", + "name": "Casual", + "limit": 300, + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/skye_2/skye_casual_2.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/skye_2/skye_casual_2.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/skye_2/new_intro/skye_1080.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/skye_2/new_intro/Skye_casual.png" + }, + { + "code": "business", + "id": "business", + "name": "Business", + "limit": 300, + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/skye_2/business/skye_business_2.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/skye_2/business/skye_business_2.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/skye_2/new_intro/skye-business.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/skye_2/new_intro/Skye_business.png" + } + ] + }, + { + "code": "amira", + "name": "Amira", + "type": null, + "status": 2, + "gender": "female", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/amira/hq/new_intro/amira__1080.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/amira/hq/new_intro/Amira.png", + "age": 29, + "ethnicity": "South Asian / Indian", + "variants": [ + { + "code": "casual", + "id": "casual", + "name": "Casual", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/amira/hq/amira_1.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/amira/hq/amira.png" + } + ] + }, + { + "code": "40937680419", + "type": "photo", + "status": 2, + "accountId": null, + "tilt": { + "top": -0.07985480943738657, + "left": 0.03901996370235935, + "zoom": 2.613430127041742 + }, + "gender": "male", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/staging/avatar_uploads/63105155b5c45d0e07492bfc/stephanie-nakagawa-adskin0scdg-unsplash_thumbnail.jpg?Expires=1727654400&Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cHM6Ly9kM3U2M21oYmhrZXZ6OC5jbG91ZGZyb250Lm5ldC9zdGFnaW5nL2F2YXRhcl91cGxvYWRzLzYzMTA1MTU1YjVjNDVkMGUwNzQ5MmJmYy9zdGVwaGFuaWUtbmFrYWdhd2EtYWRza2luMHNjZGctdW5zcGxhc2hfdGh1bWJuYWlsLmpwZyIsIkNvbmRpdGlvbiI6eyJEYXRlTGVzc1RoYW4iOnsiQVdTOkVwb2NoVGltZSI6MTcyNzY1NDQwMH19fV19&Signature=OItJfDIIiWD-1vr4raC83uvFgaq40s6YMGIEkVLpX1bT0%7Ebs3GteBMz6vD453NFFyZMIwCxlxl1G-ABtprxqx0h9PxJOe2NAfThaiOWEBiGx%7ELLobvLhi6-JouQEQhUERsQ6NXSTfXq5QumSs%7EN57WI14Ax%7EZH65s2fycu9mgW9GmpN15YuUcdoLJ4hpIASxE1TMHrBl1nWU5dsGJVyPmikiByR%7E8Arw5xc7Q8gLKkbkBmp-GUXRApD8Txxh4AKC%7ErPU%7EaHSWNA7paUHP-wvVOH9B1bU87KQWEmGsAXN-ZJC5mGcXAsNCi46RHdIEERURwqbjolL0JJg8S3-0-lPuA__&Key-Pair-Id=K1Y7U91AR6T7E5", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/staging/avatar_uploads/63105155b5c45d0e07492bfc/stephanie-nakagawa-adskin0scdg-unsplash.jpg?Expires=1727654400&Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cHM6Ly9kM3U2M21oYmhrZXZ6OC5jbG91ZGZyb250Lm5ldC9zdGFnaW5nL2F2YXRhcl91cGxvYWRzLzYzMTA1MTU1YjVjNDVkMGUwNzQ5MmJmYy9zdGVwaGFuaWUtbmFrYWdhd2EtYWRza2luMHNjZGctdW5zcGxhc2guanBnIiwiQ29uZGl0aW9uIjp7IkRhdGVMZXNzVGhhbiI6eyJBV1M6RXBvY2hUaW1lIjoxNzI3NjU0NDAwfX19XX0_&Signature=myNizLQp3Yl0zZnKEWQ1tc-2BVvvfxFkEzoCXKzItQGkQWe1gIOCwFq35c9oXZOB9QZy4YCErlmfgZYIxvbAUANfvgPGqyQxu9Sy8MxS%7EwykQV%7EIrcv8cVXvGa2fR-K3cWa35dUhdA7rarHCAE6OYPnUOoFy9ZY6bIDIdq59n-yUqfTKUT8Ryra5PP5zLwVuHJI7VRBbL4LZR10fwA4J2OYe-%7ErTsaW%7EbSfGMXdeG8GRNhlaaAgGjYzzvnxlSKRkyMmZTTlyX3b03IkUxsjZF3s812DwOkGamBFO50Eg9VP-2AtxRqPNQOwchPhH%7EwhQ-f-5av6Ghl1ENL%7E0axnssw__&Key-Pair-Id=K1Y7U91AR6T7E5", + "faceBbox": { + "x": 423, + "y": 44, + "faceWidth": 551, + "faceHeight": 551, + "faceShare": 0.2550925925925926 + }, + "intro": "https://elai-media.s3.eu-west-2.amazonaws.com/avatars-examples/photo-avatar-1.mp4", + "variants": [] + }, + { + "code": "terry", + "name": "Terry", + "type": null, + "status": 2, + "gender": "male", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/terry/new_intro/terry.mp4", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/terry/terry_main.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/terry/terry_main_3_1.png", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/terry/new_intro/Terry.png", + "age": 25, + "ethnicity": "White / Caucasian", + "variants": [] + }, + { + "code": "rose", + "name": "Rose", + "type": null, + "status": 2, + "gender": "female", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/common/rose/rose.jpg", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/common/rose/rose.png", + "intro": "https://d3u63mhbhkevz8.cloudfront.net/common/rose/new_intro/rose_1080.mp4", + "introPoster": "https://d3u63mhbhkevz8.cloudfront.net/common/rose/new_intro/Rose.png", + "age": 33, + "ethnicity": "White / Caucasian", + "variants": [] + }, + { + "code": "elai-cartoon", + "name": "Cartoon Cat", + "type": "mascot", + "status": 2, + "accountId": null, + "gender": "male", + "variants": [ + { + "code": "elai_regular_anim", + "id": "elai_regular_anim", + "name": "Standing", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/cartoons/elai/regular/regular_1.png", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/cartoons/elai/regular/regular.jpg" + }, + { + "code": "elai_business_anim", + "id": "elai_business_anim", + "name": "Business", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/cartoons/elai/business/business.png", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/cartoons/elai/business/business.png" + }, + { + "code": "elai_basketball_anim", + "id": "elai_basketball_anim", + "name": "Basketball", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/cartoons/elai/basketball/basketball.png", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/cartoons/elai/basketball/basketball.png" + }, + { + "code": "elai_superhero_anim", + "id": "elai_superhero_anim", + "name": "Superhero", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/cartoons/elai/superhero/superhero.png", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/cartoons/elai/superhero/superhero.png" + }, + { + "code": "elai_skater", + "id": "elai_skater", + "name": "Skater", + "canvas": "https://d3u63mhbhkevz8.cloudfront.net/cartoons/elai/skater/skater.png", + "thumbnail": "https://d3u63mhbhkevz8.cloudfront.net/cartoons/elai/skater/skater.png" + } + ] + } + ] +} \ No newline at end of file diff --git a/elai/english_voices.json b/elai/english_voices.json new file mode 100644 index 0000000..8a1d865 --- /dev/null +++ b/elai/english_voices.json @@ -0,0 +1,3386 @@ +{ + "voices": [ + { + "name": "English", + "male": [ + { + "voiceProvider": "azure", + "character": "Andrew M", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-AndrewMultilingualNeural", + "icon": "us", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-andrewmultilingualneural-en-us.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Tony", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-TonyNeural", + "icon": "us", + "styleList": [ + "angry", + "cheerful", + "excited", + "friendly", + "hopeful", + "sad", + "shouting", + "terrified", + "unfriendly", + "whispering" + ], + "defaultStyle": "friendly", + "stylePreview": { + "angry": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-tonyneural:angry-en-us.mp3", + "cheerful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-tonyneural:cheerful-en-us.mp3", + "excited": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-tonyneural:excited-en-us.mp3", + "friendly": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-tonyneural:friendly-en-us.mp3", + "hopeful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-tonyneural:hopeful-en-us.mp3", + "sad": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-tonyneural:sad-en-us.mp3", + "shouting": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-tonyneural:shouting-en-us.mp3", + "terrified": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-tonyneural:terrified-en-us.mp3", + "unfriendly": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-tonyneural:unfriendly-en-us.mp3", + "whispering": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-tonyneural:whispering-en-us.mp3" + }, + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-tonyneural-en-us.mp3", + "approxDurationCoeficient": 20 + }, + { + "voiceProvider": "azure", + "character": "Davis", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-DavisNeural", + "icon": "us", + "styleList": [ + "chat", + "angry", + "cheerful", + "excited", + "friendly", + "hopeful", + "sad", + "shouting", + "terrified", + "unfriendly", + "whispering" + ], + "defaultStyle": "friendly", + "stylePreview": { + "chat": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-davisneural:chat-en-us.mp3", + "angry": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-davisneural:angry-en-us.mp3", + "cheerful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-davisneural:cheerful-en-us.mp3", + "excited": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-davisneural:excited-en-us.mp3", + "friendly": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-davisneural:friendly-en-us.mp3", + "hopeful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-davisneural:hopeful-en-us.mp3", + "sad": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-davisneural:sad-en-us.mp3", + "shouting": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-davisneural:shouting-en-us.mp3", + "terrified": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-davisneural:terrified-en-us.mp3", + "unfriendly": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-davisneural:unfriendly-en-us.mp3", + "whispering": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-davisneural:whispering-en-us.mp3" + }, + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-davisneural-en-us.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Jason", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-JasonNeural", + "icon": "us", + "styleList": [ + "angry", + "cheerful", + "excited", + "friendly", + "hopeful", + "sad", + "shouting", + "terrified", + "unfriendly", + "whispering" + ], + "defaultStyle": "friendly", + "stylePreview": { + "angry": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-jasonneural:angry-en-us.mp3", + "cheerful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-jasonneural:cheerful-en-us.mp3", + "excited": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-jasonneural:excited-en-us.mp3", + "friendly": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-jasonneural:friendly-en-us.mp3", + "hopeful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-jasonneural:hopeful-en-us.mp3", + "sad": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-jasonneural:sad-en-us.mp3", + "shouting": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-jasonneural:shouting-en-us.mp3", + "terrified": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-jasonneural:terrified-en-us.mp3", + "unfriendly": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-jasonneural:unfriendly-en-us.mp3", + "whispering": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-jasonneural:whispering-en-us.mp3" + }, + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-jasonneural-en-us.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Ryan", + "name": "English (United Kingdom)", + "locale": "en-GB", + "voice": "en-GB-RyanNeural", + "icon": "gb", + "styleList": [ + "cheerful", + "chat" + ], + "stylePreview": { + "cheerful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-gb-ryanneural:cheerful-en-us.mp3", + "chat": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-gb-ryanneural:chat-en-us.mp3" + }, + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-gb-ryanneural-en-us.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Brian M", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-BrianMultilingualNeural", + "icon": "us", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-brianmultilingualneural-en-us.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Wade", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "calm", + "young" + ], + "playedTags": [ + { + "id": "30", + "name": "Narration", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/wsl/wsl-30-en-us.mp3" + }, + { + "id": "26", + "name": "Promo", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/wsl/wsl-26-en-us.mp3" + } + ], + "approxDurationCoeficient": 14 + }, + { + "character": "Lee", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "upbeat", + "middle-aged" + ], + "playedTags": [ + { + "id": "23", + "name": "promo", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_lee.m._promo_upbeat.wav" + } + ], + "approxDurationCoeficient": 16 + }, + { + "character": "Paul", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "upbeat", + "young" + ], + "playedTags": [ + { + "id": "41", + "name": "promo", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_paul.b._promo_upbeat.wav" + } + ], + "approxDurationCoeficient": 19 + }, + { + "character": "Jeremy", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "calm", + "young" + ], + "playedTags": [ + { + "id": "13", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_jeremy.g._narration_calm.wav" + } + ], + "approxDurationCoeficient": 16 + }, + { + "character": "Tobin", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "fast-paced", + "young" + ], + "playedTags": [ + { + "id": "16", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_tobin.a._narration_fast-paced.wav" + } + ], + "approxDurationCoeficient": 21 + }, + { + "character": "Zach", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "upbeat", + "young" + ], + "playedTags": [ + { + "id": "54", + "name": "promo", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_zach.e._promo_upbeat.wav" + } + ], + "approxDurationCoeficient": 18 + }, + { + "character": "Tristan", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "upbeat", + "young" + ], + "playedTags": [ + { + "id": "18", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_tristan.f._narration_upbeat.wav" + } + ], + "approxDurationCoeficient": 17 + }, + { + "character": "Theo", + "name": "English (GB)", + "locale": "en-GB", + "icon": "gb", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "slow-paced", + "young" + ], + "playedTags": [ + { + "id": "57", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_theo.k._narration_slow-paced.wav" + } + ], + "approxDurationCoeficient": 15 + }, + { + "character": "Steve", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "slow-paced", + "young" + ], + "playedTags": [ + { + "id": "37", + "name": "promo", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_steve.b._promo_slow-paced.wav" + } + ], + "approxDurationCoeficient": 16 + }, + { + "character": "Se'von", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "upbeat", + "young" + ], + "playedTags": [ + { + "id": "105", + "name": "Narration", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/wsl/wsl-105-en-us.mp3" + } + ], + "approxDurationCoeficient": 19 + }, + { + "character": "Raine", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "slow-paced", + "young" + ], + "playedTags": [ + { + "id": "52", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_raine.b._narration_slow-paced.wav" + } + ], + "approxDurationCoeficient": 16 + }, + { + "character": "Philip", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "playedTags": [ + { + "id": "60", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_philip.j._narration_calm.wav" + } + ], + "approxDurationCoeficient": 19 + }, + { + "character": "Patrick", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "playedTags": [ + { + "id": "19", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_patrick.k._narration_calm.wav" + }, + { + "id": "47", + "name": "conversational", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_patrick.k._conversational_calm.wav" + } + ], + "approxDurationCoeficient": 18 + }, + { + "character": "Owen", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "playedTags": [ + { + "id": "53", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_owen.c._narration_calm.wav" + } + ], + "approxDurationCoeficient": 17 + }, + { + "character": "Oliver", + "name": "English (GB)", + "locale": "en-GB", + "icon": "gb", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "playedTags": [ + { + "id": "98", + "name": "Narration", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/wsl/wsl-98-en-us.mp3" + } + ], + "approxDurationCoeficient": 16 + }, + { + "character": "Michael", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "fast-paced", + "young" + ], + "playedTags": [ + { + "id": "76", + "name": "Narration", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/wsl/wsl-76-en-us.mp3" + } + ], + "approxDurationCoeficient": 17 + }, + { + "character": "Marcus", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "calm", + "young" + ], + "playedTags": [ + { + "id": "61", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_marcus.g._narration_calm.wav" + } + ], + "approxDurationCoeficient": 17 + }, + { + "character": "Lulu", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "upbeat", + "young" + ], + "playedTags": [ + { + "id": "101", + "name": "Narration", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/wsl/wsl-101-en-us.mp3" + } + ], + "approxDurationCoeficient": 18 + }, + { + "character": "Lorenzo", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "fast-paced", + "middle-aged" + ], + "playedTags": [ + { + "id": "100", + "name": "Narration", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/wsl/wsl-100-en-us.mp3" + } + ], + "approxDurationCoeficient": 17 + }, + { + "character": "Kai", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "upbeat", + "fast-paced", + "young" + ], + "playedTags": [ + { + "id": "32", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_kai.m._narration_upbeat.wav" + }, + { + "id": "44", + "name": "conversational", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_kai.m._conversational_fast-paced.wav" + } + ], + "approxDurationCoeficient": 17 + }, + { + "character": "Jude", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "calm", + "young" + ], + "playedTags": [ + { + "id": "33", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_jude.d._narration_calm.wav" + } + ], + "approxDurationCoeficient": 17 + }, + { + "character": "Joe", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "calm", + "character", + "middle-aged" + ], + "playedTags": [ + { + "id": "27", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_joe.f._narration_calm.wav" + }, + { + "id": "28", + "name": "promo", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_joe.f._promo_upbeat.wav" + } + ], + "approxDurationCoeficient": 16 + }, + { + "character": "Jimmy", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "fast-paced", + "young" + ], + "playedTags": [ + { + "id": "106", + "name": "Narration", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/wsl/wsl-106-en-us.mp3" + } + ], + "approxDurationCoeficient": 16 + }, + { + "character": "Jensen", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "upbeat", + "young" + ], + "playedTags": [ + { + "id": "96", + "name": "Narration", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/wsl/wsl-96-en-us.mp3" + } + ], + "approxDurationCoeficient": 18 + }, + { + "character": "Jay", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "calm", + "young" + ], + "playedTags": [ + { + "id": "107", + "name": "Narration", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/wsl/wsl-107-en-us.mp3" + } + ], + "approxDurationCoeficient": 18 + }, + { + "character": "Jarvis", + "name": "English (GB)", + "locale": "en-GB", + "icon": "gb", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "calm", + "young" + ], + "playedTags": [ + { + "id": "56", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_jarvis.h._narration_calm.wav" + } + ], + "approxDurationCoeficient": 16 + }, + { + "character": "James", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "slow-paced", + "young" + ], + "playedTags": [ + { + "id": "58", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_james.b._narration_slow-paced.wav" + } + ], + "approxDurationCoeficient": 16 + }, + { + "character": "Jack", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "fast-paced", + "young" + ], + "playedTags": [ + { + "id": "97", + "name": "Narration", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/wsl/wsl-97-en-us.mp3" + } + ], + "approxDurationCoeficient": 16 + }, + { + "character": "Greg", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "calm", + "young" + ], + "playedTags": [ + { + "id": "66", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_greg.g._narration_calm.wav" + } + ], + "approxDurationCoeficient": 16 + }, + { + "character": "Garry", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "slow-paced", + "old" + ], + "playedTags": [ + { + "id": "29", + "name": "character", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_garry.j._character_slow-paced_elderly.wav" + } + ], + "approxDurationCoeficient": 16 + }, + { + "character": "Eric", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "upbeat", + "young" + ], + "playedTags": [ + { + "id": "34", + "name": "promo", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_eric.s._promo_upbeat.wav" + } + ], + "approxDurationCoeficient": 17 + }, + { + "character": "Diarmid", + "name": "English (Australia)", + "locale": "en-AU", + "icon": "au", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "slow-paced", + "middle-aged" + ], + "playedTags": [ + { + "id": "69", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_diarmid.c._narration_slow-paced.wav" + } + ], + "approxDurationCoeficient": 14 + }, + { + "character": "Damian", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "upbeat", + "middle-aged" + ], + "playedTags": [ + { + "id": "21", + "name": "promo", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_damien.p._promo_upbeat.wav" + } + ], + "approxDurationCoeficient": 16 + }, + { + "character": "Chase", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "fast-paced", + "young" + ], + "playedTags": [ + { + "id": "35", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_chase.j._narration_fast-paced.wav" + } + ], + "approxDurationCoeficient": 22 + }, + { + "character": "Ben", + "name": "English (South Africa)", + "locale": "en-ZA", + "icon": "za", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "calm", + "young" + ], + "playedTags": [ + { + "id": "137", + "name": "Conversational", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/wsl/wsl-137-en-us.mp3" + } + ], + "approxDurationCoeficient": 19 + }, + { + "character": "Antony", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "playedTags": [ + { + "id": "50", + "name": "promo", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_anthony.a._narration_calm.wav" + } + ], + "approxDurationCoeficient": 16 + }, + { + "character": "Alan", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "calm", + "young" + ], + "playedTags": [ + { + "id": "71", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_alan.t._narration_calm.wav" + } + ], + "approxDurationCoeficient": 17 + }, + { + "character": "Aaron", + "name": "English (Australia)", + "locale": "en-AU", + "icon": "au", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "fast-paced", + "middle-aged" + ], + "playedTags": [ + { + "id": "112", + "name": "Narration", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/wsl/wsl-112-en-us.mp3" + } + ], + "approxDurationCoeficient": 15 + }, + { + "character": "Antoni", + "voice": "ErXwobaYiN019PkySvjV", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "well-rounded", + "calm" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/ErXwobaYiN019PkySvjV/ee9ac367-91ee-4a56-818a-2bd1a9dbe83a.mp3", + "order": 1, + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "approxDurationCoeficient": 17 + }, + { + "character": "Josh", + "voice": "TxGEqnHWrfWFTfGW9XjX", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "young" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/TxGEqnHWrfWFTfGW9XjX/3ae2fc71-d5f9-4769-bb71-2a43633cd186.mp3", + "order": 2, + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "approxDurationCoeficient": 18 + }, + { + "character": "Arnold", + "voice": "VR6AewLTigWG4xSOukaG", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "crisp", + "middle-aged" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/VR6AewLTigWG4xSOukaG/316050b7-c4e0-48de-acf9-a882bb7fc43b.mp3", + "order": 3, + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "approxDurationCoeficient": 18 + }, + { + "character": "Adam", + "voice": "pNInz6obpgDQGcFmaJgB", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "middle-aged" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/pNInz6obpgDQGcFmaJgB/38a69695-2ca9-4b9e-b9ec-f07ced494a58.mp3", + "order": 4, + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "approxDurationCoeficient": 17 + }, + { + "character": "Bill", + "voice": "pqHfZKP75CvOlQylNhV4", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "strong", + "middle-aged" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/pqHfZKP75CvOlQylNhV4/52f0842a-cf81-4715-8cf0-76cfbd77088e.mp3", + "order": 5, + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "approxDurationCoeficient": 16 + }, + { + "character": "Jessie", + "voice": "t0jbNlBVZ17f02VDIeMI", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "fast-paced", + "old" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/t0jbNlBVZ17f02VDIeMI/e26939e3-61a4-4872-a41d-33922cfbdcdc.mp3", + "order": 6, + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "approxDurationCoeficient": 19 + }, + { + "character": "Michael", + "voice": "flq6f7yk4E4fJM5XTYuZ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "orutund", + "old" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/flq6f7yk4E4fJM5XTYuZ/c6431a82-f7d2-4905-b8a4-a631960633d6.mp3", + "order": 7, + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "approxDurationCoeficient": 17 + }, + { + "character": "Liam", + "voice": "TX3LPaxmHKxFdv7VOQHJ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "neutral", + "young" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/TX3LPaxmHKxFdv7VOQHJ/63148076-6363-42db-aea8-31424308b92c.mp3", + "order": 8, + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "approxDurationCoeficient": 20 + }, + { + "character": "Harry", + "voice": "SOYHLrjzK2X1ezoPC6cr", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "anxious", + "young" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/SOYHLrjzK2X1ezoPC6cr/86d178f6-f4b6-4e0e-85be-3de19f490794.mp3", + "order": 9, + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "approxDurationCoeficient": 18 + }, + { + "character": "Patrick", + "voice": "ODq5zmih8GrVes37Dizd", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "shouty", + "middle-aged" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/ODq5zmih8GrVes37Dizd/0ebec87a-2569-4976-9ea5-0170854411a9.mp3", + "order": 10, + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "approxDurationCoeficient": 20 + }, + { + "character": "Thomas", + "voice": "GBv7mTt0atIp3Br8iCZE", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/GBv7mTt0atIp3Br8iCZE/98542988-5267-4148-9a9e-baa8c4f14644.mp3", + "order": 11, + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "approxDurationCoeficient": 17 + }, + { + "character": "Drew", + "voice": "29vD33N1CtxCmqQRPOHJ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "well-rounded", + "middle-aged" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/29vD33N1CtxCmqQRPOHJ/e8b52a3f-9732-440f-b78a-16d5e26407a1.mp3", + "order": 12, + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "approxDurationCoeficient": 16 + }, + { + "character": "Paul", + "voice": "5Q0t7uMcjvnagumLfvZi", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "narration", + "middle-aged" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/5Q0t7uMcjvnagumLfvZi/1094515a-b080-4282-aac7-b1b8a553a3a8.mp3", + "order": 13, + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "approxDurationCoeficient": 17 + }, + { + "character": "Callum", + "voice": "N2lVS1w4EtoT3dr4eOWO", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "masculine", + "middle-aged" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/N2lVS1w4EtoT3dr4eOWO/ac833bd8-ffda-4938-9ebc-b0f99ca25481.mp3", + "order": 14, + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "approxDurationCoeficient": 17 + }, + { + "character": "Giovanni", + "voice": "zcAOhNBS3c14rBihAFp1", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "italian-accent", + "young" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/zcAOhNBS3c14rBihAFp1/e7410f8f-4913-4cb8-8907-784abee5aff8.mp3", + "order": 15, + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "approxDurationCoeficient": 17 + }, + { + "character": "Ethan", + "voice": "g5CIjZEefAph4nQFvHAz", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "whisper", + "middle-aged" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/g5CIjZEefAph4nQFvHAz/26acfa99-fdec-43b8-b2ee-e49e75a3ac16.mp3", + "order": 16, + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "approxDurationCoeficient": 16 + }, + { + "character": "Clyde", + "voice": "2EiwWnXFnvU5JabPnv8n", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "masculine", + "middle-aged" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/2EiwWnXFnvU5JabPnv8n/65d80f52-703f-4cae-a91d-75d4e200ed02.mp3", + "order": 17, + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "approxDurationCoeficient": 14 + }, + { + "character": "George", + "voice": "JBFqnCBsd6RMkjVDRZzb", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "raspy", + "narration" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/JBFqnCBsd6RMkjVDRZzb/365e8ae8-5364-4b07-9a3b-1bfb4a390248.mp3", + "order": 19, + "name": "English (United States)", + "locale": "en-US", + "icon": "gb", + "approxDurationCoeficient": 17 + }, + { + "character": "Dave", + "voice": "CYw3kZ02Hs0563khs1Fj", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "essex-accent", + "young" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/CYw3kZ02Hs0563khs1Fj/872cb056-45d3-419e-b5c6-de2b387a93a0.mp3", + "order": 20, + "name": "English (United States)", + "locale": "en-US", + "icon": "gb", + "approxDurationCoeficient": 18 + }, + { + "character": "Joseph", + "voice": "Zlb1dXrM653N07WRdFW3", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "upbeat", + "middle-aged" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/Zlb1dXrM653N07WRdFW3/daa22039-8b09-4c65-b59f-c79c48646a72.mp3", + "order": 21, + "name": "English (United States)", + "locale": "en-US", + "icon": "gb", + "approxDurationCoeficient": 17 + }, + { + "character": "Daniel", + "voice": "onwK4e9ZLuTAKqWW03F9", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "middle-aged" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/onwK4e9ZLuTAKqWW03F9/7eee0236-1a72-4b86-b303-5dcadc007ba9.mp3", + "order": 22, + "name": "English (United States)", + "locale": "en-US", + "icon": "gb", + "approxDurationCoeficient": 18 + }, + { + "character": "Charlie", + "voice": "IKne3meq5aSn9XLyUdCD", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "casual", + "middle-aged" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/IKne3meq5aSn9XLyUdCD/102de6f2-22ed-43e0-a1f1-111fa75c5481.mp3", + "order": 23, + "name": "English (United States)", + "locale": "en-US", + "icon": "au", + "approxDurationCoeficient": 17 + }, + { + "character": "James", + "voice": "ZQe5CZNOzWyzPSCn5a3c", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "old" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/ZQe5CZNOzWyzPSCn5a3c/35734112-7b72-48df-bc2f-64d5ab2f791b.mp3", + "order": 24, + "name": "English (United States)", + "locale": "en-US", + "icon": "au", + "approxDurationCoeficient": 16 + }, + { + "character": "Fin", + "voice": "D38z5RcWu1voky8WS1ja", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "sailor", + "old" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/D38z5RcWu1voky8WS1ja/a470ba64-1e72-46d9-ba9d-030c4155e2d2.mp3", + "order": 25, + "name": "English (United States)", + "locale": "en-US", + "icon": "ie", + "approxDurationCoeficient": 16 + }, + { + "character": "Jeremy", + "voice": "bVMeCyTHy58xNoL34h3p", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "excited", + "young" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/bVMeCyTHy58xNoL34h3p/66c47d58-26fd-4b30-8a06-07952116a72c.mp3", + "order": 26, + "name": "English (United States)", + "locale": "en-US", + "icon": "ie", + "approxDurationCoeficient": 18 + }, + { + "character": "Chris", + "voice": "iP95p4xoKVk53GoZ742B", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/iP95p4xoKVk53GoZ742B/c1bda571-7123-418e-a796-a2b464b373b4.mp3", + "order": 99999, + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "approxDurationCoeficient": 19 + }, + { + "character": "Brian", + "voice": "nPczCjzI2devNBz1zQrb", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/nPczCjzI2devNBz1zQrb/f4dbda0c-aff0-45c0-93fa-f5d5ec95a2eb.mp3", + "order": 99999, + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "approxDurationCoeficient": 19 + }, + { + "character": "Sam", + "voice": "yoZ06aMxZJJ28mfd3POQ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "fast-paced", + "young" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/yoZ06aMxZJJ28mfd3POQ/ac9d1c91-92ce-4b20-8cc2-3187a7da49ec.mp3", + "order": 99999, + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "William", + "name": "English (Australia)", + "locale": "en-AU", + "voice": "en-AU-WilliamNeural", + "icon": "au", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-au-williamneural-en-us.mp3", + "approxDurationCoeficient": 19 + }, + { + "voiceProvider": "azure", + "character": "Darren", + "name": "English (Australia)", + "locale": "en-AU", + "voice": "en-AU-DarrenNeural", + "icon": "au", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-au-darrenneural-en-us.mp3", + "approxDurationCoeficient": 22 + }, + { + "voiceProvider": "azure", + "character": "Duncan", + "name": "English (Australia)", + "locale": "en-AU", + "voice": "en-AU-DuncanNeural", + "icon": "au", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-au-duncanneural-en-us.mp3" + }, + { + "voiceProvider": "azure", + "character": "Ken", + "name": "English (Australia)", + "locale": "en-AU", + "voice": "en-AU-KenNeural", + "icon": "au", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-au-kenneural-en-us.mp3", + "approxDurationCoeficient": 19 + }, + { + "voiceProvider": "azure", + "character": "Neil", + "name": "English (Australia)", + "locale": "en-AU", + "voice": "en-AU-NeilNeural", + "icon": "au", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-au-neilneural-en-us.mp3" + }, + { + "voiceProvider": "azure", + "character": "Tim", + "name": "English (Australia)", + "locale": "en-AU", + "voice": "en-AU-TimNeural", + "icon": "au", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-au-timneural-en-us.mp3", + "approxDurationCoeficient": 16 + }, + { + "voiceProvider": "azure", + "character": "Liam", + "name": "English (Canada)", + "locale": "en-CA", + "voice": "en-CA-LiamNeural", + "icon": "ca", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-ca-liamneural-en-us.mp3", + "approxDurationCoeficient": 19 + }, + { + "voiceProvider": "azure", + "character": "Alfie", + "name": "English (United Kingdom)", + "locale": "en-GB", + "voice": "en-GB-AlfieNeural", + "icon": "gb", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-gb-alfieneural-en-us.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Elliot", + "name": "English (United Kingdom)", + "locale": "en-GB", + "voice": "en-GB-ElliotNeural", + "icon": "gb", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-gb-elliotneural-en-us.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Ethan", + "name": "English (United Kingdom)", + "locale": "en-GB", + "voice": "en-GB-EthanNeural", + "icon": "gb", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-gb-ethanneural-en-us.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Noah", + "name": "English (United Kingdom)", + "locale": "en-GB", + "voice": "en-GB-NoahNeural", + "icon": "gb", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-gb-noahneural-en-us.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Oliver", + "name": "English (United Kingdom)", + "locale": "en-GB", + "voice": "en-GB-OliverNeural", + "icon": "gb", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-gb-oliverneural-en-us.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Thomas", + "name": "English (United Kingdom)", + "locale": "en-GB", + "voice": "en-GB-ThomasNeural", + "icon": "gb", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-gb-thomasneural-en-us.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Sam", + "name": "English (Hong Kong SAR)", + "locale": "en-HK", + "voice": "en-HK-SamNeural", + "icon": "hk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-hk-samneural-en-us.mp3", + "approxDurationCoeficient": 16 + }, + { + "voiceProvider": "azure", + "character": "Connor", + "name": "English (Ireland)", + "locale": "en-IE", + "voice": "en-IE-ConnorNeural", + "icon": "ie", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-ie-connorneural-en-us.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Prabhat", + "name": "English (India)", + "locale": "en-IN", + "voice": "en-IN-PrabhatNeural", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-in-prabhatneural-en-us.mp3", + "approxDurationCoeficient": 15 + }, + { + "voiceProvider": "azure", + "character": "Chilemba", + "name": "English (Kenya)", + "locale": "en-KE", + "voice": "en-KE-ChilembaNeural", + "icon": "ke", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-ke-chilembaneural-en-us.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Abeo", + "name": "English (Nigeria)", + "locale": "en-NG", + "voice": "en-NG-AbeoNeural", + "icon": "ng", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-ng-abeoneural-en-us.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Mitchell", + "name": "English (New Zealand)", + "locale": "en-NZ", + "voice": "en-NZ-MitchellNeural", + "icon": "nz", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-nz-mitchellneural-en-us.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "James", + "name": "English (Philippines)", + "locale": "en-PH", + "voice": "en-PH-JamesNeural", + "icon": "ph", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-ph-jamesneural-en-us.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Wayne", + "name": "English (Singapore)", + "locale": "en-SG", + "voice": "en-SG-WayneNeural", + "icon": "sg", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-sg-wayneneural-en-us.mp3", + "approxDurationCoeficient": 15 + }, + { + "voiceProvider": "azure", + "character": "Elimu", + "name": "English (Tanzania)", + "locale": "en-TZ", + "voice": "en-TZ-ElimuNeural", + "icon": "tz", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-tz-elimuneural-en-us.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Andrew", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-AndrewNeural", + "icon": "us", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-andrewneural-en-us.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Brian", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-BrianNeural", + "icon": "us", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-brianneural-en-us.mp3" + }, + { + "voiceProvider": "azure", + "character": "Guy", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-GuyNeural", + "icon": "us", + "styleList": [ + "newscast", + "angry", + "cheerful", + "sad", + "excited", + "friendly", + "terrified", + "shouting", + "unfriendly", + "whispering", + "hopeful" + ], + "defaultStyle": "friendly", + "stylePreview": { + "newscast": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-guyneural:newscast-en-us.mp3", + "angry": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-guyneural:angry-en-us.mp3", + "cheerful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-guyneural:cheerful-en-us.mp3", + "sad": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-guyneural:sad-en-us.mp3", + "excited": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-guyneural:excited-en-us.mp3", + "friendly": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-guyneural:friendly-en-us.mp3", + "terrified": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-guyneural:terrified-en-us.mp3", + "shouting": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-guyneural:shouting-en-us.mp3", + "unfriendly": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-guyneural:unfriendly-en-us.mp3", + "whispering": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-guyneural:whispering-en-us.mp3", + "hopeful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-guyneural:hopeful-en-us.mp3" + }, + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-guyneural-en-us.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Brandon", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-BrandonNeural", + "icon": "us", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-brandonneural-en-us.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Christopher", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-ChristopherNeural", + "icon": "us", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-christopherneural-en-us.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Eric", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-EricNeural", + "icon": "us", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-ericneural-en-us.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Jacob", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-JacobNeural", + "icon": "us", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-jacobneural-en-us.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Roger", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-RogerNeural", + "icon": "us", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-rogerneural-en-us.mp3" + }, + { + "voiceProvider": "azure", + "character": "Ryan M", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-RyanMultilingualNeural", + "icon": "us", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-ryanmultilingualneural-en-us.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Steffan", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-SteffanNeural", + "icon": "us", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-steffanneural-en-us.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Luke", + "name": "English (South Africa)", + "locale": "en-ZA", + "voice": "en-ZA-LukeNeural", + "icon": "za", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-za-lukeneural-en-us.mp3", + "approxDurationCoeficient": 20 + }, + { + "character": "Oscar K", + "name": "English-US", + "voice": "en-US-Casual-K", + "icon": "us", + "voiceProvider": "google", + "locale": "en-US", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-en-us-casual-k-en-us.mp3", + "approxDurationCoeficient": 19 + }, + { + "character": "Miles B", + "name": "English-AU", + "voice": "en-AU-Neural2-B", + "icon": "au", + "voiceProvider": "google", + "locale": "en-AU", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-en-au-neural2-b-en-us.mp3" + }, + { + "character": "James D", + "name": "English-AU", + "voice": "en-AU-Neural2-D", + "icon": "au", + "voiceProvider": "google", + "locale": "en-AU", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-en-au-neural2-d-en-us.mp3", + "approxDurationCoeficient": 21 + }, + { + "character": "Emmet B", + "name": "English-GB", + "voice": "en-GB-Neural2-B", + "icon": "gb", + "voiceProvider": "google", + "locale": "en-GB", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-en-gb-neural2-b-en-us.mp3", + "approxDurationCoeficient": 18 + }, + { + "character": "Jack D", + "name": "English-GB", + "voice": "en-GB-Neural2-D", + "icon": "gb", + "voiceProvider": "google", + "locale": "en-GB", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-en-gb-neural2-d-en-us.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Cole B", + "name": "English-IN", + "voice": "en-IN-Neural2-B", + "icon": "in", + "voiceProvider": "google", + "locale": "en-IN", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-en-in-neural2-b-en-us.mp3", + "approxDurationCoeficient": 20 + }, + { + "character": "Ralph C", + "name": "English-IN", + "voice": "en-IN-Neural2-C", + "icon": "in", + "voiceProvider": "google", + "locale": "en-IN", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-en-in-neural2-c-en-us.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Joe A", + "name": "English-US", + "voice": "en-US-Neural2-A", + "icon": "us", + "voiceProvider": "google", + "locale": "en-US", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-en-us-neural2-a-en-us.mp3", + "approxDurationCoeficient": 18 + }, + { + "character": "Hayden D", + "name": "English-US", + "voice": "en-US-Neural2-D", + "icon": "us", + "voiceProvider": "google", + "locale": "en-US", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-en-us-neural2-d-en-us.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Oscar I", + "name": "English-US", + "voice": "en-US-Neural2-I", + "icon": "us", + "voiceProvider": "google", + "locale": "en-US", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-en-us-neural2-i-en-us.mp3", + "approxDurationCoeficient": 19 + }, + { + "character": "Miles J", + "name": "English-US", + "voice": "en-US-Neural2-J", + "icon": "us", + "voiceProvider": "google", + "locale": "en-US", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-en-us-neural2-j-en-us.mp3" + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Jane", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-JaneNeural", + "icon": "us", + "styleList": [ + "angry", + "cheerful", + "excited", + "friendly", + "hopeful", + "sad", + "shouting", + "terrified", + "unfriendly", + "whispering" + ], + "defaultStyle": "friendly", + "stylePreview": { + "angry": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-janeneural:angry-en-us.mp3", + "cheerful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-janeneural:cheerful-en-us.mp3", + "excited": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-janeneural:excited-en-us.mp3", + "friendly": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-janeneural:friendly-en-us.mp3", + "hopeful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-janeneural:hopeful-en-us.mp3", + "sad": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-janeneural:sad-en-us.mp3", + "shouting": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-janeneural:shouting-en-us.mp3", + "terrified": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-janeneural:terrified-en-us.mp3", + "unfriendly": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-janeneural:unfriendly-en-us.mp3", + "whispering": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-janeneural:whispering-en-us.mp3" + }, + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-janeneural-en-us.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Emma", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-EmmaNeural", + "icon": "us", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-emmaneural-en-us.mp3", + "approxDurationCoeficient": 16 + }, + { + "voiceProvider": "azure", + "character": "Nancy", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-NancyNeural", + "icon": "us", + "styleList": [ + "angry", + "cheerful", + "excited", + "friendly", + "hopeful", + "sad", + "shouting", + "terrified", + "unfriendly", + "whispering" + ], + "defaultStyle": "friendly", + "stylePreview": { + "angry": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-nancyneural:angry-en-us.mp3", + "cheerful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-nancyneural:cheerful-en-us.mp3", + "excited": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-nancyneural:excited-en-us.mp3", + "friendly": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-nancyneural:friendly-en-us.mp3", + "hopeful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-nancyneural:hopeful-en-us.mp3", + "sad": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-nancyneural:sad-en-us.mp3", + "shouting": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-nancyneural:shouting-en-us.mp3", + "terrified": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-nancyneural:terrified-en-us.mp3", + "unfriendly": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-nancyneural:unfriendly-en-us.mp3", + "whispering": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-nancyneural:whispering-en-us.mp3" + }, + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-nancyneural-en-us.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Sara", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-SaraNeural", + "icon": "us", + "styleList": [ + "angry", + "cheerful", + "excited", + "friendly", + "hopeful", + "sad", + "shouting", + "terrified", + "unfriendly", + "whispering" + ], + "defaultStyle": "friendly", + "stylePreview": { + "angry": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-saraneural:angry-en-us.mp3", + "cheerful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-saraneural:cheerful-en-us.mp3", + "excited": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-saraneural:excited-en-us.mp3", + "friendly": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-saraneural:friendly-en-us.mp3", + "hopeful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-saraneural:hopeful-en-us.mp3", + "sad": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-saraneural:sad-en-us.mp3", + "shouting": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-saraneural:shouting-en-us.mp3", + "terrified": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-saraneural:terrified-en-us.mp3", + "unfriendly": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-saraneural:unfriendly-en-us.mp3", + "whispering": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-saraneural:whispering-en-us.mp3" + }, + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-saraneural-en-us.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Joanne", + "name": "English (Australia)", + "locale": "en-AU", + "voice": "en-AU-JoanneNeural", + "icon": "au", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-au-joanneneural-en-us.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Sonia", + "name": "English (United Kingdom)", + "locale": "en-GB", + "voice": "en-GB-SoniaNeural", + "icon": "gb", + "styleList": [ + "cheerful", + "sad" + ], + "stylePreview": { + "cheerful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-gb-sonianeural:cheerful-en-us.mp3", + "sad": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-gb-sonianeural:sad-en-us.mp3" + }, + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-gb-sonianeural-en-us.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Ava", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "fast-paced", + "upbeat", + "young" + ], + "playedTags": [ + { + "id": "72", + "name": "promo", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_ava.m._promo_upbeat.wav" + }, + { + "id": "31", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_ava.m._narration_upbeat.wav" + }, + { + "id": "43", + "name": "conversational", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_ava.m._conversational_fast-paced.wav" + } + ], + "approxDurationCoeficient": 18 + }, + { + "character": "Alana", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "calm", + "young" + ], + "playedTags": [ + { + "id": "3", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_alana.b._narration_calm.wav" + } + ], + "approxDurationCoeficient": 15 + }, + { + "character": "Nicole", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "calm", + "young" + ], + "playedTags": [ + { + "id": "14", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_nicole.l._narration_calm.wav" + }, + { + "id": "45", + "name": "conversational", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_nicole.l._conversational_calm.wav" + } + ], + "approxDurationCoeficient": 17 + }, + { + "character": "Sofia", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "slow-paced", + "upbeat", + "calm", + "young" + ], + "playedTags": [ + { + "id": "20", + "name": "promo", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_sofia.h._promo_upbeat.wav" + }, + { + "id": "8", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_sofia.h._narration_slow-paced.wav" + }, + { + "id": "42", + "name": "conversational", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_sofia.h._conversational_calm.wav" + } + ], + "approxDurationCoeficient": 17 + }, + { + "character": "Vanessa", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "slow-paced", + "calm", + "young" + ], + "playedTags": [ + { + "id": "10", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_vanessa.n._narration_slow-paced_elderly.wav" + }, + { + "id": "48", + "name": "conversational", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_vanessa.n._conversational_calm_elderly.wav" + } + ], + "approxDurationCoeficient": 15 + }, + { + "character": "Zoey", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "slow-paced", + "young" + ], + "playedTags": [ + { + "id": "67", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_zoey.o._narration_slow-paced.wav" + } + ], + "approxDurationCoeficient": 15 + }, + { + "character": "Tilda", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "upbeat", + "young" + ], + "playedTags": [ + { + "id": "39", + "name": "promo", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_tilda.c._promo_upbeat.wav" + } + ], + "approxDurationCoeficient": 18 + }, + { + "character": "Terra", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "upbeat", + "young" + ], + "playedTags": [ + { + "id": "59", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_terra.g._narration_upbeat.wav" + } + ], + "approxDurationCoeficient": 16 + }, + { + "character": "Shelby", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "calm", + "young" + ], + "playedTags": [ + { + "id": "104", + "name": "Narration", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/wsl/wsl-104-en-us.mp3" + } + ], + "approxDurationCoeficient": 19 + }, + { + "character": "Selene", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "fast-paced", + "young" + ], + "playedTags": [ + { + "id": "24", + "name": "promo", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_selene.r._promo_fast-paced.wav" + } + ], + "approxDurationCoeficient": 19 + }, + { + "character": "Ramona", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "slow-paced", + "upbeat", + "young" + ], + "playedTags": [ + { + "id": "4", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_ramona.j._narration_slow-paced.wav" + }, + { + "id": "5", + "name": "promo", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_ramona.j._promo_upbeat.wav" + } + ], + "approxDurationCoeficient": 14 + }, + { + "character": "Paula", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "fast-paced", + "young" + ], + "playedTags": [ + { + "id": "78", + "name": "Narration", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/wsl/wsl-78-en-us.mp3" + }, + { + "id": "129", + "name": "Promo", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/wsl/wsl-129-en-us.mp3" + } + ], + "approxDurationCoeficient": 18 + }, + { + "character": "Paige", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "fast-paced", + "young" + ], + "playedTags": [ + { + "id": "15", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_paige.l._narration_fast-paced.wav" + } + ], + "approxDurationCoeficient": 19 + }, + { + "character": "Kari", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "playedTags": [ + { + "id": "68", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_kari.n._narration_calm.wav" + } + ], + "approxDurationCoeficient": 15 + }, + { + "character": "Jordan", + "name": "English (Australia)", + "locale": "en-AU", + "icon": "au", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "calm", + "young" + ], + "playedTags": [ + { + "id": "62", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_jordan.t._narration_calm.wav" + } + ], + "approxDurationCoeficient": 17 + }, + { + "character": "Jodi", + "name": "English (Canada)", + "locale": "en-CA", + "icon": "ca", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "calm", + "upbeat", + "young" + ], + "playedTags": [ + { + "id": "22", + "name": "promo", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_jodi.p._promo_upbeat.wav" + }, + { + "id": "51", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_jodi.p._narration_calm.wav" + } + ], + "approxDurationCoeficient": 17 + }, + { + "character": "Issa", + "name": "English (South Africa)", + "locale": "en-ZA", + "icon": "za", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "slow-paced", + "young" + ], + "playedTags": [ + { + "id": "109", + "name": "Narration", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/wsl/wsl-109-en-us.mp3" + } + ], + "approxDurationCoeficient": 16 + }, + { + "character": "Isabel", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "slow-paced", + "middle-aged" + ], + "playedTags": [ + { + "id": "11", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_isabel.b._narration_slow-paced.wav" + } + ], + "approxDurationCoeficient": 15 + }, + { + "character": "Hannah", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "fast", + "young" + ], + "playedTags": [ + { + "id": "99", + "name": "Narration", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/wsl/wsl-99-en-us.mp3" + } + ], + "approxDurationCoeficient": 18 + }, + { + "character": "Gia", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "slow-paced", + "young" + ], + "playedTags": [ + { + "id": "49", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_gia.w._narration_slow-paced.wav" + } + ], + "approxDurationCoeficient": 18 + }, + { + "character": "Genevieve", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "calm", + "young" + ], + "playedTags": [ + { + "id": "55", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_genevieve.m._narration_calm.wav" + } + ], + "approxDurationCoeficient": 17 + }, + { + "character": "Fiona", + "name": "English (United Kingdom)", + "locale": "en-GB", + "icon": "gb", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "calm", + "young" + ], + "playedTags": [ + { + "id": "63", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_fiona.h._narration_calm.wav" + } + ], + "approxDurationCoeficient": 16 + }, + { + "character": "Donna", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "slow-paced", + "young" + ], + "playedTags": [ + { + "id": "65", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_donna.w._narration_slow-paced.wav" + } + ], + "approxDurationCoeficient": 17 + }, + { + "character": "Charlie", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "calm", + "young" + ], + "playedTags": [ + { + "id": "40", + "name": "promo", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_charlie.z._promo_calm.wav" + } + ], + "approxDurationCoeficient": 18 + }, + { + "character": "Cameron", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "middle-aged" + ], + "playedTags": [ + { + "id": "77", + "name": "Narration", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/wsl/wsl-77-en-us.mp3" + } + ], + "approxDurationCoeficient": 17 + }, + { + "character": "Bella", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "upbeat", + "young" + ], + "playedTags": [ + { + "id": "38", + "name": "promo", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_bella.b._promo_upbeat.wav" + } + ], + "approxDurationCoeficient": 15 + }, + { + "character": "Ali", + "name": "English (Australia)", + "locale": "en-AU", + "icon": "au", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "young" + ], + "playedTags": [ + { + "id": "111", + "name": "Narration", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/wsl/wsl-111-en-us.mp3" + } + ], + "approxDurationCoeficient": 16 + }, + { + "character": "Abbi", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "middle-aged" + ], + "playedTags": [ + { + "id": "102", + "name": "Narration", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/wsl/wsl-102-en-us.mp3" + } + ], + "approxDurationCoeficient": 15 + }, + { + "character": "Rachel", + "voice": "21m00Tcm4TlvDq8ikWAM", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/21m00Tcm4TlvDq8ikWAM/df6788f9-5c96-470d-8312-aab3b3d8f50a.mp3", + "order": 1, + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "approxDurationCoeficient": 18 + }, + { + "character": "Matilda", + "voice": "XrExE9yKIg1WjnnlVkGX", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/XrExE9yKIg1WjnnlVkGX/b930e18d-6b4d-466e-bab2-0ae97c6d8535.mp3", + "order": 3, + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "approxDurationCoeficient": 17 + }, + { + "character": "Grace", + "voice": "oWAxZDx7w5VEj9dCyTzz", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "southern-accent", + "young" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/oWAxZDx7w5VEj9dCyTzz/84a36d1c-e182-41a8-8c55-dbdd15cd6e72.mp3", + "order": 4, + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "approxDurationCoeficient": 17 + }, + { + "character": "Domi", + "voice": "AZnzlk1XvdvUeBnXmlld", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "upbeat", + "young" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/AZnzlk1XvdvUeBnXmlld/508e12d0-a7f7-4d86-a0d3-f3884ff353ed.mp3", + "order": 5, + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "approxDurationCoeficient": 17 + }, + { + "character": "Gigi", + "voice": "jBpfuIE2acCO8z3wKNLl", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "childish", + "young" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/jBpfuIE2acCO8z3wKNLl/3a7e4339-78fa-404e-8d10-c3ef5587935b.mp3", + "order": 6, + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "approxDurationCoeficient": 19 + }, + { + "character": "Serena", + "voice": "pMsXgVXv3BLzUgSXRplE", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/pMsXgVXv3BLzUgSXRplE/d61f18ed-e5b0-4d0b-a33c-5c6e7e33b053.mp3", + "order": 7, + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "approxDurationCoeficient": 17 + }, + { + "character": "Glinda", + "voice": "z9fAnlkpzviPz146aGWa", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "strong", + "middle-aged" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/z9fAnlkpzviPz146aGWa/cbc60443-7b61-4ebb-b8e1-5c03237ea01d.mp3", + "order": 8, + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "approxDurationCoeficient": 16 + }, + { + "character": "Mimi", + "voice": "zrHiDhphv9ZnVXBqCLjz", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "childish", + "young" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/zrHiDhphv9ZnVXBqCLjz/decbf20b-0f57-4fac-985b-a4f0290ebfc4.mp3", + "order": 9, + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "approxDurationCoeficient": 16 + }, + { + "character": "Emily", + "voice": "LcfcDJNUP1GQjkzn1xUU", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/LcfcDJNUP1GQjkzn1xUU/e4b994b7-9713-4238-84f3-add8fccaaccd.mp3", + "order": 10, + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "approxDurationCoeficient": 15 + }, + { + "character": "Lily", + "voice": "pFZP5JQG7iQjIQuC4Bku", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "raspy", + "middle-aged" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/pFZP5JQG7iQjIQuC4Bku/0ab8bd74-fcd2-489d-b70a-3e1bcde8c999.mp3", + "order": 11, + "name": "English (United States)", + "locale": "en-US", + "icon": "gb", + "approxDurationCoeficient": 17 + }, + { + "character": "Charlotte", + "voice": "XB0fDUnXU5powFXDhCwa", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "swedish-accent", + "young" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/XB0fDUnXU5powFXDhCwa/942356dc-f10d-4d89-bda5-4f8505ee038b.mp3", + "order": 12, + "name": "English (United States)", + "locale": "en-US", + "icon": "gb", + "approxDurationCoeficient": 15 + }, + { + "character": "Dorothy", + "voice": "ThT5KcBeYPX3keUQqHPh", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/ThT5KcBeYPX3keUQqHPh/981f0855-6598-48d2-9f8f-b6d92fbbe3fc.mp3", + "order": 13, + "name": "English (United States)", + "locale": "en-US", + "icon": "gb", + "approxDurationCoeficient": 17 + }, + { + "character": "Sarah", + "voice": "EXAVITQu4vr4xnSDxMaL", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/EXAVITQu4vr4xnSDxMaL/6851ec91-9950-471f-8586-357c52539069.mp3", + "order": 99999, + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "approxDurationCoeficient": 17 + }, + { + "character": "Alice", + "voice": "Xb7hH8MSUJpSbSDYk0k2", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/Xb7hH8MSUJpSbSDYk0k2/f5409e2f-d9c3-4ac9-9e7d-916a5dbd1ef1.mp3", + "order": 99999, + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Natasha", + "name": "English (Australia)", + "locale": "en-AU", + "voice": "en-AU-NatashaNeural", + "icon": "au", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-au-natashaneural-en-us.mp3", + "approxDurationCoeficient": 16 + }, + { + "voiceProvider": "azure", + "character": "Annette", + "name": "English (Australia)", + "locale": "en-AU", + "voice": "en-AU-AnnetteNeural", + "icon": "au", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-au-annetteneural-en-us.mp3", + "approxDurationCoeficient": 19 + }, + { + "voiceProvider": "azure", + "character": "Carly", + "name": "English (Australia)", + "locale": "en-AU", + "voice": "en-AU-CarlyNeural", + "icon": "au", + "tags": [ + "child" + ], + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-au-carlyneural-en-us.mp3", + "approxDurationCoeficient": 14 + }, + { + "voiceProvider": "azure", + "character": "Elsie", + "name": "English (Australia)", + "locale": "en-AU", + "voice": "en-AU-ElsieNeural", + "icon": "au", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-au-elsieneural-en-us.mp3" + }, + { + "voiceProvider": "azure", + "character": "Freya", + "name": "English (Australia)", + "locale": "en-AU", + "voice": "en-AU-FreyaNeural", + "icon": "au", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-au-freyaneural-en-us.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Kim", + "name": "English (Australia)", + "locale": "en-AU", + "voice": "en-AU-KimNeural", + "icon": "au", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-au-kimneural-en-us.mp3", + "approxDurationCoeficient": 20 + }, + { + "voiceProvider": "azure", + "character": "Tina", + "name": "English (Australia)", + "locale": "en-AU", + "voice": "en-AU-TinaNeural", + "icon": "au", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-au-tinaneural-en-us.mp3", + "approxDurationCoeficient": 16 + }, + { + "voiceProvider": "azure", + "character": "Clara", + "name": "English (Canada)", + "locale": "en-CA", + "voice": "en-CA-ClaraNeural", + "icon": "ca", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-ca-claraneural-en-us.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Libby", + "name": "English (United Kingdom)", + "locale": "en-GB", + "voice": "en-GB-LibbyNeural", + "icon": "gb", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-gb-libbyneural-en-us.mp3", + "approxDurationCoeficient": 15 + }, + { + "voiceProvider": "azure", + "character": "Abbi", + "name": "English (United Kingdom)", + "locale": "en-GB", + "voice": "en-GB-AbbiNeural", + "icon": "gb", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-gb-abbineural-en-us.mp3", + "approxDurationCoeficient": 16 + }, + { + "voiceProvider": "azure", + "character": "Bella", + "name": "English (United Kingdom)", + "locale": "en-GB", + "voice": "en-GB-BellaNeural", + "icon": "gb", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-gb-bellaneural-en-us.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Hollie", + "name": "English (United Kingdom)", + "locale": "en-GB", + "voice": "en-GB-HollieNeural", + "icon": "gb", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-gb-hollieneural-en-us.mp3", + "approxDurationCoeficient": 16 + }, + { + "voiceProvider": "azure", + "character": "Maisie", + "name": "English (United Kingdom)", + "locale": "en-GB", + "voice": "en-GB-MaisieNeural", + "icon": "gb", + "tags": [ + "child" + ], + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-gb-maisieneural-en-us.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Olivia", + "name": "English (United Kingdom)", + "locale": "en-GB", + "voice": "en-GB-OliviaNeural", + "icon": "gb", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-gb-olivianeural-en-us.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Mia", + "name": "English (United Kingdom)", + "locale": "en-GB", + "voice": "en-GB-MiaNeural", + "icon": "gb", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-gb-mianeural-en-us.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Yan", + "name": "English (Hong Kong SAR)", + "locale": "en-HK", + "voice": "en-HK-YanNeural", + "icon": "hk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-hk-yanneural-en-us.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Emily", + "name": "English (Ireland)", + "locale": "en-IE", + "voice": "en-IE-EmilyNeural", + "icon": "ie", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-ie-emilyneural-en-us.mp3", + "approxDurationCoeficient": 16 + }, + { + "voiceProvider": "azure", + "character": "Neerja", + "name": "English (India)", + "locale": "en-IN", + "voice": "en-IN-NeerjaNeural", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-in-neerjaneural-en-us.mp3", + "approxDurationCoeficient": 16 + }, + { + "voiceProvider": "azure", + "character": "Asilia", + "name": "English (Kenya)", + "locale": "en-KE", + "voice": "en-KE-AsiliaNeural", + "icon": "ke", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-ke-asilianeural-en-us.mp3", + "approxDurationCoeficient": 16 + }, + { + "voiceProvider": "azure", + "character": "Ezinne", + "name": "English (Nigeria)", + "locale": "en-NG", + "voice": "en-NG-EzinneNeural", + "icon": "ng", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-ng-ezinneneural-en-us.mp3", + "approxDurationCoeficient": 16 + }, + { + "voiceProvider": "azure", + "character": "Molly", + "name": "English (New Zealand)", + "locale": "en-NZ", + "voice": "en-NZ-MollyNeural", + "icon": "nz", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-nz-mollyneural-en-us.mp3", + "approxDurationCoeficient": 16 + }, + { + "voiceProvider": "azure", + "character": "Rosa", + "name": "English (Philippines)", + "locale": "en-PH", + "voice": "en-PH-RosaNeural", + "icon": "ph", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-ph-rosaneural-en-us.mp3", + "approxDurationCoeficient": 16 + }, + { + "voiceProvider": "azure", + "character": "Luna", + "name": "English (Singapore)", + "locale": "en-SG", + "voice": "en-SG-LunaNeural", + "icon": "sg", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-sg-lunaneural-en-us.mp3", + "approxDurationCoeficient": 14 + }, + { + "voiceProvider": "azure", + "character": "Imani", + "name": "English (Tanzania)", + "locale": "en-TZ", + "voice": "en-TZ-ImaniNeural", + "icon": "tz", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-tz-imanineural-en-us.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Ava M", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-AvaMultilingualNeural", + "icon": "us", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-avamultilingualneural-en-us.mp3", + "approxDurationCoeficient": 12 + }, + { + "voiceProvider": "azure", + "character": "Emma M", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-EmmaMultilingualNeural", + "icon": "us", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-emmamultilingualneural-en-us.mp3", + "approxDurationCoeficient": 16 + }, + { + "voiceProvider": "azure", + "character": "Ava", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-AvaNeural", + "icon": "us", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-avaneural-en-us.mp3", + "approxDurationCoeficient": 16 + }, + { + "voiceProvider": "azure", + "character": "Jenny", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-JennyNeural", + "icon": "us", + "styleList": [ + "assistant", + "chat", + "customerservice", + "newscast", + "angry", + "cheerful", + "sad", + "excited", + "friendly", + "terrified", + "shouting", + "unfriendly", + "whispering", + "hopeful" + ], + "defaultStyle": "friendly", + "stylePreview": { + "assistant": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-jennyneural:assistant-en-us.mp3", + "chat": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-jennyneural:chat-en-us.mp3", + "customerservice": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-jennyneural:customerservice-en-us.mp3", + "newscast": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-jennyneural:newscast-en-us.mp3", + "angry": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-jennyneural:angry-en-us.mp3", + "cheerful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-jennyneural:cheerful-en-us.mp3", + "sad": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-jennyneural:sad-en-us.mp3", + "excited": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-jennyneural:excited-en-us.mp3", + "friendly": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-jennyneural:friendly-en-us.mp3", + "terrified": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-jennyneural:terrified-en-us.mp3", + "shouting": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-jennyneural:shouting-en-us.mp3", + "unfriendly": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-jennyneural:unfriendly-en-us.mp3", + "whispering": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-jennyneural:whispering-en-us.mp3", + "hopeful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-jennyneural:hopeful-en-us.mp3" + }, + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-jennyneural-en-us.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Aria", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-AriaNeural", + "icon": "us", + "styleList": [ + "chat", + "customerservice", + "narration-professional", + "newscast-casual", + "newscast-formal", + "cheerful", + "empathetic", + "angry", + "sad", + "excited", + "friendly", + "terrified", + "shouting", + "unfriendly", + "whispering", + "hopeful" + ], + "defaultStyle": "friendly", + "stylePreview": { + "chat": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-arianeural:chat-en-us.mp3", + "customerservice": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-arianeural:customerservice-en-us.mp3", + "narration-professional": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-arianeural:narration-professional-en-us.mp3", + "newscast-casual": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-arianeural:newscast-casual-en-us.mp3", + "newscast-formal": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-arianeural:newscast-formal-en-us.mp3", + "cheerful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-arianeural:cheerful-en-us.mp3", + "empathetic": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-arianeural:empathetic-en-us.mp3", + "angry": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-arianeural:angry-en-us.mp3", + "sad": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-arianeural:sad-en-us.mp3", + "excited": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-arianeural:excited-en-us.mp3", + "friendly": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-arianeural:friendly-en-us.mp3", + "terrified": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-arianeural:terrified-en-us.mp3", + "shouting": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-arianeural:shouting-en-us.mp3", + "unfriendly": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-arianeural:unfriendly-en-us.mp3", + "whispering": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-arianeural:whispering-en-us.mp3", + "hopeful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-arianeural:hopeful-en-us.mp3" + }, + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-arianeural-en-us.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Amber", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-AmberNeural", + "icon": "us", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-amberneural-en-us.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Ana", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-AnaNeural", + "icon": "us", + "tags": [ + "child" + ], + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-ananeural-en-us.mp3", + "approxDurationCoeficient": 15 + }, + { + "voiceProvider": "azure", + "character": "Ashley", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-AshleyNeural", + "icon": "us", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-ashleyneural-en-us.mp3", + "approxDurationCoeficient": 16 + }, + { + "voiceProvider": "azure", + "character": "Cora", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-CoraNeural", + "icon": "us", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-coraneural-en-us.mp3", + "approxDurationCoeficient": 16 + }, + { + "voiceProvider": "azure", + "character": "Elizabeth", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-ElizabethNeural", + "icon": "us", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-elizabethneural-en-us.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Jenny M", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-JennyMultilingualNeural", + "icon": "us", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-jennymultilingualneural-en-us.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Michelle", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-MichelleNeural", + "icon": "us", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-michelleneural-en-us.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Monica", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-MonicaNeural", + "icon": "us", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-monicaneural-en-us.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Leah", + "name": "English (South Africa)", + "locale": "en-ZA", + "voice": "en-ZA-LeahNeural", + "icon": "za", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-za-leahneural-en-us.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Elanor A", + "name": "English-AU", + "voice": "en-AU-Neural2-A", + "icon": "au", + "voiceProvider": "google", + "locale": "en-AU", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-en-au-neural2-a-en-us.mp3" + }, + { + "character": "Lucy C", + "name": "English-AU", + "voice": "en-AU-Neural2-C", + "icon": "au", + "voiceProvider": "google", + "locale": "en-AU", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-en-au-neural2-c-en-us.mp3" + }, + { + "character": "Daisy A", + "name": "English-GB", + "voice": "en-GB-Neural2-A", + "icon": "gb", + "voiceProvider": "google", + "locale": "en-GB", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-en-gb-neural2-a-en-us.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Scarlett C", + "name": "English-GB", + "voice": "en-GB-Neural2-C", + "icon": "gb", + "voiceProvider": "google", + "locale": "en-GB", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-en-gb-neural2-c-en-us.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Jane F", + "name": "English-GB", + "voice": "en-GB-Neural2-F", + "icon": "gb", + "voiceProvider": "google", + "locale": "en-GB", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-en-gb-neural2-f-en-us.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Lily A", + "name": "English-IN", + "voice": "en-IN-Neural2-A", + "icon": "in", + "voiceProvider": "google", + "locale": "en-IN", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-en-in-neural2-a-en-us.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Ella D", + "name": "English-IN", + "voice": "en-IN-Neural2-D", + "icon": "in", + "voiceProvider": "google", + "locale": "en-IN", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-en-in-neural2-d-en-us.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "juliet C", + "name": "English-US", + "voice": "en-US-Neural2-C", + "icon": "us", + "voiceProvider": "google", + "locale": "en-US", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-en-us-neural2-c-en-us.mp3" + }, + { + "character": "Ellie E", + "name": "English-US", + "voice": "en-US-Neural2-E", + "icon": "us", + "voiceProvider": "google", + "locale": "en-US", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-en-us-neural2-e-en-us.mp3" + }, + { + "character": "Evelyn F", + "name": "English-US", + "voice": "en-US-Neural2-F", + "icon": "us", + "voiceProvider": "google", + "locale": "en-US", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-en-us-neural2-f-en-us.mp3", + "approxDurationCoeficient": 18 + }, + { + "character": "Annie G", + "name": "English-US", + "voice": "en-US-Neural2-G", + "icon": "us", + "voiceProvider": "google", + "locale": "en-US", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-en-us-neural2-g-en-us.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Elanor H", + "name": "English-US", + "voice": "en-US-Neural2-H", + "icon": "us", + "voiceProvider": "google", + "locale": "en-US", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-en-us-neural2-h-en-us.mp3" + } + ] + } + ] +} \ No newline at end of file diff --git a/heygen/filter_json.py b/elai/filter_json.py similarity index 100% rename from heygen/filter_json.py rename to elai/filter_json.py diff --git a/elai/voices.json b/elai/voices.json new file mode 100644 index 0000000..8e70e40 --- /dev/null +++ b/elai/voices.json @@ -0,0 +1,26579 @@ +{ + "voices": [ + { + "name": "English", + "male": [ + { + "voiceProvider": "azure", + "character": "Andrew M", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-AndrewMultilingualNeural", + "icon": "us", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-andrewmultilingualneural-en-us.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Tony", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-TonyNeural", + "icon": "us", + "styleList": [ + "angry", + "cheerful", + "excited", + "friendly", + "hopeful", + "sad", + "shouting", + "terrified", + "unfriendly", + "whispering" + ], + "defaultStyle": "friendly", + "stylePreview": { + "angry": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-tonyneural:angry-en-us.mp3", + "cheerful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-tonyneural:cheerful-en-us.mp3", + "excited": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-tonyneural:excited-en-us.mp3", + "friendly": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-tonyneural:friendly-en-us.mp3", + "hopeful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-tonyneural:hopeful-en-us.mp3", + "sad": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-tonyneural:sad-en-us.mp3", + "shouting": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-tonyneural:shouting-en-us.mp3", + "terrified": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-tonyneural:terrified-en-us.mp3", + "unfriendly": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-tonyneural:unfriendly-en-us.mp3", + "whispering": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-tonyneural:whispering-en-us.mp3" + }, + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-tonyneural-en-us.mp3", + "approxDurationCoeficient": 20 + }, + { + "voiceProvider": "azure", + "character": "Davis", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-DavisNeural", + "icon": "us", + "styleList": [ + "chat", + "angry", + "cheerful", + "excited", + "friendly", + "hopeful", + "sad", + "shouting", + "terrified", + "unfriendly", + "whispering" + ], + "defaultStyle": "friendly", + "stylePreview": { + "chat": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-davisneural:chat-en-us.mp3", + "angry": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-davisneural:angry-en-us.mp3", + "cheerful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-davisneural:cheerful-en-us.mp3", + "excited": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-davisneural:excited-en-us.mp3", + "friendly": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-davisneural:friendly-en-us.mp3", + "hopeful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-davisneural:hopeful-en-us.mp3", + "sad": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-davisneural:sad-en-us.mp3", + "shouting": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-davisneural:shouting-en-us.mp3", + "terrified": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-davisneural:terrified-en-us.mp3", + "unfriendly": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-davisneural:unfriendly-en-us.mp3", + "whispering": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-davisneural:whispering-en-us.mp3" + }, + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-davisneural-en-us.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Jason", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-JasonNeural", + "icon": "us", + "styleList": [ + "angry", + "cheerful", + "excited", + "friendly", + "hopeful", + "sad", + "shouting", + "terrified", + "unfriendly", + "whispering" + ], + "defaultStyle": "friendly", + "stylePreview": { + "angry": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-jasonneural:angry-en-us.mp3", + "cheerful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-jasonneural:cheerful-en-us.mp3", + "excited": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-jasonneural:excited-en-us.mp3", + "friendly": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-jasonneural:friendly-en-us.mp3", + "hopeful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-jasonneural:hopeful-en-us.mp3", + "sad": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-jasonneural:sad-en-us.mp3", + "shouting": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-jasonneural:shouting-en-us.mp3", + "terrified": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-jasonneural:terrified-en-us.mp3", + "unfriendly": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-jasonneural:unfriendly-en-us.mp3", + "whispering": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-jasonneural:whispering-en-us.mp3" + }, + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-jasonneural-en-us.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Ryan", + "name": "English (United Kingdom)", + "locale": "en-GB", + "voice": "en-GB-RyanNeural", + "icon": "gb", + "styleList": [ + "cheerful", + "chat" + ], + "stylePreview": { + "cheerful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-gb-ryanneural:cheerful-en-us.mp3", + "chat": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-gb-ryanneural:chat-en-us.mp3" + }, + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-gb-ryanneural-en-us.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Brian M", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-BrianMultilingualNeural", + "icon": "us", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-brianmultilingualneural-en-us.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Wade", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "calm", + "young" + ], + "playedTags": [ + { + "id": "30", + "name": "Narration", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/wsl/wsl-30-en-us.mp3" + }, + { + "id": "26", + "name": "Promo", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/wsl/wsl-26-en-us.mp3" + } + ], + "approxDurationCoeficient": 14 + }, + { + "character": "Lee", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "upbeat", + "middle-aged" + ], + "playedTags": [ + { + "id": "23", + "name": "promo", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_lee.m._promo_upbeat.wav" + } + ], + "approxDurationCoeficient": 16 + }, + { + "character": "Paul", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "upbeat", + "young" + ], + "playedTags": [ + { + "id": "41", + "name": "promo", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_paul.b._promo_upbeat.wav" + } + ], + "approxDurationCoeficient": 19 + }, + { + "character": "Jeremy", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "calm", + "young" + ], + "playedTags": [ + { + "id": "13", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_jeremy.g._narration_calm.wav" + } + ], + "approxDurationCoeficient": 16 + }, + { + "character": "Tobin", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "fast-paced", + "young" + ], + "playedTags": [ + { + "id": "16", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_tobin.a._narration_fast-paced.wav" + } + ], + "approxDurationCoeficient": 21 + }, + { + "character": "Zach", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "upbeat", + "young" + ], + "playedTags": [ + { + "id": "54", + "name": "promo", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_zach.e._promo_upbeat.wav" + } + ], + "approxDurationCoeficient": 18 + }, + { + "character": "Tristan", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "upbeat", + "young" + ], + "playedTags": [ + { + "id": "18", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_tristan.f._narration_upbeat.wav" + } + ], + "approxDurationCoeficient": 17 + }, + { + "character": "Theo", + "name": "English (GB)", + "locale": "en-GB", + "icon": "gb", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "slow-paced", + "young" + ], + "playedTags": [ + { + "id": "57", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_theo.k._narration_slow-paced.wav" + } + ], + "approxDurationCoeficient": 15 + }, + { + "character": "Steve", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "slow-paced", + "young" + ], + "playedTags": [ + { + "id": "37", + "name": "promo", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_steve.b._promo_slow-paced.wav" + } + ], + "approxDurationCoeficient": 16 + }, + { + "character": "Se'von", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "upbeat", + "young" + ], + "playedTags": [ + { + "id": "105", + "name": "Narration", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/wsl/wsl-105-en-us.mp3" + } + ], + "approxDurationCoeficient": 19 + }, + { + "character": "Raine", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "slow-paced", + "young" + ], + "playedTags": [ + { + "id": "52", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_raine.b._narration_slow-paced.wav" + } + ], + "approxDurationCoeficient": 16 + }, + { + "character": "Philip", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "playedTags": [ + { + "id": "60", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_philip.j._narration_calm.wav" + } + ], + "approxDurationCoeficient": 19 + }, + { + "character": "Patrick", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "playedTags": [ + { + "id": "19", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_patrick.k._narration_calm.wav" + }, + { + "id": "47", + "name": "conversational", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_patrick.k._conversational_calm.wav" + } + ], + "approxDurationCoeficient": 18 + }, + { + "character": "Owen", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "playedTags": [ + { + "id": "53", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_owen.c._narration_calm.wav" + } + ], + "approxDurationCoeficient": 17 + }, + { + "character": "Oliver", + "name": "English (GB)", + "locale": "en-GB", + "icon": "gb", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "playedTags": [ + { + "id": "98", + "name": "Narration", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/wsl/wsl-98-en-us.mp3" + } + ], + "approxDurationCoeficient": 16 + }, + { + "character": "Michael", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "fast-paced", + "young" + ], + "playedTags": [ + { + "id": "76", + "name": "Narration", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/wsl/wsl-76-en-us.mp3" + } + ], + "approxDurationCoeficient": 17 + }, + { + "character": "Marcus", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "calm", + "young" + ], + "playedTags": [ + { + "id": "61", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_marcus.g._narration_calm.wav" + } + ], + "approxDurationCoeficient": 17 + }, + { + "character": "Lulu", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "upbeat", + "young" + ], + "playedTags": [ + { + "id": "101", + "name": "Narration", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/wsl/wsl-101-en-us.mp3" + } + ], + "approxDurationCoeficient": 18 + }, + { + "character": "Lorenzo", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "fast-paced", + "middle-aged" + ], + "playedTags": [ + { + "id": "100", + "name": "Narration", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/wsl/wsl-100-en-us.mp3" + } + ], + "approxDurationCoeficient": 17 + }, + { + "character": "Kai", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "upbeat", + "fast-paced", + "young" + ], + "playedTags": [ + { + "id": "32", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_kai.m._narration_upbeat.wav" + }, + { + "id": "44", + "name": "conversational", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_kai.m._conversational_fast-paced.wav" + } + ], + "approxDurationCoeficient": 17 + }, + { + "character": "Jude", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "calm", + "young" + ], + "playedTags": [ + { + "id": "33", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_jude.d._narration_calm.wav" + } + ], + "approxDurationCoeficient": 17 + }, + { + "character": "Joe", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "calm", + "character", + "middle-aged" + ], + "playedTags": [ + { + "id": "27", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_joe.f._narration_calm.wav" + }, + { + "id": "28", + "name": "promo", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_joe.f._promo_upbeat.wav" + } + ], + "approxDurationCoeficient": 16 + }, + { + "character": "Jimmy", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "fast-paced", + "young" + ], + "playedTags": [ + { + "id": "106", + "name": "Narration", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/wsl/wsl-106-en-us.mp3" + } + ], + "approxDurationCoeficient": 16 + }, + { + "character": "Jensen", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "upbeat", + "young" + ], + "playedTags": [ + { + "id": "96", + "name": "Narration", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/wsl/wsl-96-en-us.mp3" + } + ], + "approxDurationCoeficient": 18 + }, + { + "character": "Jay", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "calm", + "young" + ], + "playedTags": [ + { + "id": "107", + "name": "Narration", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/wsl/wsl-107-en-us.mp3" + } + ], + "approxDurationCoeficient": 18 + }, + { + "character": "Jarvis", + "name": "English (GB)", + "locale": "en-GB", + "icon": "gb", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "calm", + "young" + ], + "playedTags": [ + { + "id": "56", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_jarvis.h._narration_calm.wav" + } + ], + "approxDurationCoeficient": 16 + }, + { + "character": "James", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "slow-paced", + "young" + ], + "playedTags": [ + { + "id": "58", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_james.b._narration_slow-paced.wav" + } + ], + "approxDurationCoeficient": 16 + }, + { + "character": "Jack", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "fast-paced", + "young" + ], + "playedTags": [ + { + "id": "97", + "name": "Narration", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/wsl/wsl-97-en-us.mp3" + } + ], + "approxDurationCoeficient": 16 + }, + { + "character": "Greg", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "calm", + "young" + ], + "playedTags": [ + { + "id": "66", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_greg.g._narration_calm.wav" + } + ], + "approxDurationCoeficient": 16 + }, + { + "character": "Garry", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "slow-paced", + "old" + ], + "playedTags": [ + { + "id": "29", + "name": "character", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_garry.j._character_slow-paced_elderly.wav" + } + ], + "approxDurationCoeficient": 16 + }, + { + "character": "Eric", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "upbeat", + "young" + ], + "playedTags": [ + { + "id": "34", + "name": "promo", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_eric.s._promo_upbeat.wav" + } + ], + "approxDurationCoeficient": 17 + }, + { + "character": "Diarmid", + "name": "English (Australia)", + "locale": "en-AU", + "icon": "au", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "slow-paced", + "middle-aged" + ], + "playedTags": [ + { + "id": "69", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_diarmid.c._narration_slow-paced.wav" + } + ], + "approxDurationCoeficient": 14 + }, + { + "character": "Damian", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "upbeat", + "middle-aged" + ], + "playedTags": [ + { + "id": "21", + "name": "promo", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_damien.p._promo_upbeat.wav" + } + ], + "approxDurationCoeficient": 16 + }, + { + "character": "Chase", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "fast-paced", + "young" + ], + "playedTags": [ + { + "id": "35", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_chase.j._narration_fast-paced.wav" + } + ], + "approxDurationCoeficient": 22 + }, + { + "character": "Ben", + "name": "English (South Africa)", + "locale": "en-ZA", + "icon": "za", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "calm", + "young" + ], + "playedTags": [ + { + "id": "137", + "name": "Conversational", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/wsl/wsl-137-en-us.mp3" + } + ], + "approxDurationCoeficient": 19 + }, + { + "character": "Antony", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "playedTags": [ + { + "id": "50", + "name": "promo", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_anthony.a._narration_calm.wav" + } + ], + "approxDurationCoeficient": 16 + }, + { + "character": "Alan", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "calm", + "young" + ], + "playedTags": [ + { + "id": "71", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_alan.t._narration_calm.wav" + } + ], + "approxDurationCoeficient": 17 + }, + { + "character": "Aaron", + "name": "English (Australia)", + "locale": "en-AU", + "icon": "au", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "fast-paced", + "middle-aged" + ], + "playedTags": [ + { + "id": "112", + "name": "Narration", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/wsl/wsl-112-en-us.mp3" + } + ], + "approxDurationCoeficient": 15 + }, + { + "character": "Antoni", + "voice": "ErXwobaYiN019PkySvjV", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "well-rounded", + "calm" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/ErXwobaYiN019PkySvjV/ee9ac367-91ee-4a56-818a-2bd1a9dbe83a.mp3", + "order": 1, + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "approxDurationCoeficient": 17 + }, + { + "character": "Josh", + "voice": "TxGEqnHWrfWFTfGW9XjX", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "young" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/TxGEqnHWrfWFTfGW9XjX/3ae2fc71-d5f9-4769-bb71-2a43633cd186.mp3", + "order": 2, + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "approxDurationCoeficient": 18 + }, + { + "character": "Arnold", + "voice": "VR6AewLTigWG4xSOukaG", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "crisp", + "middle-aged" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/VR6AewLTigWG4xSOukaG/316050b7-c4e0-48de-acf9-a882bb7fc43b.mp3", + "order": 3, + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "approxDurationCoeficient": 18 + }, + { + "character": "Adam", + "voice": "pNInz6obpgDQGcFmaJgB", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "middle-aged" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/pNInz6obpgDQGcFmaJgB/38a69695-2ca9-4b9e-b9ec-f07ced494a58.mp3", + "order": 4, + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "approxDurationCoeficient": 17 + }, + { + "character": "Bill", + "voice": "pqHfZKP75CvOlQylNhV4", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "strong", + "middle-aged" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/pqHfZKP75CvOlQylNhV4/52f0842a-cf81-4715-8cf0-76cfbd77088e.mp3", + "order": 5, + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "approxDurationCoeficient": 16 + }, + { + "character": "Jessie", + "voice": "t0jbNlBVZ17f02VDIeMI", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "fast-paced", + "old" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/t0jbNlBVZ17f02VDIeMI/e26939e3-61a4-4872-a41d-33922cfbdcdc.mp3", + "order": 6, + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "approxDurationCoeficient": 19 + }, + { + "character": "Michael", + "voice": "flq6f7yk4E4fJM5XTYuZ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "orutund", + "old" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/flq6f7yk4E4fJM5XTYuZ/c6431a82-f7d2-4905-b8a4-a631960633d6.mp3", + "order": 7, + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "approxDurationCoeficient": 17 + }, + { + "character": "Liam", + "voice": "TX3LPaxmHKxFdv7VOQHJ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "neutral", + "young" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/TX3LPaxmHKxFdv7VOQHJ/63148076-6363-42db-aea8-31424308b92c.mp3", + "order": 8, + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "approxDurationCoeficient": 20 + }, + { + "character": "Harry", + "voice": "SOYHLrjzK2X1ezoPC6cr", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "anxious", + "young" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/SOYHLrjzK2X1ezoPC6cr/86d178f6-f4b6-4e0e-85be-3de19f490794.mp3", + "order": 9, + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "approxDurationCoeficient": 18 + }, + { + "character": "Patrick", + "voice": "ODq5zmih8GrVes37Dizd", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "shouty", + "middle-aged" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/ODq5zmih8GrVes37Dizd/0ebec87a-2569-4976-9ea5-0170854411a9.mp3", + "order": 10, + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "approxDurationCoeficient": 20 + }, + { + "character": "Thomas", + "voice": "GBv7mTt0atIp3Br8iCZE", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/GBv7mTt0atIp3Br8iCZE/98542988-5267-4148-9a9e-baa8c4f14644.mp3", + "order": 11, + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "approxDurationCoeficient": 17 + }, + { + "character": "Drew", + "voice": "29vD33N1CtxCmqQRPOHJ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "well-rounded", + "middle-aged" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/29vD33N1CtxCmqQRPOHJ/e8b52a3f-9732-440f-b78a-16d5e26407a1.mp3", + "order": 12, + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "approxDurationCoeficient": 16 + }, + { + "character": "Paul", + "voice": "5Q0t7uMcjvnagumLfvZi", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "narration", + "middle-aged" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/5Q0t7uMcjvnagumLfvZi/1094515a-b080-4282-aac7-b1b8a553a3a8.mp3", + "order": 13, + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "approxDurationCoeficient": 17 + }, + { + "character": "Callum", + "voice": "N2lVS1w4EtoT3dr4eOWO", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "masculine", + "middle-aged" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/N2lVS1w4EtoT3dr4eOWO/ac833bd8-ffda-4938-9ebc-b0f99ca25481.mp3", + "order": 14, + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "approxDurationCoeficient": 17 + }, + { + "character": "Giovanni", + "voice": "zcAOhNBS3c14rBihAFp1", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "italian-accent", + "young" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/zcAOhNBS3c14rBihAFp1/e7410f8f-4913-4cb8-8907-784abee5aff8.mp3", + "order": 15, + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "approxDurationCoeficient": 17 + }, + { + "character": "Ethan", + "voice": "g5CIjZEefAph4nQFvHAz", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "whisper", + "middle-aged" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/g5CIjZEefAph4nQFvHAz/26acfa99-fdec-43b8-b2ee-e49e75a3ac16.mp3", + "order": 16, + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "approxDurationCoeficient": 16 + }, + { + "character": "Clyde", + "voice": "2EiwWnXFnvU5JabPnv8n", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "masculine", + "middle-aged" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/2EiwWnXFnvU5JabPnv8n/65d80f52-703f-4cae-a91d-75d4e200ed02.mp3", + "order": 17, + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "approxDurationCoeficient": 14 + }, + { + "character": "George", + "voice": "JBFqnCBsd6RMkjVDRZzb", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "raspy", + "narration" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/JBFqnCBsd6RMkjVDRZzb/365e8ae8-5364-4b07-9a3b-1bfb4a390248.mp3", + "order": 19, + "name": "English (United States)", + "locale": "en-US", + "icon": "gb", + "approxDurationCoeficient": 17 + }, + { + "character": "Dave", + "voice": "CYw3kZ02Hs0563khs1Fj", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "essex-accent", + "young" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/CYw3kZ02Hs0563khs1Fj/872cb056-45d3-419e-b5c6-de2b387a93a0.mp3", + "order": 20, + "name": "English (United States)", + "locale": "en-US", + "icon": "gb", + "approxDurationCoeficient": 18 + }, + { + "character": "Joseph", + "voice": "Zlb1dXrM653N07WRdFW3", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "upbeat", + "middle-aged" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/Zlb1dXrM653N07WRdFW3/daa22039-8b09-4c65-b59f-c79c48646a72.mp3", + "order": 21, + "name": "English (United States)", + "locale": "en-US", + "icon": "gb", + "approxDurationCoeficient": 17 + }, + { + "character": "Daniel", + "voice": "onwK4e9ZLuTAKqWW03F9", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "middle-aged" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/onwK4e9ZLuTAKqWW03F9/7eee0236-1a72-4b86-b303-5dcadc007ba9.mp3", + "order": 22, + "name": "English (United States)", + "locale": "en-US", + "icon": "gb", + "approxDurationCoeficient": 18 + }, + { + "character": "Charlie", + "voice": "IKne3meq5aSn9XLyUdCD", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "casual", + "middle-aged" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/IKne3meq5aSn9XLyUdCD/102de6f2-22ed-43e0-a1f1-111fa75c5481.mp3", + "order": 23, + "name": "English (United States)", + "locale": "en-US", + "icon": "au", + "approxDurationCoeficient": 17 + }, + { + "character": "James", + "voice": "ZQe5CZNOzWyzPSCn5a3c", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "old" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/ZQe5CZNOzWyzPSCn5a3c/35734112-7b72-48df-bc2f-64d5ab2f791b.mp3", + "order": 24, + "name": "English (United States)", + "locale": "en-US", + "icon": "au", + "approxDurationCoeficient": 16 + }, + { + "character": "Fin", + "voice": "D38z5RcWu1voky8WS1ja", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "sailor", + "old" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/D38z5RcWu1voky8WS1ja/a470ba64-1e72-46d9-ba9d-030c4155e2d2.mp3", + "order": 25, + "name": "English (United States)", + "locale": "en-US", + "icon": "ie", + "approxDurationCoeficient": 16 + }, + { + "character": "Jeremy", + "voice": "bVMeCyTHy58xNoL34h3p", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "excited", + "young" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/bVMeCyTHy58xNoL34h3p/66c47d58-26fd-4b30-8a06-07952116a72c.mp3", + "order": 26, + "name": "English (United States)", + "locale": "en-US", + "icon": "ie", + "approxDurationCoeficient": 18 + }, + { + "character": "Chris", + "voice": "iP95p4xoKVk53GoZ742B", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/iP95p4xoKVk53GoZ742B/c1bda571-7123-418e-a796-a2b464b373b4.mp3", + "order": 99999, + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "approxDurationCoeficient": 19 + }, + { + "character": "Brian", + "voice": "nPczCjzI2devNBz1zQrb", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/nPczCjzI2devNBz1zQrb/f4dbda0c-aff0-45c0-93fa-f5d5ec95a2eb.mp3", + "order": 99999, + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "approxDurationCoeficient": 19 + }, + { + "character": "Sam", + "voice": "yoZ06aMxZJJ28mfd3POQ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "fast-paced", + "young" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/yoZ06aMxZJJ28mfd3POQ/ac9d1c91-92ce-4b20-8cc2-3187a7da49ec.mp3", + "order": 99999, + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "William", + "name": "English (Australia)", + "locale": "en-AU", + "voice": "en-AU-WilliamNeural", + "icon": "au", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-au-williamneural-en-us.mp3", + "approxDurationCoeficient": 19 + }, + { + "voiceProvider": "azure", + "character": "Darren", + "name": "English (Australia)", + "locale": "en-AU", + "voice": "en-AU-DarrenNeural", + "icon": "au", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-au-darrenneural-en-us.mp3", + "approxDurationCoeficient": 22 + }, + { + "voiceProvider": "azure", + "character": "Duncan", + "name": "English (Australia)", + "locale": "en-AU", + "voice": "en-AU-DuncanNeural", + "icon": "au", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-au-duncanneural-en-us.mp3" + }, + { + "voiceProvider": "azure", + "character": "Ken", + "name": "English (Australia)", + "locale": "en-AU", + "voice": "en-AU-KenNeural", + "icon": "au", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-au-kenneural-en-us.mp3", + "approxDurationCoeficient": 19 + }, + { + "voiceProvider": "azure", + "character": "Neil", + "name": "English (Australia)", + "locale": "en-AU", + "voice": "en-AU-NeilNeural", + "icon": "au", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-au-neilneural-en-us.mp3" + }, + { + "voiceProvider": "azure", + "character": "Tim", + "name": "English (Australia)", + "locale": "en-AU", + "voice": "en-AU-TimNeural", + "icon": "au", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-au-timneural-en-us.mp3", + "approxDurationCoeficient": 16 + }, + { + "voiceProvider": "azure", + "character": "Liam", + "name": "English (Canada)", + "locale": "en-CA", + "voice": "en-CA-LiamNeural", + "icon": "ca", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-ca-liamneural-en-us.mp3", + "approxDurationCoeficient": 19 + }, + { + "voiceProvider": "azure", + "character": "Alfie", + "name": "English (United Kingdom)", + "locale": "en-GB", + "voice": "en-GB-AlfieNeural", + "icon": "gb", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-gb-alfieneural-en-us.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Elliot", + "name": "English (United Kingdom)", + "locale": "en-GB", + "voice": "en-GB-ElliotNeural", + "icon": "gb", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-gb-elliotneural-en-us.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Ethan", + "name": "English (United Kingdom)", + "locale": "en-GB", + "voice": "en-GB-EthanNeural", + "icon": "gb", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-gb-ethanneural-en-us.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Noah", + "name": "English (United Kingdom)", + "locale": "en-GB", + "voice": "en-GB-NoahNeural", + "icon": "gb", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-gb-noahneural-en-us.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Oliver", + "name": "English (United Kingdom)", + "locale": "en-GB", + "voice": "en-GB-OliverNeural", + "icon": "gb", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-gb-oliverneural-en-us.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Thomas", + "name": "English (United Kingdom)", + "locale": "en-GB", + "voice": "en-GB-ThomasNeural", + "icon": "gb", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-gb-thomasneural-en-us.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Sam", + "name": "English (Hong Kong SAR)", + "locale": "en-HK", + "voice": "en-HK-SamNeural", + "icon": "hk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-hk-samneural-en-us.mp3", + "approxDurationCoeficient": 16 + }, + { + "voiceProvider": "azure", + "character": "Connor", + "name": "English (Ireland)", + "locale": "en-IE", + "voice": "en-IE-ConnorNeural", + "icon": "ie", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-ie-connorneural-en-us.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Prabhat", + "name": "English (India)", + "locale": "en-IN", + "voice": "en-IN-PrabhatNeural", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-in-prabhatneural-en-us.mp3", + "approxDurationCoeficient": 15 + }, + { + "voiceProvider": "azure", + "character": "Chilemba", + "name": "English (Kenya)", + "locale": "en-KE", + "voice": "en-KE-ChilembaNeural", + "icon": "ke", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-ke-chilembaneural-en-us.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Abeo", + "name": "English (Nigeria)", + "locale": "en-NG", + "voice": "en-NG-AbeoNeural", + "icon": "ng", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-ng-abeoneural-en-us.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Mitchell", + "name": "English (New Zealand)", + "locale": "en-NZ", + "voice": "en-NZ-MitchellNeural", + "icon": "nz", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-nz-mitchellneural-en-us.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "James", + "name": "English (Philippines)", + "locale": "en-PH", + "voice": "en-PH-JamesNeural", + "icon": "ph", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-ph-jamesneural-en-us.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Wayne", + "name": "English (Singapore)", + "locale": "en-SG", + "voice": "en-SG-WayneNeural", + "icon": "sg", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-sg-wayneneural-en-us.mp3", + "approxDurationCoeficient": 15 + }, + { + "voiceProvider": "azure", + "character": "Elimu", + "name": "English (Tanzania)", + "locale": "en-TZ", + "voice": "en-TZ-ElimuNeural", + "icon": "tz", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-tz-elimuneural-en-us.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Andrew", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-AndrewNeural", + "icon": "us", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-andrewneural-en-us.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Brian", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-BrianNeural", + "icon": "us", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-brianneural-en-us.mp3" + }, + { + "voiceProvider": "azure", + "character": "Guy", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-GuyNeural", + "icon": "us", + "styleList": [ + "newscast", + "angry", + "cheerful", + "sad", + "excited", + "friendly", + "terrified", + "shouting", + "unfriendly", + "whispering", + "hopeful" + ], + "defaultStyle": "friendly", + "stylePreview": { + "newscast": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-guyneural:newscast-en-us.mp3", + "angry": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-guyneural:angry-en-us.mp3", + "cheerful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-guyneural:cheerful-en-us.mp3", + "sad": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-guyneural:sad-en-us.mp3", + "excited": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-guyneural:excited-en-us.mp3", + "friendly": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-guyneural:friendly-en-us.mp3", + "terrified": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-guyneural:terrified-en-us.mp3", + "shouting": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-guyneural:shouting-en-us.mp3", + "unfriendly": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-guyneural:unfriendly-en-us.mp3", + "whispering": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-guyneural:whispering-en-us.mp3", + "hopeful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-guyneural:hopeful-en-us.mp3" + }, + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-guyneural-en-us.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Brandon", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-BrandonNeural", + "icon": "us", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-brandonneural-en-us.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Christopher", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-ChristopherNeural", + "icon": "us", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-christopherneural-en-us.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Eric", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-EricNeural", + "icon": "us", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-ericneural-en-us.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Jacob", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-JacobNeural", + "icon": "us", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-jacobneural-en-us.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Roger", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-RogerNeural", + "icon": "us", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-rogerneural-en-us.mp3" + }, + { + "voiceProvider": "azure", + "character": "Ryan M", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-RyanMultilingualNeural", + "icon": "us", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-ryanmultilingualneural-en-us.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Steffan", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-SteffanNeural", + "icon": "us", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-steffanneural-en-us.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Luke", + "name": "English (South Africa)", + "locale": "en-ZA", + "voice": "en-ZA-LukeNeural", + "icon": "za", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-za-lukeneural-en-us.mp3", + "approxDurationCoeficient": 20 + }, + { + "character": "Oscar K", + "name": "English-US", + "voice": "en-US-Casual-K", + "icon": "us", + "voiceProvider": "google", + "locale": "en-US", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-en-us-casual-k-en-us.mp3", + "approxDurationCoeficient": 19 + }, + { + "character": "Miles B", + "name": "English-AU", + "voice": "en-AU-Neural2-B", + "icon": "au", + "voiceProvider": "google", + "locale": "en-AU", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-en-au-neural2-b-en-us.mp3" + }, + { + "character": "James D", + "name": "English-AU", + "voice": "en-AU-Neural2-D", + "icon": "au", + "voiceProvider": "google", + "locale": "en-AU", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-en-au-neural2-d-en-us.mp3", + "approxDurationCoeficient": 21 + }, + { + "character": "Emmet B", + "name": "English-GB", + "voice": "en-GB-Neural2-B", + "icon": "gb", + "voiceProvider": "google", + "locale": "en-GB", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-en-gb-neural2-b-en-us.mp3", + "approxDurationCoeficient": 18 + }, + { + "character": "Jack D", + "name": "English-GB", + "voice": "en-GB-Neural2-D", + "icon": "gb", + "voiceProvider": "google", + "locale": "en-GB", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-en-gb-neural2-d-en-us.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Cole B", + "name": "English-IN", + "voice": "en-IN-Neural2-B", + "icon": "in", + "voiceProvider": "google", + "locale": "en-IN", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-en-in-neural2-b-en-us.mp3", + "approxDurationCoeficient": 20 + }, + { + "character": "Ralph C", + "name": "English-IN", + "voice": "en-IN-Neural2-C", + "icon": "in", + "voiceProvider": "google", + "locale": "en-IN", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-en-in-neural2-c-en-us.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Joe A", + "name": "English-US", + "voice": "en-US-Neural2-A", + "icon": "us", + "voiceProvider": "google", + "locale": "en-US", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-en-us-neural2-a-en-us.mp3", + "approxDurationCoeficient": 18 + }, + { + "character": "Hayden D", + "name": "English-US", + "voice": "en-US-Neural2-D", + "icon": "us", + "voiceProvider": "google", + "locale": "en-US", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-en-us-neural2-d-en-us.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Oscar I", + "name": "English-US", + "voice": "en-US-Neural2-I", + "icon": "us", + "voiceProvider": "google", + "locale": "en-US", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-en-us-neural2-i-en-us.mp3", + "approxDurationCoeficient": 19 + }, + { + "character": "Miles J", + "name": "English-US", + "voice": "en-US-Neural2-J", + "icon": "us", + "voiceProvider": "google", + "locale": "en-US", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-en-us-neural2-j-en-us.mp3" + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Jane", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-JaneNeural", + "icon": "us", + "styleList": [ + "angry", + "cheerful", + "excited", + "friendly", + "hopeful", + "sad", + "shouting", + "terrified", + "unfriendly", + "whispering" + ], + "defaultStyle": "friendly", + "stylePreview": { + "angry": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-janeneural:angry-en-us.mp3", + "cheerful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-janeneural:cheerful-en-us.mp3", + "excited": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-janeneural:excited-en-us.mp3", + "friendly": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-janeneural:friendly-en-us.mp3", + "hopeful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-janeneural:hopeful-en-us.mp3", + "sad": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-janeneural:sad-en-us.mp3", + "shouting": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-janeneural:shouting-en-us.mp3", + "terrified": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-janeneural:terrified-en-us.mp3", + "unfriendly": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-janeneural:unfriendly-en-us.mp3", + "whispering": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-janeneural:whispering-en-us.mp3" + }, + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-janeneural-en-us.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Emma", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-EmmaNeural", + "icon": "us", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-emmaneural-en-us.mp3", + "approxDurationCoeficient": 16 + }, + { + "voiceProvider": "azure", + "character": "Nancy", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-NancyNeural", + "icon": "us", + "styleList": [ + "angry", + "cheerful", + "excited", + "friendly", + "hopeful", + "sad", + "shouting", + "terrified", + "unfriendly", + "whispering" + ], + "defaultStyle": "friendly", + "stylePreview": { + "angry": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-nancyneural:angry-en-us.mp3", + "cheerful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-nancyneural:cheerful-en-us.mp3", + "excited": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-nancyneural:excited-en-us.mp3", + "friendly": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-nancyneural:friendly-en-us.mp3", + "hopeful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-nancyneural:hopeful-en-us.mp3", + "sad": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-nancyneural:sad-en-us.mp3", + "shouting": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-nancyneural:shouting-en-us.mp3", + "terrified": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-nancyneural:terrified-en-us.mp3", + "unfriendly": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-nancyneural:unfriendly-en-us.mp3", + "whispering": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-nancyneural:whispering-en-us.mp3" + }, + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-nancyneural-en-us.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Sara", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-SaraNeural", + "icon": "us", + "styleList": [ + "angry", + "cheerful", + "excited", + "friendly", + "hopeful", + "sad", + "shouting", + "terrified", + "unfriendly", + "whispering" + ], + "defaultStyle": "friendly", + "stylePreview": { + "angry": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-saraneural:angry-en-us.mp3", + "cheerful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-saraneural:cheerful-en-us.mp3", + "excited": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-saraneural:excited-en-us.mp3", + "friendly": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-saraneural:friendly-en-us.mp3", + "hopeful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-saraneural:hopeful-en-us.mp3", + "sad": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-saraneural:sad-en-us.mp3", + "shouting": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-saraneural:shouting-en-us.mp3", + "terrified": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-saraneural:terrified-en-us.mp3", + "unfriendly": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-saraneural:unfriendly-en-us.mp3", + "whispering": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-saraneural:whispering-en-us.mp3" + }, + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-saraneural-en-us.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Joanne", + "name": "English (Australia)", + "locale": "en-AU", + "voice": "en-AU-JoanneNeural", + "icon": "au", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-au-joanneneural-en-us.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Sonia", + "name": "English (United Kingdom)", + "locale": "en-GB", + "voice": "en-GB-SoniaNeural", + "icon": "gb", + "styleList": [ + "cheerful", + "sad" + ], + "stylePreview": { + "cheerful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-gb-sonianeural:cheerful-en-us.mp3", + "sad": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-gb-sonianeural:sad-en-us.mp3" + }, + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-gb-sonianeural-en-us.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Ava", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "fast-paced", + "upbeat", + "young" + ], + "playedTags": [ + { + "id": "72", + "name": "promo", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_ava.m._promo_upbeat.wav" + }, + { + "id": "31", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_ava.m._narration_upbeat.wav" + }, + { + "id": "43", + "name": "conversational", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_ava.m._conversational_fast-paced.wav" + } + ], + "approxDurationCoeficient": 18 + }, + { + "character": "Alana", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "calm", + "young" + ], + "playedTags": [ + { + "id": "3", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_alana.b._narration_calm.wav" + } + ], + "approxDurationCoeficient": 15 + }, + { + "character": "Nicole", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "calm", + "young" + ], + "playedTags": [ + { + "id": "14", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_nicole.l._narration_calm.wav" + }, + { + "id": "45", + "name": "conversational", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_nicole.l._conversational_calm.wav" + } + ], + "approxDurationCoeficient": 17 + }, + { + "character": "Sofia", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "slow-paced", + "upbeat", + "calm", + "young" + ], + "playedTags": [ + { + "id": "20", + "name": "promo", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_sofia.h._promo_upbeat.wav" + }, + { + "id": "8", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_sofia.h._narration_slow-paced.wav" + }, + { + "id": "42", + "name": "conversational", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_sofia.h._conversational_calm.wav" + } + ], + "approxDurationCoeficient": 17 + }, + { + "character": "Vanessa", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "slow-paced", + "calm", + "young" + ], + "playedTags": [ + { + "id": "10", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_vanessa.n._narration_slow-paced_elderly.wav" + }, + { + "id": "48", + "name": "conversational", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_vanessa.n._conversational_calm_elderly.wav" + } + ], + "approxDurationCoeficient": 15 + }, + { + "character": "Zoey", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "slow-paced", + "young" + ], + "playedTags": [ + { + "id": "67", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_zoey.o._narration_slow-paced.wav" + } + ], + "approxDurationCoeficient": 15 + }, + { + "character": "Tilda", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "upbeat", + "young" + ], + "playedTags": [ + { + "id": "39", + "name": "promo", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_tilda.c._promo_upbeat.wav" + } + ], + "approxDurationCoeficient": 18 + }, + { + "character": "Terra", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "upbeat", + "young" + ], + "playedTags": [ + { + "id": "59", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_terra.g._narration_upbeat.wav" + } + ], + "approxDurationCoeficient": 16 + }, + { + "character": "Shelby", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "calm", + "young" + ], + "playedTags": [ + { + "id": "104", + "name": "Narration", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/wsl/wsl-104-en-us.mp3" + } + ], + "approxDurationCoeficient": 19 + }, + { + "character": "Selene", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "fast-paced", + "young" + ], + "playedTags": [ + { + "id": "24", + "name": "promo", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_selene.r._promo_fast-paced.wav" + } + ], + "approxDurationCoeficient": 19 + }, + { + "character": "Ramona", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "slow-paced", + "upbeat", + "young" + ], + "playedTags": [ + { + "id": "4", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_ramona.j._narration_slow-paced.wav" + }, + { + "id": "5", + "name": "promo", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_ramona.j._promo_upbeat.wav" + } + ], + "approxDurationCoeficient": 14 + }, + { + "character": "Paula", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "fast-paced", + "young" + ], + "playedTags": [ + { + "id": "78", + "name": "Narration", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/wsl/wsl-78-en-us.mp3" + }, + { + "id": "129", + "name": "Promo", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/wsl/wsl-129-en-us.mp3" + } + ], + "approxDurationCoeficient": 18 + }, + { + "character": "Paige", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "fast-paced", + "young" + ], + "playedTags": [ + { + "id": "15", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_paige.l._narration_fast-paced.wav" + } + ], + "approxDurationCoeficient": 19 + }, + { + "character": "Kari", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "playedTags": [ + { + "id": "68", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_kari.n._narration_calm.wav" + } + ], + "approxDurationCoeficient": 15 + }, + { + "character": "Jordan", + "name": "English (Australia)", + "locale": "en-AU", + "icon": "au", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "calm", + "young" + ], + "playedTags": [ + { + "id": "62", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_jordan.t._narration_calm.wav" + } + ], + "approxDurationCoeficient": 17 + }, + { + "character": "Jodi", + "name": "English (Canada)", + "locale": "en-CA", + "icon": "ca", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "calm", + "upbeat", + "young" + ], + "playedTags": [ + { + "id": "22", + "name": "promo", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_jodi.p._promo_upbeat.wav" + }, + { + "id": "51", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_jodi.p._narration_calm.wav" + } + ], + "approxDurationCoeficient": 17 + }, + { + "character": "Issa", + "name": "English (South Africa)", + "locale": "en-ZA", + "icon": "za", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "slow-paced", + "young" + ], + "playedTags": [ + { + "id": "109", + "name": "Narration", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/wsl/wsl-109-en-us.mp3" + } + ], + "approxDurationCoeficient": 16 + }, + { + "character": "Isabel", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "slow-paced", + "middle-aged" + ], + "playedTags": [ + { + "id": "11", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_isabel.b._narration_slow-paced.wav" + } + ], + "approxDurationCoeficient": 15 + }, + { + "character": "Hannah", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "fast", + "young" + ], + "playedTags": [ + { + "id": "99", + "name": "Narration", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/wsl/wsl-99-en-us.mp3" + } + ], + "approxDurationCoeficient": 18 + }, + { + "character": "Gia", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "slow-paced", + "young" + ], + "playedTags": [ + { + "id": "49", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_gia.w._narration_slow-paced.wav" + } + ], + "approxDurationCoeficient": 18 + }, + { + "character": "Genevieve", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "calm", + "young" + ], + "playedTags": [ + { + "id": "55", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_genevieve.m._narration_calm.wav" + } + ], + "approxDurationCoeficient": 17 + }, + { + "character": "Fiona", + "name": "English (United Kingdom)", + "locale": "en-GB", + "icon": "gb", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "calm", + "young" + ], + "playedTags": [ + { + "id": "63", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_fiona.h._narration_calm.wav" + } + ], + "approxDurationCoeficient": 16 + }, + { + "character": "Donna", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "slow-paced", + "young" + ], + "playedTags": [ + { + "id": "65", + "name": "narration", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_donna.w._narration_slow-paced.wav" + } + ], + "approxDurationCoeficient": 17 + }, + { + "character": "Charlie", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "calm", + "young" + ], + "playedTags": [ + { + "id": "40", + "name": "promo", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_charlie.z._promo_calm.wav" + } + ], + "approxDurationCoeficient": 18 + }, + { + "character": "Cameron", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "middle-aged" + ], + "playedTags": [ + { + "id": "77", + "name": "Narration", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/wsl/wsl-77-en-us.mp3" + } + ], + "approxDurationCoeficient": 17 + }, + { + "character": "Bella", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "upbeat", + "young" + ], + "playedTags": [ + { + "id": "38", + "name": "promo", + "url": "https://elai-media.s3.eu-west-2.amazonaws.com/voices/wsl_bella.b._promo_upbeat.wav" + } + ], + "approxDurationCoeficient": 15 + }, + { + "character": "Ali", + "name": "English (Australia)", + "locale": "en-AU", + "icon": "au", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "young" + ], + "playedTags": [ + { + "id": "111", + "name": "Narration", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/wsl/wsl-111-en-us.mp3" + } + ], + "approxDurationCoeficient": 16 + }, + { + "character": "Abbi", + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "voiceProvider": "wsl", + "premium": true, + "tags": [ + "middle-aged" + ], + "playedTags": [ + { + "id": "102", + "name": "Narration", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/wsl/wsl-102-en-us.mp3" + } + ], + "approxDurationCoeficient": 15 + }, + { + "character": "Rachel", + "voice": "21m00Tcm4TlvDq8ikWAM", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/21m00Tcm4TlvDq8ikWAM/df6788f9-5c96-470d-8312-aab3b3d8f50a.mp3", + "order": 1, + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "approxDurationCoeficient": 18 + }, + { + "character": "Matilda", + "voice": "XrExE9yKIg1WjnnlVkGX", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/XrExE9yKIg1WjnnlVkGX/b930e18d-6b4d-466e-bab2-0ae97c6d8535.mp3", + "order": 3, + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "approxDurationCoeficient": 17 + }, + { + "character": "Grace", + "voice": "oWAxZDx7w5VEj9dCyTzz", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "southern-accent", + "young" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/oWAxZDx7w5VEj9dCyTzz/84a36d1c-e182-41a8-8c55-dbdd15cd6e72.mp3", + "order": 4, + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "approxDurationCoeficient": 17 + }, + { + "character": "Domi", + "voice": "AZnzlk1XvdvUeBnXmlld", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "upbeat", + "young" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/AZnzlk1XvdvUeBnXmlld/508e12d0-a7f7-4d86-a0d3-f3884ff353ed.mp3", + "order": 5, + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "approxDurationCoeficient": 17 + }, + { + "character": "Gigi", + "voice": "jBpfuIE2acCO8z3wKNLl", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "childish", + "young" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/jBpfuIE2acCO8z3wKNLl/3a7e4339-78fa-404e-8d10-c3ef5587935b.mp3", + "order": 6, + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "approxDurationCoeficient": 19 + }, + { + "character": "Serena", + "voice": "pMsXgVXv3BLzUgSXRplE", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/pMsXgVXv3BLzUgSXRplE/d61f18ed-e5b0-4d0b-a33c-5c6e7e33b053.mp3", + "order": 7, + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "approxDurationCoeficient": 17 + }, + { + "character": "Glinda", + "voice": "z9fAnlkpzviPz146aGWa", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "strong", + "middle-aged" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/z9fAnlkpzviPz146aGWa/cbc60443-7b61-4ebb-b8e1-5c03237ea01d.mp3", + "order": 8, + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "approxDurationCoeficient": 16 + }, + { + "character": "Mimi", + "voice": "zrHiDhphv9ZnVXBqCLjz", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "childish", + "young" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/zrHiDhphv9ZnVXBqCLjz/decbf20b-0f57-4fac-985b-a4f0290ebfc4.mp3", + "order": 9, + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "approxDurationCoeficient": 16 + }, + { + "character": "Emily", + "voice": "LcfcDJNUP1GQjkzn1xUU", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/LcfcDJNUP1GQjkzn1xUU/e4b994b7-9713-4238-84f3-add8fccaaccd.mp3", + "order": 10, + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "approxDurationCoeficient": 15 + }, + { + "character": "Lily", + "voice": "pFZP5JQG7iQjIQuC4Bku", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "raspy", + "middle-aged" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/pFZP5JQG7iQjIQuC4Bku/0ab8bd74-fcd2-489d-b70a-3e1bcde8c999.mp3", + "order": 11, + "name": "English (United States)", + "locale": "en-US", + "icon": "gb", + "approxDurationCoeficient": 17 + }, + { + "character": "Charlotte", + "voice": "XB0fDUnXU5powFXDhCwa", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "swedish-accent", + "young" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/XB0fDUnXU5powFXDhCwa/942356dc-f10d-4d89-bda5-4f8505ee038b.mp3", + "order": 12, + "name": "English (United States)", + "locale": "en-US", + "icon": "gb", + "approxDurationCoeficient": 15 + }, + { + "character": "Dorothy", + "voice": "ThT5KcBeYPX3keUQqHPh", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/ThT5KcBeYPX3keUQqHPh/981f0855-6598-48d2-9f8f-b6d92fbbe3fc.mp3", + "order": 13, + "name": "English (United States)", + "locale": "en-US", + "icon": "gb", + "approxDurationCoeficient": 17 + }, + { + "character": "Sarah", + "voice": "EXAVITQu4vr4xnSDxMaL", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/EXAVITQu4vr4xnSDxMaL/6851ec91-9950-471f-8586-357c52539069.mp3", + "order": 99999, + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "approxDurationCoeficient": 17 + }, + { + "character": "Alice", + "voice": "Xb7hH8MSUJpSbSDYk0k2", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/Xb7hH8MSUJpSbSDYk0k2/f5409e2f-d9c3-4ac9-9e7d-916a5dbd1ef1.mp3", + "order": 99999, + "name": "English (United States)", + "locale": "en-US", + "icon": "us", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Natasha", + "name": "English (Australia)", + "locale": "en-AU", + "voice": "en-AU-NatashaNeural", + "icon": "au", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-au-natashaneural-en-us.mp3", + "approxDurationCoeficient": 16 + }, + { + "voiceProvider": "azure", + "character": "Annette", + "name": "English (Australia)", + "locale": "en-AU", + "voice": "en-AU-AnnetteNeural", + "icon": "au", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-au-annetteneural-en-us.mp3", + "approxDurationCoeficient": 19 + }, + { + "voiceProvider": "azure", + "character": "Carly", + "name": "English (Australia)", + "locale": "en-AU", + "voice": "en-AU-CarlyNeural", + "icon": "au", + "tags": [ + "child" + ], + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-au-carlyneural-en-us.mp3", + "approxDurationCoeficient": 14 + }, + { + "voiceProvider": "azure", + "character": "Elsie", + "name": "English (Australia)", + "locale": "en-AU", + "voice": "en-AU-ElsieNeural", + "icon": "au", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-au-elsieneural-en-us.mp3" + }, + { + "voiceProvider": "azure", + "character": "Freya", + "name": "English (Australia)", + "locale": "en-AU", + "voice": "en-AU-FreyaNeural", + "icon": "au", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-au-freyaneural-en-us.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Kim", + "name": "English (Australia)", + "locale": "en-AU", + "voice": "en-AU-KimNeural", + "icon": "au", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-au-kimneural-en-us.mp3", + "approxDurationCoeficient": 20 + }, + { + "voiceProvider": "azure", + "character": "Tina", + "name": "English (Australia)", + "locale": "en-AU", + "voice": "en-AU-TinaNeural", + "icon": "au", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-au-tinaneural-en-us.mp3", + "approxDurationCoeficient": 16 + }, + { + "voiceProvider": "azure", + "character": "Clara", + "name": "English (Canada)", + "locale": "en-CA", + "voice": "en-CA-ClaraNeural", + "icon": "ca", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-ca-claraneural-en-us.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Libby", + "name": "English (United Kingdom)", + "locale": "en-GB", + "voice": "en-GB-LibbyNeural", + "icon": "gb", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-gb-libbyneural-en-us.mp3", + "approxDurationCoeficient": 15 + }, + { + "voiceProvider": "azure", + "character": "Abbi", + "name": "English (United Kingdom)", + "locale": "en-GB", + "voice": "en-GB-AbbiNeural", + "icon": "gb", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-gb-abbineural-en-us.mp3", + "approxDurationCoeficient": 16 + }, + { + "voiceProvider": "azure", + "character": "Bella", + "name": "English (United Kingdom)", + "locale": "en-GB", + "voice": "en-GB-BellaNeural", + "icon": "gb", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-gb-bellaneural-en-us.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Hollie", + "name": "English (United Kingdom)", + "locale": "en-GB", + "voice": "en-GB-HollieNeural", + "icon": "gb", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-gb-hollieneural-en-us.mp3", + "approxDurationCoeficient": 16 + }, + { + "voiceProvider": "azure", + "character": "Maisie", + "name": "English (United Kingdom)", + "locale": "en-GB", + "voice": "en-GB-MaisieNeural", + "icon": "gb", + "tags": [ + "child" + ], + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-gb-maisieneural-en-us.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Olivia", + "name": "English (United Kingdom)", + "locale": "en-GB", + "voice": "en-GB-OliviaNeural", + "icon": "gb", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-gb-olivianeural-en-us.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Mia", + "name": "English (United Kingdom)", + "locale": "en-GB", + "voice": "en-GB-MiaNeural", + "icon": "gb", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-gb-mianeural-en-us.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Yan", + "name": "English (Hong Kong SAR)", + "locale": "en-HK", + "voice": "en-HK-YanNeural", + "icon": "hk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-hk-yanneural-en-us.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Emily", + "name": "English (Ireland)", + "locale": "en-IE", + "voice": "en-IE-EmilyNeural", + "icon": "ie", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-ie-emilyneural-en-us.mp3", + "approxDurationCoeficient": 16 + }, + { + "voiceProvider": "azure", + "character": "Neerja", + "name": "English (India)", + "locale": "en-IN", + "voice": "en-IN-NeerjaNeural", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-in-neerjaneural-en-us.mp3", + "approxDurationCoeficient": 16 + }, + { + "voiceProvider": "azure", + "character": "Asilia", + "name": "English (Kenya)", + "locale": "en-KE", + "voice": "en-KE-AsiliaNeural", + "icon": "ke", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-ke-asilianeural-en-us.mp3", + "approxDurationCoeficient": 16 + }, + { + "voiceProvider": "azure", + "character": "Ezinne", + "name": "English (Nigeria)", + "locale": "en-NG", + "voice": "en-NG-EzinneNeural", + "icon": "ng", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-ng-ezinneneural-en-us.mp3", + "approxDurationCoeficient": 16 + }, + { + "voiceProvider": "azure", + "character": "Molly", + "name": "English (New Zealand)", + "locale": "en-NZ", + "voice": "en-NZ-MollyNeural", + "icon": "nz", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-nz-mollyneural-en-us.mp3", + "approxDurationCoeficient": 16 + }, + { + "voiceProvider": "azure", + "character": "Rosa", + "name": "English (Philippines)", + "locale": "en-PH", + "voice": "en-PH-RosaNeural", + "icon": "ph", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-ph-rosaneural-en-us.mp3", + "approxDurationCoeficient": 16 + }, + { + "voiceProvider": "azure", + "character": "Luna", + "name": "English (Singapore)", + "locale": "en-SG", + "voice": "en-SG-LunaNeural", + "icon": "sg", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-sg-lunaneural-en-us.mp3", + "approxDurationCoeficient": 14 + }, + { + "voiceProvider": "azure", + "character": "Imani", + "name": "English (Tanzania)", + "locale": "en-TZ", + "voice": "en-TZ-ImaniNeural", + "icon": "tz", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-tz-imanineural-en-us.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Ava M", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-AvaMultilingualNeural", + "icon": "us", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-avamultilingualneural-en-us.mp3", + "approxDurationCoeficient": 12 + }, + { + "voiceProvider": "azure", + "character": "Emma M", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-EmmaMultilingualNeural", + "icon": "us", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-emmamultilingualneural-en-us.mp3", + "approxDurationCoeficient": 16 + }, + { + "voiceProvider": "azure", + "character": "Ava", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-AvaNeural", + "icon": "us", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-avaneural-en-us.mp3", + "approxDurationCoeficient": 16 + }, + { + "voiceProvider": "azure", + "character": "Jenny", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-JennyNeural", + "icon": "us", + "styleList": [ + "assistant", + "chat", + "customerservice", + "newscast", + "angry", + "cheerful", + "sad", + "excited", + "friendly", + "terrified", + "shouting", + "unfriendly", + "whispering", + "hopeful" + ], + "defaultStyle": "friendly", + "stylePreview": { + "assistant": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-jennyneural:assistant-en-us.mp3", + "chat": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-jennyneural:chat-en-us.mp3", + "customerservice": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-jennyneural:customerservice-en-us.mp3", + "newscast": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-jennyneural:newscast-en-us.mp3", + "angry": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-jennyneural:angry-en-us.mp3", + "cheerful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-jennyneural:cheerful-en-us.mp3", + "sad": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-jennyneural:sad-en-us.mp3", + "excited": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-jennyneural:excited-en-us.mp3", + "friendly": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-jennyneural:friendly-en-us.mp3", + "terrified": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-jennyneural:terrified-en-us.mp3", + "shouting": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-jennyneural:shouting-en-us.mp3", + "unfriendly": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-jennyneural:unfriendly-en-us.mp3", + "whispering": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-jennyneural:whispering-en-us.mp3", + "hopeful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-jennyneural:hopeful-en-us.mp3" + }, + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-jennyneural-en-us.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Aria", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-AriaNeural", + "icon": "us", + "styleList": [ + "chat", + "customerservice", + "narration-professional", + "newscast-casual", + "newscast-formal", + "cheerful", + "empathetic", + "angry", + "sad", + "excited", + "friendly", + "terrified", + "shouting", + "unfriendly", + "whispering", + "hopeful" + ], + "defaultStyle": "friendly", + "stylePreview": { + "chat": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-arianeural:chat-en-us.mp3", + "customerservice": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-arianeural:customerservice-en-us.mp3", + "narration-professional": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-arianeural:narration-professional-en-us.mp3", + "newscast-casual": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-arianeural:newscast-casual-en-us.mp3", + "newscast-formal": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-arianeural:newscast-formal-en-us.mp3", + "cheerful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-arianeural:cheerful-en-us.mp3", + "empathetic": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-arianeural:empathetic-en-us.mp3", + "angry": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-arianeural:angry-en-us.mp3", + "sad": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-arianeural:sad-en-us.mp3", + "excited": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-arianeural:excited-en-us.mp3", + "friendly": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-arianeural:friendly-en-us.mp3", + "terrified": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-arianeural:terrified-en-us.mp3", + "shouting": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-arianeural:shouting-en-us.mp3", + "unfriendly": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-arianeural:unfriendly-en-us.mp3", + "whispering": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-arianeural:whispering-en-us.mp3", + "hopeful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-arianeural:hopeful-en-us.mp3" + }, + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-arianeural-en-us.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Amber", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-AmberNeural", + "icon": "us", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-amberneural-en-us.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Ana", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-AnaNeural", + "icon": "us", + "tags": [ + "child" + ], + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-ananeural-en-us.mp3", + "approxDurationCoeficient": 15 + }, + { + "voiceProvider": "azure", + "character": "Ashley", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-AshleyNeural", + "icon": "us", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-ashleyneural-en-us.mp3", + "approxDurationCoeficient": 16 + }, + { + "voiceProvider": "azure", + "character": "Cora", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-CoraNeural", + "icon": "us", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-coraneural-en-us.mp3", + "approxDurationCoeficient": 16 + }, + { + "voiceProvider": "azure", + "character": "Elizabeth", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-ElizabethNeural", + "icon": "us", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-elizabethneural-en-us.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Jenny M", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-JennyMultilingualNeural", + "icon": "us", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-jennymultilingualneural-en-us.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Michelle", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-MichelleNeural", + "icon": "us", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-michelleneural-en-us.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Monica", + "name": "English (United States)", + "locale": "en-US", + "voice": "en-US-MonicaNeural", + "icon": "us", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-us-monicaneural-en-us.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Leah", + "name": "English (South Africa)", + "locale": "en-ZA", + "voice": "en-ZA-LeahNeural", + "icon": "za", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-en-za-leahneural-en-us.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Elanor A", + "name": "English-AU", + "voice": "en-AU-Neural2-A", + "icon": "au", + "voiceProvider": "google", + "locale": "en-AU", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-en-au-neural2-a-en-us.mp3" + }, + { + "character": "Lucy C", + "name": "English-AU", + "voice": "en-AU-Neural2-C", + "icon": "au", + "voiceProvider": "google", + "locale": "en-AU", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-en-au-neural2-c-en-us.mp3" + }, + { + "character": "Daisy A", + "name": "English-GB", + "voice": "en-GB-Neural2-A", + "icon": "gb", + "voiceProvider": "google", + "locale": "en-GB", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-en-gb-neural2-a-en-us.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Scarlett C", + "name": "English-GB", + "voice": "en-GB-Neural2-C", + "icon": "gb", + "voiceProvider": "google", + "locale": "en-GB", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-en-gb-neural2-c-en-us.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Jane F", + "name": "English-GB", + "voice": "en-GB-Neural2-F", + "icon": "gb", + "voiceProvider": "google", + "locale": "en-GB", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-en-gb-neural2-f-en-us.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Lily A", + "name": "English-IN", + "voice": "en-IN-Neural2-A", + "icon": "in", + "voiceProvider": "google", + "locale": "en-IN", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-en-in-neural2-a-en-us.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Ella D", + "name": "English-IN", + "voice": "en-IN-Neural2-D", + "icon": "in", + "voiceProvider": "google", + "locale": "en-IN", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-en-in-neural2-d-en-us.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "juliet C", + "name": "English-US", + "voice": "en-US-Neural2-C", + "icon": "us", + "voiceProvider": "google", + "locale": "en-US", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-en-us-neural2-c-en-us.mp3" + }, + { + "character": "Ellie E", + "name": "English-US", + "voice": "en-US-Neural2-E", + "icon": "us", + "voiceProvider": "google", + "locale": "en-US", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-en-us-neural2-e-en-us.mp3" + }, + { + "character": "Evelyn F", + "name": "English-US", + "voice": "en-US-Neural2-F", + "icon": "us", + "voiceProvider": "google", + "locale": "en-US", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-en-us-neural2-f-en-us.mp3", + "approxDurationCoeficient": 18 + }, + { + "character": "Annie G", + "name": "English-US", + "voice": "en-US-Neural2-G", + "icon": "us", + "voiceProvider": "google", + "locale": "en-US", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-en-us-neural2-g-en-us.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Elanor H", + "name": "English-US", + "voice": "en-US-Neural2-H", + "icon": "us", + "voiceProvider": "google", + "locale": "en-US", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-en-us-neural2-h-en-us.mp3" + } + ] + }, + { + "name": "Afrikaans", + "male": [ + { + "voiceProvider": "azure", + "character": "Willem", + "name": "Afrikaans (South Africa)", + "locale": "af-ZA", + "voice": "af-ZA-WillemNeural", + "icon": "za", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-af-za-willemneural-af-za.mp3", + "approxDurationCoeficient": 17 + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Adri", + "name": "Afrikaans (South Africa)", + "locale": "af-ZA", + "voice": "af-ZA-AdriNeural", + "icon": "za", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-af-za-adrineural-af-za.mp3", + "approxDurationCoeficient": 16 + } + ] + }, + { + "name": "Albanian", + "male": [ + { + "voiceProvider": "azure", + "character": "Ilir", + "name": "Albanian (Albania)", + "locale": "sq-AL", + "voice": "sq-AL-IlirNeural", + "icon": "al", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-sq-al-ilirneural-sq-al.mp3", + "approxDurationCoeficient": 16 + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Anila", + "name": "Albanian (Albania)", + "locale": "sq-AL", + "voice": "sq-AL-AnilaNeural", + "icon": "al", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-sq-al-anilaneural-sq-al.mp3", + "approxDurationCoeficient": 17 + } + ] + }, + { + "name": "Amharic", + "male": [ + { + "voiceProvider": "azure", + "character": "Ameha", + "name": "Amharic (Ethiopia)", + "locale": "am-ET", + "voice": "am-ET-AmehaNeural", + "icon": "et", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-am-et-amehaneural-am-et.mp3", + "approxDurationCoeficient": 12 + }, + { + "character": "Oscar B", + "name": "Amharic-ET", + "voice": "am-ET-Wavenet-B", + "icon": "et", + "voiceProvider": "google", + "locale": "am-ET", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-am-et-wavenet-b-am-et.mp3" + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Mekdes", + "name": "Amharic (Ethiopia)", + "locale": "am-ET", + "voice": "am-ET-MekdesNeural", + "icon": "et", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-am-et-mekdesneural-am-et.mp3", + "approxDurationCoeficient": 11 + }, + { + "character": "Elanor A", + "name": "Amharic-ET", + "voice": "am-ET-Wavenet-A", + "icon": "et", + "voiceProvider": "google", + "locale": "am-ET", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-am-et-wavenet-a-am-et.mp3", + "approxDurationCoeficient": 13 + } + ] + }, + { + "name": "Arabic", + "male": [ + { + "voiceProvider": "azure", + "character": "Hamdan", + "name": "Arabic (United Arab Emirates)", + "locale": "ar-AE", + "voice": "ar-AE-HamdanNeural", + "icon": "ae", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ar-ae-hamdanneural-ar-ae.mp3", + "approxDurationCoeficient": 12 + }, + { + "character": "Antoni", + "voice": "ErXwobaYiN019PkySvjV", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "well-rounded", + "calm" + ], + "order": 1, + "name": "Arabic (United Arab Emirates)", + "locale": "ar-AE", + "icon": "ae", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-erxwobayin019pkysvjv-ar-ae.mp3", + "approxDurationCoeficient": 12 + }, + { + "character": "Josh", + "voice": "TxGEqnHWrfWFTfGW9XjX", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "young" + ], + "order": 2, + "name": "Arabic (United Arab Emirates)", + "locale": "ar-AE", + "icon": "ae", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-txgeqnhwrfwftfgw9xjx-ar-ae.mp3", + "approxDurationCoeficient": 12 + }, + { + "character": "Arnold", + "voice": "VR6AewLTigWG4xSOukaG", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "crisp", + "middle-aged" + ], + "order": 3, + "name": "Arabic (United Arab Emirates)", + "locale": "ar-AE", + "icon": "ae", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-vr6aewltigwg4xsoukag-ar-ae.mp3", + "approxDurationCoeficient": 13 + }, + { + "character": "Adam", + "voice": "pNInz6obpgDQGcFmaJgB", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "middle-aged" + ], + "order": 4, + "name": "Arabic (United Arab Emirates)", + "locale": "ar-AE", + "icon": "ae", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pninz6obpgdqgcfmajgb-ar-ae.mp3", + "approxDurationCoeficient": 9 + }, + { + "character": "Bill", + "voice": "pqHfZKP75CvOlQylNhV4", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "strong", + "middle-aged" + ], + "order": 5, + "name": "Arabic (United Arab Emirates)", + "locale": "ar-AE", + "icon": "ae", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pqhfzkp75cvolqylnhv4-ar-ae.mp3", + "approxDurationCoeficient": 10 + }, + { + "character": "Jessie", + "voice": "t0jbNlBVZ17f02VDIeMI", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "fast-paced", + "old" + ], + "order": 6, + "name": "Arabic (United Arab Emirates)", + "locale": "ar-AE", + "icon": "ae", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-t0jbnlbvz17f02vdiemi-ar-ae.mp3", + "approxDurationCoeficient": 10 + }, + { + "character": "Michael", + "voice": "flq6f7yk4E4fJM5XTYuZ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "orutund", + "old" + ], + "order": 7, + "name": "Arabic (United Arab Emirates)", + "locale": "ar-AE", + "icon": "ae", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-flq6f7yk4e4fjm5xtyuz-ar-ae.mp3", + "approxDurationCoeficient": 11 + }, + { + "character": "Liam", + "voice": "TX3LPaxmHKxFdv7VOQHJ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "neutral", + "young" + ], + "order": 8, + "name": "Arabic (United Arab Emirates)", + "locale": "ar-AE", + "icon": "ae", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-tx3lpaxmhkxfdv7voqhj-ar-ae.mp3", + "approxDurationCoeficient": 11 + }, + { + "character": "Harry", + "voice": "SOYHLrjzK2X1ezoPC6cr", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "anxious", + "young" + ], + "order": 9, + "name": "Arabic (United Arab Emirates)", + "locale": "ar-AE", + "icon": "ae", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-soyhlrjzk2x1ezopc6cr-ar-ae.mp3", + "approxDurationCoeficient": 12 + }, + { + "character": "Patrick", + "voice": "ODq5zmih8GrVes37Dizd", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "shouty", + "middle-aged" + ], + "order": 10, + "name": "Arabic (United Arab Emirates)", + "locale": "ar-AE", + "icon": "ae", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-odq5zmih8grves37dizd-ar-ae.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Thomas", + "voice": "GBv7mTt0atIp3Br8iCZE", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 11, + "name": "Arabic (United Arab Emirates)", + "locale": "ar-AE", + "icon": "ae", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-gbv7mtt0atip3br8icze-ar-ae.mp3", + "approxDurationCoeficient": 8 + }, + { + "character": "Drew", + "voice": "29vD33N1CtxCmqQRPOHJ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "well-rounded", + "middle-aged" + ], + "order": 12, + "name": "Arabic (United Arab Emirates)", + "locale": "ar-AE", + "icon": "ae", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-29vd33n1ctxcmqqrpohj-ar-ae.mp3", + "approxDurationCoeficient": 9 + }, + { + "character": "Paul", + "voice": "5Q0t7uMcjvnagumLfvZi", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "narration", + "middle-aged" + ], + "order": 13, + "name": "Arabic (United Arab Emirates)", + "locale": "ar-AE", + "icon": "ae", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-5q0t7umcjvnagumlfvzi-ar-ae.mp3", + "approxDurationCoeficient": 9 + }, + { + "character": "Callum", + "voice": "N2lVS1w4EtoT3dr4eOWO", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "masculine", + "middle-aged" + ], + "order": 14, + "name": "Arabic (United Arab Emirates)", + "locale": "ar-AE", + "icon": "ae", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-n2lvs1w4etot3dr4eowo-ar-ae.mp3", + "approxDurationCoeficient": 12 + }, + { + "character": "Giovanni", + "voice": "zcAOhNBS3c14rBihAFp1", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "italian-accent", + "young" + ], + "order": 15, + "name": "Arabic (United Arab Emirates)", + "locale": "ar-AE", + "icon": "ae", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zcaohnbs3c14rbihafp1-ar-ae.mp3" + }, + { + "character": "Clyde", + "voice": "2EiwWnXFnvU5JabPnv8n", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "masculine", + "middle-aged" + ], + "order": 17, + "name": "Arabic (United Arab Emirates)", + "locale": "ar-AE", + "icon": "ae", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-2eiwwnxfnvu5jabpnv8n-ar-ae.mp3", + "approxDurationCoeficient": 12 + }, + { + "character": "George", + "voice": "JBFqnCBsd6RMkjVDRZzb", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "raspy", + "narration" + ], + "order": 19, + "name": "Arabic (United Arab Emirates)", + "locale": "ar-AE", + "icon": "ae", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-jbfqncbsd6rmkjvdrzzb-ar-ae.mp3" + }, + { + "character": "Dave", + "voice": "CYw3kZ02Hs0563khs1Fj", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "essex-accent", + "young" + ], + "order": 20, + "name": "Arabic (United Arab Emirates)", + "locale": "ar-AE", + "icon": "ae", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-cyw3kz02hs0563khs1fj-ar-ae.mp3", + "approxDurationCoeficient": 13 + }, + { + "character": "Joseph", + "voice": "Zlb1dXrM653N07WRdFW3", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "upbeat", + "middle-aged" + ], + "order": 21, + "name": "Arabic (United Arab Emirates)", + "locale": "ar-AE", + "icon": "ae", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zlb1dxrm653n07wrdfw3-ar-ae.mp3", + "approxDurationCoeficient": 10 + }, + { + "character": "Daniel", + "voice": "onwK4e9ZLuTAKqWW03F9", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "middle-aged" + ], + "order": 22, + "name": "Arabic (United Arab Emirates)", + "locale": "ar-AE", + "icon": "ae", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-onwk4e9zlutakqww03f9-ar-ae.mp3", + "approxDurationCoeficient": 10 + }, + { + "character": "Charlie", + "voice": "IKne3meq5aSn9XLyUdCD", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "casual", + "middle-aged" + ], + "order": 23, + "name": "Arabic (United Arab Emirates)", + "locale": "ar-AE", + "icon": "ae", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-ikne3meq5asn9xlyudcd-ar-ae.mp3", + "approxDurationCoeficient": 11 + }, + { + "character": "James", + "voice": "ZQe5CZNOzWyzPSCn5a3c", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "old" + ], + "order": 24, + "name": "Arabic (United Arab Emirates)", + "locale": "ar-AE", + "icon": "ae", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zqe5cznozwyzpscn5a3c-ar-ae.mp3", + "approxDurationCoeficient": 12 + }, + { + "character": "Fin", + "voice": "D38z5RcWu1voky8WS1ja", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "sailor", + "old" + ], + "order": 25, + "name": "Arabic (United Arab Emirates)", + "locale": "ar-AE", + "icon": "ae", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-d38z5rcwu1voky8ws1ja-ar-ae.mp3" + }, + { + "character": "Jeremy", + "voice": "bVMeCyTHy58xNoL34h3p", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "excited", + "young" + ], + "order": 26, + "name": "Arabic (United Arab Emirates)", + "locale": "ar-AE", + "icon": "ae", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-bvmecythy58xnol34h3p-ar-ae.mp3", + "approxDurationCoeficient": 20 + }, + { + "character": "Chris", + "voice": "iP95p4xoKVk53GoZ742B", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Arabic (United Arab Emirates)", + "locale": "ar-AE", + "icon": "ae", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-ip95p4xokvk53goz742b-ar-ae.mp3" + }, + { + "character": "Brian", + "voice": "nPczCjzI2devNBz1zQrb", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Arabic (United Arab Emirates)", + "locale": "ar-AE", + "icon": "ae", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-npczcjzi2devnbz1zqrb-ar-ae.mp3" + }, + { + "character": "Sam", + "voice": "yoZ06aMxZJJ28mfd3POQ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "fast-paced", + "young" + ], + "order": 99999, + "name": "Arabic (United Arab Emirates)", + "locale": "ar-AE", + "icon": "ae", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-yoz06amxzjj28mfd3poq-ar-ae.mp3" + }, + { + "voiceProvider": "azure", + "character": "Ali", + "name": "Arabic (Bahrain)", + "locale": "ar-BH", + "voice": "ar-BH-AliNeural", + "icon": "bh", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ar-bh-alineural-ar-ae.mp3", + "approxDurationCoeficient": 13 + }, + { + "voiceProvider": "azure", + "character": "Ismael", + "name": "Arabic (Algeria)", + "locale": "ar-DZ", + "voice": "ar-DZ-IsmaelNeural", + "icon": "dz", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ar-dz-ismaelneural-ar-ae.mp3", + "approxDurationCoeficient": 13 + }, + { + "voiceProvider": "azure", + "character": "Shakir", + "name": "Arabic (Egypt)", + "locale": "ar-EG", + "voice": "ar-EG-ShakirNeural", + "icon": "eg", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ar-eg-shakirneural-ar-ae.mp3", + "approxDurationCoeficient": 14 + }, + { + "voiceProvider": "azure", + "character": "Bassel", + "name": "Arabic (Iraq)", + "locale": "ar-IQ", + "voice": "ar-IQ-BasselNeural", + "icon": "iq", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ar-iq-basselneural-ar-ae.mp3", + "approxDurationCoeficient": 13 + }, + { + "voiceProvider": "azure", + "character": "Taim", + "name": "Arabic (Jordan)", + "locale": "ar-JO", + "voice": "ar-JO-TaimNeural", + "icon": "jo", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ar-jo-taimneural-ar-ae.mp3", + "approxDurationCoeficient": 15 + }, + { + "voiceProvider": "azure", + "character": "Fahed", + "name": "Arabic (Kuwait)", + "locale": "ar-KW", + "voice": "ar-KW-FahedNeural", + "icon": "kw", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ar-kw-fahedneural-ar-ae.mp3", + "approxDurationCoeficient": 13 + }, + { + "voiceProvider": "azure", + "character": "Rami", + "name": "Arabic (Lebanon)", + "locale": "ar-LB", + "voice": "ar-LB-RamiNeural", + "icon": "lb", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ar-lb-ramineural-ar-ae.mp3", + "approxDurationCoeficient": 12 + }, + { + "voiceProvider": "azure", + "character": "Omar", + "name": "Arabic (Libya)", + "locale": "ar-LY", + "voice": "ar-LY-OmarNeural", + "icon": "ly", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ar-ly-omarneural-ar-ae.mp3", + "approxDurationCoeficient": 13 + }, + { + "voiceProvider": "azure", + "character": "Jamal", + "name": "Arabic (Morocco)", + "locale": "ar-MA", + "voice": "ar-MA-JamalNeural", + "icon": "ma", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ar-ma-jamalneural-ar-ae.mp3", + "approxDurationCoeficient": 14 + }, + { + "voiceProvider": "azure", + "character": "Abdullah", + "name": "Arabic (Oman)", + "locale": "ar-OM", + "voice": "ar-OM-AbdullahNeural", + "icon": "om", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ar-om-abdullahneural-ar-ae.mp3", + "approxDurationCoeficient": 14 + }, + { + "voiceProvider": "azure", + "character": "Moaz", + "name": "Arabic (Qatar)", + "locale": "ar-QA", + "voice": "ar-QA-MoazNeural", + "icon": "qa", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ar-qa-moazneural-ar-ae.mp3", + "approxDurationCoeficient": 13 + }, + { + "voiceProvider": "azure", + "character": "Hamed", + "name": "Arabic (Saudi Arabia)", + "locale": "ar-SA", + "voice": "ar-SA-HamedNeural", + "icon": "sa", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ar-sa-hamedneural-ar-ae.mp3", + "approxDurationCoeficient": 12 + }, + { + "voiceProvider": "azure", + "character": "Laith", + "name": "Arabic (Syria)", + "locale": "ar-SY", + "voice": "ar-SY-LaithNeural", + "icon": "sy", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ar-sy-laithneural-ar-ae.mp3", + "approxDurationCoeficient": 14 + }, + { + "voiceProvider": "azure", + "character": "Hedi", + "name": "Arabic (Tunisia)", + "locale": "ar-TN", + "voice": "ar-TN-HediNeural", + "icon": "tn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ar-tn-hedineural-ar-ae.mp3", + "approxDurationCoeficient": 13 + }, + { + "voiceProvider": "azure", + "character": "Saleh", + "name": "Arabic (Yemen)", + "locale": "ar-YE", + "voice": "ar-YE-SalehNeural", + "icon": "ye", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ar-ye-salehneural-ar-ae.mp3", + "approxDurationCoeficient": 13 + }, + { + "character": "Zayn B", + "name": "Arabic-XA", + "voice": "ar-XA-Wavenet-B", + "icon": "xa", + "voiceProvider": "google", + "locale": "ar-XA", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-ar-xa-wavenet-b-ar-ae.mp3", + "approxDurationCoeficient": 13 + }, + { + "character": "Amir C", + "name": "Arabic-XA", + "voice": "ar-XA-Wavenet-C", + "icon": "xa", + "voiceProvider": "google", + "locale": "ar-XA", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-ar-xa-wavenet-c-ar-ae.mp3", + "approxDurationCoeficient": 13 + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Fatima", + "name": "Arabic (United Arab Emirates)", + "locale": "ar-AE", + "voice": "ar-AE-FatimaNeural", + "icon": "ae", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ar-ae-fatimaneural-ar-ae.mp3", + "approxDurationCoeficient": 11 + }, + { + "character": "Rachel", + "voice": "21m00Tcm4TlvDq8ikWAM", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 1, + "name": "Arabic (United Arab Emirates)", + "locale": "ar-AE", + "icon": "ae", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-21m00tcm4tlvdq8ikwam-ar-ae.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "Matilda", + "voice": "XrExE9yKIg1WjnnlVkGX", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 3, + "name": "Arabic (United Arab Emirates)", + "locale": "ar-AE", + "icon": "ae", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xrexe9ykig1wjnnlvkgx-ar-ae.mp3", + "approxDurationCoeficient": 12 + }, + { + "character": "Grace", + "voice": "oWAxZDx7w5VEj9dCyTzz", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "southern-accent", + "young" + ], + "order": 4, + "name": "Arabic (United Arab Emirates)", + "locale": "ar-AE", + "icon": "ae", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-owaxzdx7w5vej9dcytzz-ar-ae.mp3", + "approxDurationCoeficient": 12 + }, + { + "character": "Domi", + "voice": "AZnzlk1XvdvUeBnXmlld", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "upbeat", + "young" + ], + "order": 5, + "name": "Arabic (United Arab Emirates)", + "locale": "ar-AE", + "icon": "ae", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-aznzlk1xvdvuebnxmlld-ar-ae.mp3", + "approxDurationCoeficient": 11 + }, + { + "character": "Gigi", + "voice": "jBpfuIE2acCO8z3wKNLl", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "childish", + "young" + ], + "order": 6, + "name": "Arabic (United Arab Emirates)", + "locale": "ar-AE", + "icon": "ae", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-jbpfuie2acco8z3wknll-ar-ae.mp3", + "approxDurationCoeficient": 13 + }, + { + "character": "Serena", + "voice": "pMsXgVXv3BLzUgSXRplE", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "order": 7, + "name": "Arabic (United Arab Emirates)", + "locale": "ar-AE", + "icon": "ae", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pmsxgvxv3blzugsxrple-ar-ae.mp3", + "approxDurationCoeficient": 10 + }, + { + "character": "Glinda", + "voice": "z9fAnlkpzviPz146aGWa", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "strong", + "middle-aged" + ], + "order": 8, + "name": "Arabic (United Arab Emirates)", + "locale": "ar-AE", + "icon": "ae", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-z9fanlkpzvipz146agwa-ar-ae.mp3", + "approxDurationCoeficient": 9 + }, + { + "character": "Mimi", + "voice": "zrHiDhphv9ZnVXBqCLjz", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "childish", + "young" + ], + "order": 9, + "name": "Arabic (United Arab Emirates)", + "locale": "ar-AE", + "icon": "ae", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zrhidhphv9znvxbqcljz-ar-ae.mp3", + "approxDurationCoeficient": 9 + }, + { + "character": "Emily", + "voice": "LcfcDJNUP1GQjkzn1xUU", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "order": 10, + "name": "Arabic (United Arab Emirates)", + "locale": "ar-AE", + "icon": "ae", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-lcfcdjnup1gqjkzn1xuu-ar-ae.mp3", + "approxDurationCoeficient": 7 + }, + { + "character": "Lily", + "voice": "pFZP5JQG7iQjIQuC4Bku", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "raspy", + "middle-aged" + ], + "order": 11, + "name": "Arabic (United Arab Emirates)", + "locale": "ar-AE", + "icon": "ae", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pfzp5jqg7iqjiquc4bku-ar-ae.mp3", + "approxDurationCoeficient": 11 + }, + { + "character": "Charlotte", + "voice": "XB0fDUnXU5powFXDhCwa", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "swedish-accent", + "young" + ], + "order": 12, + "name": "Arabic (United Arab Emirates)", + "locale": "ar-AE", + "icon": "ae", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xb0fdunxu5powfxdhcwa-ar-ae.mp3", + "approxDurationCoeficient": 9 + }, + { + "character": "Dorothy", + "voice": "ThT5KcBeYPX3keUQqHPh", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 13, + "name": "Arabic (United Arab Emirates)", + "locale": "ar-AE", + "icon": "ae", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-tht5kcbeypx3keuqqhph-ar-ae.mp3", + "approxDurationCoeficient": 10 + }, + { + "character": "Sarah", + "voice": "EXAVITQu4vr4xnSDxMaL", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 99999, + "name": "Arabic (United Arab Emirates)", + "locale": "ar-AE", + "icon": "ae", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-exavitqu4vr4xnsdxmal-ar-ae.mp3", + "approxDurationCoeficient": 12 + }, + { + "character": "Alice", + "voice": "Xb7hH8MSUJpSbSDYk0k2", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Arabic (United Arab Emirates)", + "locale": "ar-AE", + "icon": "ae", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xb7hh8msujpsbsdyk0k2-ar-ae.mp3", + "approxDurationCoeficient": 12 + }, + { + "voiceProvider": "azure", + "character": "Laila", + "name": "Arabic (Bahrain)", + "locale": "ar-BH", + "voice": "ar-BH-LailaNeural", + "icon": "bh", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ar-bh-lailaneural-ar-ae.mp3", + "approxDurationCoeficient": 11 + }, + { + "voiceProvider": "azure", + "character": "Amina", + "name": "Arabic (Algeria)", + "locale": "ar-DZ", + "voice": "ar-DZ-AminaNeural", + "icon": "dz", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ar-dz-aminaneural-ar-ae.mp3", + "approxDurationCoeficient": 12 + }, + { + "voiceProvider": "azure", + "character": "Salma", + "name": "Arabic (Egypt)", + "locale": "ar-EG", + "voice": "ar-EG-SalmaNeural", + "icon": "eg", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ar-eg-salmaneural-ar-ae.mp3", + "approxDurationCoeficient": 11 + }, + { + "voiceProvider": "azure", + "character": "Rana", + "name": "Arabic (Iraq)", + "locale": "ar-IQ", + "voice": "ar-IQ-RanaNeural", + "icon": "iq", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ar-iq-rananeural-ar-ae.mp3", + "approxDurationCoeficient": 11 + }, + { + "voiceProvider": "azure", + "character": "Sana", + "name": "Arabic (Jordan)", + "locale": "ar-JO", + "voice": "ar-JO-SanaNeural", + "icon": "jo", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ar-jo-sananeural-ar-ae.mp3", + "approxDurationCoeficient": 11 + }, + { + "voiceProvider": "azure", + "character": "Noura", + "name": "Arabic (Kuwait)", + "locale": "ar-KW", + "voice": "ar-KW-NouraNeural", + "icon": "kw", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ar-kw-nouraneural-ar-ae.mp3", + "approxDurationCoeficient": 12 + }, + { + "voiceProvider": "azure", + "character": "Layla", + "name": "Arabic (Lebanon)", + "locale": "ar-LB", + "voice": "ar-LB-LaylaNeural", + "icon": "lb", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ar-lb-laylaneural-ar-ae.mp3", + "approxDurationCoeficient": 13 + }, + { + "voiceProvider": "azure", + "character": "Iman", + "name": "Arabic (Libya)", + "locale": "ar-LY", + "voice": "ar-LY-ImanNeural", + "icon": "ly", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ar-ly-imanneural-ar-ae.mp3", + "approxDurationCoeficient": 12 + }, + { + "voiceProvider": "azure", + "character": "Mouna", + "name": "Arabic (Morocco)", + "locale": "ar-MA", + "voice": "ar-MA-MounaNeural", + "icon": "ma", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ar-ma-mounaneural-ar-ae.mp3", + "approxDurationCoeficient": 14 + }, + { + "voiceProvider": "azure", + "character": "Aysha", + "name": "Arabic (Oman)", + "locale": "ar-OM", + "voice": "ar-OM-AyshaNeural", + "icon": "om", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ar-om-ayshaneural-ar-ae.mp3", + "approxDurationCoeficient": 13 + }, + { + "voiceProvider": "azure", + "character": "Amal", + "name": "Arabic (Qatar)", + "locale": "ar-QA", + "voice": "ar-QA-AmalNeural", + "icon": "qa", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ar-qa-amalneural-ar-ae.mp3", + "approxDurationCoeficient": 12 + }, + { + "voiceProvider": "azure", + "character": "Zariyah", + "name": "Arabic (Saudi Arabia)", + "locale": "ar-SA", + "voice": "ar-SA-ZariyahNeural", + "icon": "sa", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ar-sa-zariyahneural-ar-ae.mp3", + "approxDurationCoeficient": 12 + }, + { + "voiceProvider": "azure", + "character": "Amany", + "name": "Arabic (Syria)", + "locale": "ar-SY", + "voice": "ar-SY-AmanyNeural", + "icon": "sy", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ar-sy-amanyneural-ar-ae.mp3", + "approxDurationCoeficient": 13 + }, + { + "voiceProvider": "azure", + "character": "Reem", + "name": "Arabic (Tunisia)", + "locale": "ar-TN", + "voice": "ar-TN-ReemNeural", + "icon": "tn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ar-tn-reemneural-ar-ae.mp3", + "approxDurationCoeficient": 13 + }, + { + "voiceProvider": "azure", + "character": "Maryam", + "name": "Arabic (Yemen)", + "locale": "ar-YE", + "voice": "ar-YE-MaryamNeural", + "icon": "ye", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ar-ye-maryamneural-ar-ae.mp3", + "approxDurationCoeficient": 13 + }, + { + "character": "Lila A", + "name": "Arabic-XA", + "voice": "ar-XA-Wavenet-A", + "icon": "xa", + "voiceProvider": "google", + "locale": "ar-XA", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-ar-xa-wavenet-a-ar-ae.mp3", + "approxDurationCoeficient": 12 + }, + { + "character": "Yara D", + "name": "Arabic-XA", + "voice": "ar-XA-Wavenet-D", + "icon": "xa", + "voiceProvider": "google", + "locale": "ar-XA", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-ar-xa-wavenet-d-ar-ae.mp3", + "approxDurationCoeficient": 12 + } + ] + }, + { + "name": "Armenian", + "male": [ + { + "voiceProvider": "azure", + "character": "Hayk", + "name": "Armenian (Armenia)", + "locale": "hy-AM", + "voice": "hy-AM-HaykNeural", + "icon": "am", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-hy-am-haykneural-hy-am.mp3", + "approxDurationCoeficient": 16 + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Anahit", + "name": "Armenian (Armenia)", + "locale": "hy-AM", + "voice": "hy-AM-AnahitNeural", + "icon": "am", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-hy-am-anahitneural-hy-am.mp3", + "approxDurationCoeficient": 15 + } + ] + }, + { + "name": "Azerbaijani", + "male": [ + { + "voiceProvider": "azure", + "character": "Babek", + "name": "Azerbaijani (Latin, Azerbaijan)", + "locale": "az-AZ", + "voice": "az-AZ-BabekNeural", + "icon": "az", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-az-az-babekneural-az-az.mp3", + "approxDurationCoeficient": 17 + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Banu", + "name": "Azerbaijani (Latin, Azerbaijan)", + "locale": "az-AZ", + "voice": "az-AZ-BanuNeural", + "icon": "az", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-az-az-banuneural-az-az.mp3", + "approxDurationCoeficient": 17 + } + ] + }, + { + "name": "Bangla", + "male": [ + { + "voiceProvider": "azure", + "character": "Pradeep", + "name": "Bangla (Bangladesh)", + "locale": "bn-BD", + "voice": "bn-BD-PradeepNeural", + "icon": "bd", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-bn-bd-pradeepneural-bn-bd.mp3", + "approxDurationCoeficient": 15 + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Nabanita", + "name": "Bangla (Bangladesh)", + "locale": "bn-BD", + "voice": "bn-BD-NabanitaNeural", + "icon": "bd", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-bn-bd-nabanitaneural-bn-bd.mp3", + "approxDurationCoeficient": 15 + } + ] + }, + { + "name": "Basque", + "male": [ + { + "voiceProvider": "azure", + "character": "Ander", + "name": "Basque", + "locale": "eu-ES", + "voice": "eu-ES-AnderNeural", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-eu-es-anderneural-eu-es.mp3", + "approxDurationCoeficient": 14 + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Ainhoa", + "name": "Basque", + "locale": "eu-ES", + "voice": "eu-ES-AinhoaNeural", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-eu-es-ainhoaneural-eu-es.mp3", + "approxDurationCoeficient": 14 + } + ] + }, + { + "name": "Bengali", + "male": [ + { + "voiceProvider": "azure", + "character": "Bashkar", + "name": "Bengali (India)", + "locale": "bn-IN", + "voice": "bn-IN-BashkarNeural", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-bn-in-bashkarneural-bn-in.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Oscar B", + "name": "Bengali-IN", + "voice": "bn-IN-Wavenet-B", + "icon": "in", + "voiceProvider": "google", + "locale": "bn-IN", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-bn-in-wavenet-b-bn-in.mp3" + }, + { + "character": "Miles D", + "name": "Bengali-IN", + "voice": "bn-IN-Wavenet-D", + "icon": "in", + "voiceProvider": "google", + "locale": "bn-IN", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-bn-in-wavenet-d-bn-in.mp3" + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Tanishaa", + "name": "Bengali (India)", + "locale": "bn-IN", + "voice": "bn-IN-TanishaaNeural", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-bn-in-tanishaaneural-bn-in.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "Elanor A", + "name": "Bengali-IN", + "voice": "bn-IN-Wavenet-A", + "icon": "in", + "voiceProvider": "google", + "locale": "bn-IN", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-bn-in-wavenet-a-bn-in.mp3" + }, + { + "character": "Lucy C", + "name": "Bengali-IN", + "voice": "bn-IN-Wavenet-C", + "icon": "in", + "voiceProvider": "google", + "locale": "bn-IN", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-bn-in-wavenet-c-bn-in.mp3", + "approxDurationCoeficient": 6 + } + ] + }, + { + "name": "Bosnian", + "male": [ + { + "voiceProvider": "azure", + "character": "Goran", + "name": "Bosnian (Bosnia and Herzegovina)", + "locale": "bs-BA", + "voice": "bs-BA-GoranNeural", + "icon": "ba", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-bs-ba-goranneural-bs-ba.mp3", + "approxDurationCoeficient": 17 + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Vesna", + "name": "Bosnian (Bosnia and Herzegovina)", + "locale": "bs-BA", + "voice": "bs-BA-VesnaNeural", + "icon": "ba", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-bs-ba-vesnaneural-bs-ba.mp3", + "approxDurationCoeficient": 18 + } + ] + }, + { + "name": "Bulgarian", + "male": [ + { + "voiceProvider": "azure", + "character": "Borislav", + "name": "Bulgarian (Bulgaria)", + "locale": "bg-BG", + "voice": "bg-BG-BorislavNeural", + "icon": "bg", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-bg-bg-borislavneural-bg-bg.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Antoni", + "voice": "ErXwobaYiN019PkySvjV", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "well-rounded", + "calm" + ], + "order": 1, + "name": "Bulgarian (Bulgaria)", + "locale": "bg-BG", + "icon": "bg", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-erxwobayin019pkysvjv-bg-bg.mp3" + }, + { + "character": "Josh", + "voice": "TxGEqnHWrfWFTfGW9XjX", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "young" + ], + "order": 2, + "name": "Bulgarian (Bulgaria)", + "locale": "bg-BG", + "icon": "bg", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-txgeqnhwrfwftfgw9xjx-bg-bg.mp3" + }, + { + "character": "Arnold", + "voice": "VR6AewLTigWG4xSOukaG", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "crisp", + "middle-aged" + ], + "order": 3, + "name": "Bulgarian (Bulgaria)", + "locale": "bg-BG", + "icon": "bg", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-vr6aewltigwg4xsoukag-bg-bg.mp3" + }, + { + "character": "Adam", + "voice": "pNInz6obpgDQGcFmaJgB", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "middle-aged" + ], + "order": 4, + "name": "Bulgarian (Bulgaria)", + "locale": "bg-BG", + "icon": "bg", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pninz6obpgdqgcfmajgb-bg-bg.mp3" + }, + { + "character": "Bill", + "voice": "pqHfZKP75CvOlQylNhV4", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "strong", + "middle-aged" + ], + "order": 5, + "name": "Bulgarian (Bulgaria)", + "locale": "bg-BG", + "icon": "bg", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pqhfzkp75cvolqylnhv4-bg-bg.mp3" + }, + { + "character": "Jessie", + "voice": "t0jbNlBVZ17f02VDIeMI", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "fast-paced", + "old" + ], + "order": 6, + "name": "Bulgarian (Bulgaria)", + "locale": "bg-BG", + "icon": "bg", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-t0jbnlbvz17f02vdiemi-bg-bg.mp3" + }, + { + "character": "Michael", + "voice": "flq6f7yk4E4fJM5XTYuZ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "orutund", + "old" + ], + "order": 7, + "name": "Bulgarian (Bulgaria)", + "locale": "bg-BG", + "icon": "bg", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-flq6f7yk4e4fjm5xtyuz-bg-bg.mp3" + }, + { + "character": "Liam", + "voice": "TX3LPaxmHKxFdv7VOQHJ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "neutral", + "young" + ], + "order": 8, + "name": "Bulgarian (Bulgaria)", + "locale": "bg-BG", + "icon": "bg", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-tx3lpaxmhkxfdv7voqhj-bg-bg.mp3" + }, + { + "character": "Harry", + "voice": "SOYHLrjzK2X1ezoPC6cr", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "anxious", + "young" + ], + "order": 9, + "name": "Bulgarian (Bulgaria)", + "locale": "bg-BG", + "icon": "bg", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-soyhlrjzk2x1ezopc6cr-bg-bg.mp3" + }, + { + "character": "Patrick", + "voice": "ODq5zmih8GrVes37Dizd", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "shouty", + "middle-aged" + ], + "order": 10, + "name": "Bulgarian (Bulgaria)", + "locale": "bg-BG", + "icon": "bg", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-odq5zmih8grves37dizd-bg-bg.mp3" + }, + { + "character": "Thomas", + "voice": "GBv7mTt0atIp3Br8iCZE", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 11, + "name": "Bulgarian (Bulgaria)", + "locale": "bg-BG", + "icon": "bg", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-gbv7mtt0atip3br8icze-bg-bg.mp3" + }, + { + "character": "Drew", + "voice": "29vD33N1CtxCmqQRPOHJ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "well-rounded", + "middle-aged" + ], + "order": 12, + "name": "Bulgarian (Bulgaria)", + "locale": "bg-BG", + "icon": "bg", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-29vd33n1ctxcmqqrpohj-bg-bg.mp3" + }, + { + "character": "Paul", + "voice": "5Q0t7uMcjvnagumLfvZi", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "narration", + "middle-aged" + ], + "order": 13, + "name": "Bulgarian (Bulgaria)", + "locale": "bg-BG", + "icon": "bg", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-5q0t7umcjvnagumlfvzi-bg-bg.mp3" + }, + { + "character": "Callum", + "voice": "N2lVS1w4EtoT3dr4eOWO", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "masculine", + "middle-aged" + ], + "order": 14, + "name": "Bulgarian (Bulgaria)", + "locale": "bg-BG", + "icon": "bg", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-n2lvs1w4etot3dr4eowo-bg-bg.mp3" + }, + { + "character": "Giovanni", + "voice": "zcAOhNBS3c14rBihAFp1", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "italian-accent", + "young" + ], + "order": 15, + "name": "Bulgarian (Bulgaria)", + "locale": "bg-BG", + "icon": "bg", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zcaohnbs3c14rbihafp1-bg-bg.mp3" + }, + { + "character": "Clyde", + "voice": "2EiwWnXFnvU5JabPnv8n", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "masculine", + "middle-aged" + ], + "order": 17, + "name": "Bulgarian (Bulgaria)", + "locale": "bg-BG", + "icon": "bg", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-2eiwwnxfnvu5jabpnv8n-bg-bg.mp3" + }, + { + "character": "George", + "voice": "JBFqnCBsd6RMkjVDRZzb", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "raspy", + "narration" + ], + "order": 19, + "name": "Bulgarian (Bulgaria)", + "locale": "bg-BG", + "icon": "bg", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-jbfqncbsd6rmkjvdrzzb-bg-bg.mp3" + }, + { + "character": "Dave", + "voice": "CYw3kZ02Hs0563khs1Fj", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "essex-accent", + "young" + ], + "order": 20, + "name": "Bulgarian (Bulgaria)", + "locale": "bg-BG", + "icon": "bg", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-cyw3kz02hs0563khs1fj-bg-bg.mp3" + }, + { + "character": "Joseph", + "voice": "Zlb1dXrM653N07WRdFW3", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "upbeat", + "middle-aged" + ], + "order": 21, + "name": "Bulgarian (Bulgaria)", + "locale": "bg-BG", + "icon": "bg", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zlb1dxrm653n07wrdfw3-bg-bg.mp3" + }, + { + "character": "Daniel", + "voice": "onwK4e9ZLuTAKqWW03F9", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "middle-aged" + ], + "order": 22, + "name": "Bulgarian (Bulgaria)", + "locale": "bg-BG", + "icon": "bg", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-onwk4e9zlutakqww03f9-bg-bg.mp3" + }, + { + "character": "Charlie", + "voice": "IKne3meq5aSn9XLyUdCD", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "casual", + "middle-aged" + ], + "order": 23, + "name": "Bulgarian (Bulgaria)", + "locale": "bg-BG", + "icon": "bg", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-ikne3meq5asn9xlyudcd-bg-bg.mp3" + }, + { + "character": "James", + "voice": "ZQe5CZNOzWyzPSCn5a3c", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "old" + ], + "order": 24, + "name": "Bulgarian (Bulgaria)", + "locale": "bg-BG", + "icon": "bg", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zqe5cznozwyzpscn5a3c-bg-bg.mp3" + }, + { + "character": "Fin", + "voice": "D38z5RcWu1voky8WS1ja", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "sailor", + "old" + ], + "order": 25, + "name": "Bulgarian (Bulgaria)", + "locale": "bg-BG", + "icon": "bg", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-d38z5rcwu1voky8ws1ja-bg-bg.mp3" + }, + { + "character": "Jeremy", + "voice": "bVMeCyTHy58xNoL34h3p", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "excited", + "young" + ], + "order": 26, + "name": "Bulgarian (Bulgaria)", + "locale": "bg-BG", + "icon": "bg", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-bvmecythy58xnol34h3p-bg-bg.mp3" + }, + { + "character": "Chris", + "voice": "iP95p4xoKVk53GoZ742B", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Bulgarian (Bulgaria)", + "locale": "bg-BG", + "icon": "bg", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-ip95p4xokvk53goz742b-bg-bg.mp3" + }, + { + "character": "Brian", + "voice": "nPczCjzI2devNBz1zQrb", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Bulgarian (Bulgaria)", + "locale": "bg-BG", + "icon": "bg", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-npczcjzi2devnbz1zqrb-bg-bg.mp3" + }, + { + "character": "Sam", + "voice": "yoZ06aMxZJJ28mfd3POQ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "fast-paced", + "young" + ], + "order": 99999, + "name": "Bulgarian (Bulgaria)", + "locale": "bg-BG", + "icon": "bg", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-yoz06amxzjj28mfd3poq-bg-bg.mp3" + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Kalina", + "name": "Bulgarian (Bulgaria)", + "locale": "bg-BG", + "voice": "bg-BG-KalinaNeural", + "icon": "bg", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-bg-bg-kalinaneural-bg-bg.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Rachel", + "voice": "21m00Tcm4TlvDq8ikWAM", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 1, + "name": "Bulgarian (Bulgaria)", + "locale": "bg-BG", + "icon": "bg", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-21m00tcm4tlvdq8ikwam-bg-bg.mp3" + }, + { + "character": "Matilda", + "voice": "XrExE9yKIg1WjnnlVkGX", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 3, + "name": "Bulgarian (Bulgaria)", + "locale": "bg-BG", + "icon": "bg", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xrexe9ykig1wjnnlvkgx-bg-bg.mp3" + }, + { + "character": "Grace", + "voice": "oWAxZDx7w5VEj9dCyTzz", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "southern-accent", + "young" + ], + "order": 4, + "name": "Bulgarian (Bulgaria)", + "locale": "bg-BG", + "icon": "bg", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-owaxzdx7w5vej9dcytzz-bg-bg.mp3" + }, + { + "character": "Domi", + "voice": "AZnzlk1XvdvUeBnXmlld", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "upbeat", + "young" + ], + "order": 5, + "name": "Bulgarian (Bulgaria)", + "locale": "bg-BG", + "icon": "bg", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-aznzlk1xvdvuebnxmlld-bg-bg.mp3" + }, + { + "character": "Gigi", + "voice": "jBpfuIE2acCO8z3wKNLl", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "childish", + "young" + ], + "order": 6, + "name": "Bulgarian (Bulgaria)", + "locale": "bg-BG", + "icon": "bg", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-jbpfuie2acco8z3wknll-bg-bg.mp3" + }, + { + "character": "Serena", + "voice": "pMsXgVXv3BLzUgSXRplE", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "order": 7, + "name": "Bulgarian (Bulgaria)", + "locale": "bg-BG", + "icon": "bg", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pmsxgvxv3blzugsxrple-bg-bg.mp3" + }, + { + "character": "Glinda", + "voice": "z9fAnlkpzviPz146aGWa", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "strong", + "middle-aged" + ], + "order": 8, + "name": "Bulgarian (Bulgaria)", + "locale": "bg-BG", + "icon": "bg", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-z9fanlkpzvipz146agwa-bg-bg.mp3" + }, + { + "character": "Mimi", + "voice": "zrHiDhphv9ZnVXBqCLjz", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "childish", + "young" + ], + "order": 9, + "name": "Bulgarian (Bulgaria)", + "locale": "bg-BG", + "icon": "bg", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zrhidhphv9znvxbqcljz-bg-bg.mp3" + }, + { + "character": "Emily", + "voice": "LcfcDJNUP1GQjkzn1xUU", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "order": 10, + "name": "Bulgarian (Bulgaria)", + "locale": "bg-BG", + "icon": "bg", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-lcfcdjnup1gqjkzn1xuu-bg-bg.mp3" + }, + { + "character": "Lily", + "voice": "pFZP5JQG7iQjIQuC4Bku", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "raspy", + "middle-aged" + ], + "order": 11, + "name": "Bulgarian (Bulgaria)", + "locale": "bg-BG", + "icon": "bg", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pfzp5jqg7iqjiquc4bku-bg-bg.mp3" + }, + { + "character": "Charlotte", + "voice": "XB0fDUnXU5powFXDhCwa", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "swedish-accent", + "young" + ], + "order": 12, + "name": "Bulgarian (Bulgaria)", + "locale": "bg-BG", + "icon": "bg", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xb0fdunxu5powfxdhcwa-bg-bg.mp3" + }, + { + "character": "Dorothy", + "voice": "ThT5KcBeYPX3keUQqHPh", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 13, + "name": "Bulgarian (Bulgaria)", + "locale": "bg-BG", + "icon": "bg", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-tht5kcbeypx3keuqqhph-bg-bg.mp3" + }, + { + "character": "Sarah", + "voice": "EXAVITQu4vr4xnSDxMaL", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 99999, + "name": "Bulgarian (Bulgaria)", + "locale": "bg-BG", + "icon": "bg", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-exavitqu4vr4xnsdxmal-bg-bg.mp3" + }, + { + "character": "Alice", + "voice": "Xb7hH8MSUJpSbSDYk0k2", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Bulgarian (Bulgaria)", + "locale": "bg-BG", + "icon": "bg", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xb7hh8msujpsbsdyk0k2-bg-bg.mp3" + } + ] + }, + { + "name": "Burmese", + "male": [ + { + "voiceProvider": "azure", + "character": "Thiha", + "name": "Burmese (Myanmar)", + "locale": "my-MM", + "voice": "my-MM-ThihaNeural", + "icon": "mm", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-my-mm-thihaneural-my-mm.mp3", + "approxDurationCoeficient": 15 + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Nilar", + "name": "Burmese (Myanmar)", + "locale": "my-MM", + "voice": "my-MM-NilarNeural", + "icon": "mm", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-my-mm-nilarneural-my-mm.mp3", + "approxDurationCoeficient": 14 + } + ] + }, + { + "name": "Catalan", + "male": [ + { + "voiceProvider": "azure", + "character": "Enric", + "name": "Catalan (Spain)", + "locale": "ca-ES", + "voice": "ca-ES-EnricNeural", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ca-es-enricneural-ca-es.mp3", + "approxDurationCoeficient": 15 + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Joana", + "name": "Catalan (Spain)", + "locale": "ca-ES", + "voice": "ca-ES-JoanaNeural", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ca-es-joananeural-ca-es.mp3", + "approxDurationCoeficient": 15 + }, + { + "voiceProvider": "azure", + "character": "Alba", + "name": "Catalan (Spain)", + "locale": "ca-ES", + "voice": "ca-ES-AlbaNeural", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ca-es-albaneural-ca-es.mp3", + "approxDurationCoeficient": 17 + } + ] + }, + { + "name": "Chinese", + "male": [ + { + "voiceProvider": "azure", + "character": "Yunyi M", + "name": "Chinese (Mandarin, Simplified)", + "locale": "zh-CN", + "voice": "zh-CN-YunyiMultilingualNeural", + "icon": "cn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunyimultilingualneural-zh-cn.mp3", + "approxDurationCoeficient": 4 + }, + { + "character": "Antoni", + "voice": "ErXwobaYiN019PkySvjV", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "well-rounded", + "calm" + ], + "order": 1, + "name": "Chinese (Jilu Mandarin, Simplified)", + "locale": "zh-CN-shandong", + "icon": "cn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-erxwobayin019pkysvjv-zh-cn.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Josh", + "voice": "TxGEqnHWrfWFTfGW9XjX", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "young" + ], + "order": 2, + "name": "Chinese (Jilu Mandarin, Simplified)", + "locale": "zh-CN-shandong", + "icon": "cn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-txgeqnhwrfwftfgw9xjx-zh-cn.mp3", + "approxDurationCoeficient": 5 + }, + { + "character": "Arnold", + "voice": "VR6AewLTigWG4xSOukaG", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "crisp", + "middle-aged" + ], + "order": 3, + "name": "Chinese (Jilu Mandarin, Simplified)", + "locale": "zh-CN-shandong", + "icon": "cn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-vr6aewltigwg4xsoukag-zh-cn.mp3" + }, + { + "character": "Adam", + "voice": "pNInz6obpgDQGcFmaJgB", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "middle-aged" + ], + "order": 4, + "name": "Chinese (Jilu Mandarin, Simplified)", + "locale": "zh-CN-shandong", + "icon": "cn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pninz6obpgdqgcfmajgb-zh-cn.mp3" + }, + { + "character": "Bill", + "voice": "pqHfZKP75CvOlQylNhV4", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "strong", + "middle-aged" + ], + "order": 5, + "name": "Chinese (Jilu Mandarin, Simplified)", + "locale": "zh-CN-shandong", + "icon": "cn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pqhfzkp75cvolqylnhv4-zh-cn.mp3", + "approxDurationCoeficient": 4 + }, + { + "character": "Jessie", + "voice": "t0jbNlBVZ17f02VDIeMI", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "fast-paced", + "old" + ], + "order": 6, + "name": "Chinese (Jilu Mandarin, Simplified)", + "locale": "zh-CN-shandong", + "icon": "cn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-t0jbnlbvz17f02vdiemi-zh-cn.mp3" + }, + { + "character": "Michael", + "voice": "flq6f7yk4E4fJM5XTYuZ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "orutund", + "old" + ], + "order": 7, + "name": "Chinese (Jilu Mandarin, Simplified)", + "locale": "zh-CN-shandong", + "icon": "cn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-flq6f7yk4e4fjm5xtyuz-zh-cn.mp3" + }, + { + "character": "Liam", + "voice": "TX3LPaxmHKxFdv7VOQHJ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "neutral", + "young" + ], + "order": 8, + "name": "Chinese (Jilu Mandarin, Simplified)", + "locale": "zh-CN-shandong", + "icon": "cn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-tx3lpaxmhkxfdv7voqhj-zh-cn.mp3" + }, + { + "character": "Harry", + "voice": "SOYHLrjzK2X1ezoPC6cr", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "anxious", + "young" + ], + "order": 9, + "name": "Chinese (Jilu Mandarin, Simplified)", + "locale": "zh-CN-shandong", + "icon": "cn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-soyhlrjzk2x1ezopc6cr-zh-cn.mp3" + }, + { + "character": "Patrick", + "voice": "ODq5zmih8GrVes37Dizd", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "shouty", + "middle-aged" + ], + "order": 10, + "name": "Chinese (Jilu Mandarin, Simplified)", + "locale": "zh-CN-shandong", + "icon": "cn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-odq5zmih8grves37dizd-zh-cn.mp3" + }, + { + "character": "Thomas", + "voice": "GBv7mTt0atIp3Br8iCZE", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 11, + "name": "Chinese (Jilu Mandarin, Simplified)", + "locale": "zh-CN-shandong", + "icon": "cn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-gbv7mtt0atip3br8icze-zh-cn.mp3", + "approxDurationCoeficient": 3 + }, + { + "character": "Drew", + "voice": "29vD33N1CtxCmqQRPOHJ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "well-rounded", + "middle-aged" + ], + "order": 12, + "name": "Chinese (Jilu Mandarin, Simplified)", + "locale": "zh-CN-shandong", + "icon": "cn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-29vd33n1ctxcmqqrpohj-zh-cn.mp3", + "approxDurationCoeficient": 4 + }, + { + "character": "Paul", + "voice": "5Q0t7uMcjvnagumLfvZi", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "narration", + "middle-aged" + ], + "order": 13, + "name": "Chinese (Jilu Mandarin, Simplified)", + "locale": "zh-CN-shandong", + "icon": "cn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-5q0t7umcjvnagumlfvzi-zh-cn.mp3", + "approxDurationCoeficient": 4 + }, + { + "character": "Callum", + "voice": "N2lVS1w4EtoT3dr4eOWO", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "masculine", + "middle-aged" + ], + "order": 14, + "name": "Chinese (Jilu Mandarin, Simplified)", + "locale": "zh-CN-shandong", + "icon": "cn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-n2lvs1w4etot3dr4eowo-zh-cn.mp3" + }, + { + "character": "Giovanni", + "voice": "zcAOhNBS3c14rBihAFp1", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "italian-accent", + "young" + ], + "order": 15, + "name": "Chinese (Jilu Mandarin, Simplified)", + "locale": "zh-CN-shandong", + "icon": "cn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zcaohnbs3c14rbihafp1-zh-cn.mp3" + }, + { + "character": "Clyde", + "voice": "2EiwWnXFnvU5JabPnv8n", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "masculine", + "middle-aged" + ], + "order": 17, + "name": "Chinese (Jilu Mandarin, Simplified)", + "locale": "zh-CN-shandong", + "icon": "cn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-2eiwwnxfnvu5jabpnv8n-zh-cn.mp3" + }, + { + "character": "George", + "voice": "JBFqnCBsd6RMkjVDRZzb", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "raspy", + "narration" + ], + "order": 19, + "name": "Chinese (Jilu Mandarin, Simplified)", + "locale": "zh-CN-shandong", + "icon": "cn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-jbfqncbsd6rmkjvdrzzb-zh-cn.mp3" + }, + { + "character": "Dave", + "voice": "CYw3kZ02Hs0563khs1Fj", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "essex-accent", + "young" + ], + "order": 20, + "name": "Chinese (Jilu Mandarin, Simplified)", + "locale": "zh-CN-shandong", + "icon": "cn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-cyw3kz02hs0563khs1fj-zh-cn.mp3" + }, + { + "character": "Joseph", + "voice": "Zlb1dXrM653N07WRdFW3", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "upbeat", + "middle-aged" + ], + "order": 21, + "name": "Chinese (Jilu Mandarin, Simplified)", + "locale": "zh-CN-shandong", + "icon": "cn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zlb1dxrm653n07wrdfw3-zh-cn.mp3" + }, + { + "character": "Daniel", + "voice": "onwK4e9ZLuTAKqWW03F9", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "middle-aged" + ], + "order": 22, + "name": "Chinese (Jilu Mandarin, Simplified)", + "locale": "zh-CN-shandong", + "icon": "cn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-onwk4e9zlutakqww03f9-zh-cn.mp3" + }, + { + "character": "Charlie", + "voice": "IKne3meq5aSn9XLyUdCD", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "casual", + "middle-aged" + ], + "order": 23, + "name": "Chinese (Jilu Mandarin, Simplified)", + "locale": "zh-CN-shandong", + "icon": "cn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-ikne3meq5asn9xlyudcd-zh-cn.mp3" + }, + { + "character": "James", + "voice": "ZQe5CZNOzWyzPSCn5a3c", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "old" + ], + "order": 24, + "name": "Chinese (Jilu Mandarin, Simplified)", + "locale": "zh-CN-shandong", + "icon": "cn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zqe5cznozwyzpscn5a3c-zh-cn.mp3" + }, + { + "character": "Fin", + "voice": "D38z5RcWu1voky8WS1ja", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "sailor", + "old" + ], + "order": 25, + "name": "Chinese (Jilu Mandarin, Simplified)", + "locale": "zh-CN-shandong", + "icon": "cn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-d38z5rcwu1voky8ws1ja-zh-cn.mp3" + }, + { + "character": "Jeremy", + "voice": "bVMeCyTHy58xNoL34h3p", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "excited", + "young" + ], + "order": 26, + "name": "Chinese (Jilu Mandarin, Simplified)", + "locale": "zh-CN-shandong", + "icon": "cn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-bvmecythy58xnol34h3p-zh-cn.mp3" + }, + { + "character": "Chris", + "voice": "iP95p4xoKVk53GoZ742B", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Chinese (Jilu Mandarin, Simplified)", + "locale": "zh-CN-shandong", + "icon": "cn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-ip95p4xokvk53goz742b-zh-cn.mp3", + "approxDurationCoeficient": 20 + }, + { + "character": "Brian", + "voice": "nPczCjzI2devNBz1zQrb", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Chinese (Jilu Mandarin, Simplified)", + "locale": "zh-CN-shandong", + "icon": "cn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-npczcjzi2devnbz1zqrb-zh-cn.mp3" + }, + { + "character": "Sam", + "voice": "yoZ06aMxZJJ28mfd3POQ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "fast-paced", + "young" + ], + "order": 99999, + "name": "Chinese (Jilu Mandarin, Simplified)", + "locale": "zh-CN-shandong", + "icon": "cn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-yoz06amxzjj28mfd3poq-zh-cn.mp3", + "approxDurationCoeficient": 5 + }, + { + "voiceProvider": "azure", + "character": "Yunzhe", + "name": "Chinese (Wu, Simplified)", + "locale": "wuu-CN", + "voice": "wuu-CN-YunzheNeural", + "icon": "cn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-wuu-cn-yunzheneural-zh-cn.mp3", + "approxDurationCoeficient": 12 + }, + { + "voiceProvider": "azure", + "character": "YunSong", + "name": "Chinese (Cantonese, Simplified)", + "locale": "yue-CN", + "voice": "yue-CN-YunSongNeural", + "icon": "cn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-yue-cn-yunsongneural-zh-cn.mp3" + }, + { + "voiceProvider": "azure", + "character": "Yunxi", + "name": "Chinese (Mandarin, Simplified)", + "locale": "zh-CN", + "voice": "zh-CN-YunxiNeural", + "icon": "cn", + "rolePlayList": [ + "Narrator", + "YoungAdultMale", + "Boy" + ], + "styleList": [ + "narration-relaxed", + "embarrassed", + "fearful", + "cheerful", + "disgruntled", + "serious", + "angry", + "sad", + "depressed", + "chat", + "assistant", + "newscast" + ], + "stylePreview": { + "narration-relaxed": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunxineural:narration-relaxed-zh-cn.mp3", + "embarrassed": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunxineural:embarrassed-zh-cn.mp3", + "fearful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunxineural:fearful-zh-cn.mp3", + "cheerful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunxineural:cheerful-zh-cn.mp3", + "disgruntled": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunxineural:disgruntled-zh-cn.mp3", + "serious": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunxineural:serious-zh-cn.mp3", + "angry": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunxineural:angry-zh-cn.mp3", + "sad": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunxineural:sad-zh-cn.mp3", + "depressed": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunxineural:depressed-zh-cn.mp3", + "chat": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunxineural:chat-zh-cn.mp3", + "assistant": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunxineural:assistant-zh-cn.mp3", + "newscast": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunxineural:newscast-zh-cn.mp3" + }, + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunxineural-zh-cn.mp3", + "approxDurationCoeficient": 8 + }, + { + "voiceProvider": "azure", + "character": "Yunjian", + "name": "Chinese (Mandarin, Simplified)", + "locale": "zh-CN", + "voice": "zh-CN-YunjianNeural", + "icon": "cn", + "styleList": [ + "narration-relaxed", + "sports-commentary", + "sports-commentary-excited", + "angry", + "disgruntled", + "cheerful", + "sad", + "serious", + "depressed", + "documentary-narration" + ], + "stylePreview": { + "narration-relaxed": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunjianneural:narration-relaxed-zh-cn.mp3", + "sports-commentary": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunjianneural:sports-commentary-zh-cn.mp3", + "sports-commentary-excited": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunjianneural:sports-commentary-excited-zh-cn.mp3", + "angry": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunjianneural:angry-zh-cn.mp3", + "disgruntled": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunjianneural:disgruntled-zh-cn.mp3", + "cheerful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunjianneural:cheerful-zh-cn.mp3", + "sad": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunjianneural:sad-zh-cn.mp3", + "serious": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunjianneural:serious-zh-cn.mp3", + "depressed": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunjianneural:depressed-zh-cn.mp3", + "documentary-narration": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunjianneural:documentary-narration-zh-cn.mp3" + }, + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunjianneural-zh-cn.mp3", + "approxDurationCoeficient": 7 + }, + { + "voiceProvider": "azure", + "character": "Yunyang", + "name": "Chinese (Mandarin, Simplified)", + "locale": "zh-CN", + "voice": "zh-CN-YunyangNeural", + "icon": "cn", + "styleList": [ + "customerservice", + "narration-professional", + "newscast-casual" + ], + "stylePreview": { + "customerservice": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunyangneural:customerservice-zh-cn.mp3", + "narration-professional": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunyangneural:narration-professional-zh-cn.mp3", + "newscast-casual": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunyangneural:newscast-casual-zh-cn.mp3" + }, + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunyangneural-zh-cn.mp3", + "approxDurationCoeficient": 8 + }, + { + "voiceProvider": "azure", + "character": "Yunfeng", + "name": "Chinese (Mandarin, Simplified)", + "locale": "zh-CN", + "voice": "zh-CN-YunfengNeural", + "icon": "cn", + "styleList": [ + "angry", + "disgruntled", + "cheerful", + "fearful", + "sad", + "serious", + "depressed" + ], + "stylePreview": { + "angry": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunfengneural:angry-zh-cn.mp3", + "disgruntled": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunfengneural:disgruntled-zh-cn.mp3", + "cheerful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunfengneural:cheerful-zh-cn.mp3", + "fearful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunfengneural:fearful-zh-cn.mp3", + "sad": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunfengneural:sad-zh-cn.mp3", + "serious": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunfengneural:serious-zh-cn.mp3", + "depressed": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunfengneural:depressed-zh-cn.mp3" + }, + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunfengneural-zh-cn.mp3", + "approxDurationCoeficient": 7 + }, + { + "voiceProvider": "azure", + "character": "Yunhao", + "name": "Chinese (Mandarin, Simplified)", + "locale": "zh-CN", + "voice": "zh-CN-YunhaoNeural", + "icon": "cn", + "styleList": [ + "advertisement-upbeat" + ], + "stylePreview": { + "advertisement-upbeat": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunhaoneural:advertisement-upbeat-zh-cn.mp3" + }, + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunhaoneural-zh-cn.mp3", + "approxDurationCoeficient": 7 + }, + { + "voiceProvider": "azure", + "character": "Yunjie", + "name": "Chinese (Mandarin, Simplified)", + "locale": "zh-CN", + "voice": "zh-CN-YunjieNeural", + "icon": "cn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunjieneural-zh-cn.mp3" + }, + { + "voiceProvider": "azure", + "character": "Yunxia", + "name": "Chinese (Mandarin, Simplified)", + "locale": "zh-CN", + "voice": "zh-CN-YunxiaNeural", + "icon": "cn", + "styleList": [ + "calm", + "fearful", + "cheerful", + "angry", + "sad" + ], + "stylePreview": { + "calm": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunxianeural:calm-zh-cn.mp3", + "fearful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunxianeural:fearful-zh-cn.mp3", + "cheerful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunxianeural:cheerful-zh-cn.mp3", + "angry": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunxianeural:angry-zh-cn.mp3", + "sad": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunxianeural:sad-zh-cn.mp3" + }, + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunxianeural-zh-cn.mp3", + "approxDurationCoeficient": 8 + }, + { + "voiceProvider": "azure", + "character": "Yunye", + "name": "Chinese (Mandarin, Simplified)", + "locale": "zh-CN", + "voice": "zh-CN-YunyeNeural", + "icon": "cn", + "rolePlayList": [ + "YoungAdultFemale", + "YoungAdultMale", + "OlderAdultFemale", + "OlderAdultMale", + "SeniorFemale", + "SeniorMale", + "Girl", + "Boy" + ], + "styleList": [ + "embarrassed", + "calm", + "fearful", + "cheerful", + "disgruntled", + "serious", + "angry", + "sad" + ], + "stylePreview": { + "embarrassed": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunyeneural:embarrassed-zh-cn.mp3", + "calm": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunyeneural:calm-zh-cn.mp3", + "fearful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunyeneural:fearful-zh-cn.mp3", + "cheerful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunyeneural:cheerful-zh-cn.mp3", + "disgruntled": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunyeneural:disgruntled-zh-cn.mp3", + "serious": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunyeneural:serious-zh-cn.mp3", + "angry": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunyeneural:angry-zh-cn.mp3", + "sad": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunyeneural:sad-zh-cn.mp3" + }, + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunyeneural-zh-cn.mp3", + "approxDurationCoeficient": 8 + }, + { + "voiceProvider": "azure", + "character": "Yunze", + "name": "Chinese (Mandarin, Simplified)", + "locale": "zh-CN", + "voice": "zh-CN-YunzeNeural", + "icon": "cn", + "rolePlayList": [ + "OlderAdultMale", + "SeniorMale" + ], + "styleList": [ + "calm", + "fearful", + "cheerful", + "disgruntled", + "serious", + "angry", + "sad", + "depressed", + "documentary-narration" + ], + "stylePreview": { + "calm": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunzeneural:calm-zh-cn.mp3", + "fearful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunzeneural:fearful-zh-cn.mp3", + "cheerful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunzeneural:cheerful-zh-cn.mp3", + "disgruntled": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunzeneural:disgruntled-zh-cn.mp3", + "serious": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunzeneural:serious-zh-cn.mp3", + "angry": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunzeneural:angry-zh-cn.mp3", + "sad": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunzeneural:sad-zh-cn.mp3", + "depressed": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunzeneural:depressed-zh-cn.mp3", + "documentary-narration": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunzeneural:documentary-narration-zh-cn.mp3" + }, + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-yunzeneural-zh-cn.mp3", + "approxDurationCoeficient": 6 + }, + { + "voiceProvider": "azure", + "character": "Yundeng", + "name": "Chinese (Zhongyuan Mandarin Henan, Simplified)", + "locale": "zh-CN-henan", + "voice": "zh-CN-henan-YundengNeural", + "icon": "cn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-henan-yundengneural-zh-cn.mp3", + "approxDurationCoeficient": 10 + }, + { + "voiceProvider": "azure", + "character": "Yunxiang", + "name": "Chinese (Jilu Mandarin, Simplified)", + "locale": "zh-CN-shandong", + "voice": "zh-CN-shandong-YunxiangNeural", + "icon": "cn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-shandong-yunxiangneural-zh-cn.mp3", + "approxDurationCoeficient": 7 + }, + { + "voiceProvider": "azure", + "character": "YunxiSichuan", + "name": "Chinese (Southwestern Mandarin, Simplified)", + "locale": "zh-CN-sichuan", + "voice": "zh-CN-sichuan-YunxiNeural", + "icon": "cn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-sichuan-yunxineural-zh-cn.mp3" + }, + { + "voiceProvider": "azure", + "character": "WanLung", + "name": "Chinese (Cantonese, Traditional)", + "locale": "zh-HK", + "voice": "zh-HK-WanLungNeural", + "icon": "hk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-hk-wanlungneural-zh-cn.mp3", + "approxDurationCoeficient": 6 + }, + { + "voiceProvider": "azure", + "character": "YunJhe", + "name": "Chinese (Taiwanese Mandarin, Traditional)", + "locale": "zh-TW", + "voice": "zh-TW-YunJheNeural", + "icon": "tw", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-tw-yunjheneural-zh-cn.mp3", + "approxDurationCoeficient": 7 + }, + { + "character": "Cheng B", + "name": "Chinese-CN", + "voice": "cmn-CN-Wavenet-B", + "icon": "cn", + "voiceProvider": "google", + "locale": "cmn-CN", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-cmn-cn-wavenet-b-zh-cn.mp3", + "approxDurationCoeficient": 4 + }, + { + "character": "Fu C", + "name": "Chinese-CN", + "voice": "cmn-CN-Wavenet-C", + "icon": "cn", + "voiceProvider": "google", + "locale": "cmn-CN", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-cmn-cn-wavenet-c-zh-cn.mp3" + }, + { + "character": "Wu B", + "name": "Chinese-TW", + "voice": "cmn-TW-Wavenet-B", + "icon": "tw", + "voiceProvider": "google", + "locale": "cmn-TW", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-cmn-tw-wavenet-b-zh-cn.mp3" + }, + { + "character": "Yi C", + "name": "Chinese-TW", + "voice": "cmn-TW-Wavenet-C", + "icon": "tw", + "voiceProvider": "google", + "locale": "cmn-TW", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-cmn-tw-wavenet-c-zh-cn.mp3" + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Xiaochen M", + "name": "Chinese (Mandarin, Simplified)", + "locale": "zh-CN", + "voice": "zh-CN-XiaochenMultilingualNeural", + "icon": "cn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaochenmultilingualneural-zh-cn.mp3", + "approxDurationCoeficient": 4 + }, + { + "voiceProvider": "azure", + "character": "Xiaoxiao M", + "name": "Chinese (Mandarin, Simplified)", + "locale": "zh-CN", + "voice": "zh-CN-XiaoxiaoMultilingualNeural", + "icon": "cn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaoxiaomultilingualneural-zh-cn.mp3", + "approxDurationCoeficient": 8 + }, + { + "character": "Rachel", + "voice": "21m00Tcm4TlvDq8ikWAM", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 1, + "name": "Chinese (Jilu Mandarin, Simplified)", + "locale": "zh-CN-shandong", + "icon": "cn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-21m00tcm4tlvdq8ikwam-zh-cn.mp3", + "approxDurationCoeficient": 5 + }, + { + "character": "Matilda", + "voice": "XrExE9yKIg1WjnnlVkGX", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 3, + "name": "Chinese (Jilu Mandarin, Simplified)", + "locale": "zh-CN-shandong", + "icon": "cn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xrexe9ykig1wjnnlvkgx-zh-cn.mp3" + }, + { + "character": "Grace", + "voice": "oWAxZDx7w5VEj9dCyTzz", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "southern-accent", + "young" + ], + "order": 4, + "name": "Chinese (Jilu Mandarin, Simplified)", + "locale": "zh-CN-shandong", + "icon": "cn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-owaxzdx7w5vej9dcytzz-zh-cn.mp3" + }, + { + "character": "Domi", + "voice": "AZnzlk1XvdvUeBnXmlld", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "upbeat", + "young" + ], + "order": 5, + "name": "Chinese (Jilu Mandarin, Simplified)", + "locale": "zh-CN-shandong", + "icon": "cn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-aznzlk1xvdvuebnxmlld-zh-cn.mp3", + "approxDurationCoeficient": 5 + }, + { + "character": "Gigi", + "voice": "jBpfuIE2acCO8z3wKNLl", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "childish", + "young" + ], + "order": 6, + "name": "Chinese (Jilu Mandarin, Simplified)", + "locale": "zh-CN-shandong", + "icon": "cn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-jbpfuie2acco8z3wknll-zh-cn.mp3" + }, + { + "character": "Serena", + "voice": "pMsXgVXv3BLzUgSXRplE", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "order": 7, + "name": "Chinese (Jilu Mandarin, Simplified)", + "locale": "zh-CN-shandong", + "icon": "cn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pmsxgvxv3blzugsxrple-zh-cn.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Glinda", + "voice": "z9fAnlkpzviPz146aGWa", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "strong", + "middle-aged" + ], + "order": 8, + "name": "Chinese (Jilu Mandarin, Simplified)", + "locale": "zh-CN-shandong", + "icon": "cn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-z9fanlkpzvipz146agwa-zh-cn.mp3", + "approxDurationCoeficient": 3 + }, + { + "character": "Mimi", + "voice": "zrHiDhphv9ZnVXBqCLjz", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "childish", + "young" + ], + "order": 9, + "name": "Chinese (Jilu Mandarin, Simplified)", + "locale": "zh-CN-shandong", + "icon": "cn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zrhidhphv9znvxbqcljz-zh-cn.mp3" + }, + { + "character": "Emily", + "voice": "LcfcDJNUP1GQjkzn1xUU", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "order": 10, + "name": "Chinese (Jilu Mandarin, Simplified)", + "locale": "zh-CN-shandong", + "icon": "cn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-lcfcdjnup1gqjkzn1xuu-zh-cn.mp3" + }, + { + "character": "Lily", + "voice": "pFZP5JQG7iQjIQuC4Bku", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "raspy", + "middle-aged" + ], + "order": 11, + "name": "Chinese (Jilu Mandarin, Simplified)", + "locale": "zh-CN-shandong", + "icon": "cn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pfzp5jqg7iqjiquc4bku-zh-cn.mp3", + "approxDurationCoeficient": 4 + }, + { + "character": "Charlotte", + "voice": "XB0fDUnXU5powFXDhCwa", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "swedish-accent", + "young" + ], + "order": 12, + "name": "Chinese (Jilu Mandarin, Simplified)", + "locale": "zh-CN-shandong", + "icon": "cn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xb0fdunxu5powfxdhcwa-zh-cn.mp3", + "approxDurationCoeficient": 3 + }, + { + "character": "Dorothy", + "voice": "ThT5KcBeYPX3keUQqHPh", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 13, + "name": "Chinese (Jilu Mandarin, Simplified)", + "locale": "zh-CN-shandong", + "icon": "cn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-tht5kcbeypx3keuqqhph-zh-cn.mp3" + }, + { + "character": "Sarah", + "voice": "EXAVITQu4vr4xnSDxMaL", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 99999, + "name": "Chinese (Jilu Mandarin, Simplified)", + "locale": "zh-CN-shandong", + "icon": "cn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-exavitqu4vr4xnsdxmal-zh-cn.mp3" + }, + { + "character": "Alice", + "voice": "Xb7hH8MSUJpSbSDYk0k2", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Chinese (Jilu Mandarin, Simplified)", + "locale": "zh-CN-shandong", + "icon": "cn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xb7hh8msujpsbsdyk0k2-zh-cn.mp3" + }, + { + "voiceProvider": "azure", + "character": "Xiaotong", + "name": "Chinese (Wu, Simplified)", + "locale": "wuu-CN", + "voice": "wuu-CN-XiaotongNeural", + "icon": "cn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-wuu-cn-xiaotongneural-zh-cn.mp3", + "approxDurationCoeficient": 5 + }, + { + "voiceProvider": "azure", + "character": "XiaoMin", + "name": "Chinese (Cantonese, Simplified)", + "locale": "yue-CN", + "voice": "yue-CN-XiaoMinNeural", + "icon": "cn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-yue-cn-xiaominneural-zh-cn.mp3", + "approxDurationCoeficient": 7 + }, + { + "voiceProvider": "azure", + "character": "Xiaoxiao", + "name": "Chinese (Mandarin, Simplified)", + "locale": "zh-CN", + "voice": "zh-CN-XiaoxiaoNeural", + "icon": "cn", + "styleList": [ + "assistant", + "chat", + "customerservice", + "newscast", + "affectionate", + "angry", + "calm", + "cheerful", + "disgruntled", + "fearful", + "gentle", + "lyrical", + "sad", + "serious", + "poetry-reading", + "friendly", + "chat-casual", + "whispering", + "sorry", + "excited" + ], + "defaultStyle": "friendly", + "stylePreview": { + "assistant": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaoxiaoneural:assistant-zh-cn.mp3", + "chat": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaoxiaoneural:chat-zh-cn.mp3", + "customerservice": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaoxiaoneural:customerservice-zh-cn.mp3", + "newscast": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaoxiaoneural:newscast-zh-cn.mp3", + "affectionate": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaoxiaoneural:affectionate-zh-cn.mp3", + "angry": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaoxiaoneural:angry-zh-cn.mp3", + "calm": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaoxiaoneural:calm-zh-cn.mp3", + "cheerful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaoxiaoneural:cheerful-zh-cn.mp3", + "disgruntled": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaoxiaoneural:disgruntled-zh-cn.mp3", + "fearful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaoxiaoneural:fearful-zh-cn.mp3", + "gentle": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaoxiaoneural:gentle-zh-cn.mp3", + "lyrical": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaoxiaoneural:lyrical-zh-cn.mp3", + "sad": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaoxiaoneural:sad-zh-cn.mp3", + "serious": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaoxiaoneural:serious-zh-cn.mp3", + "poetry-reading": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaoxiaoneural:poetry-reading-zh-cn.mp3", + "friendly": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaoxiaoneural:friendly-zh-cn.mp3", + "chat-casual": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaoxiaoneural:chat-casual-zh-cn.mp3", + "whispering": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaoxiaoneural:whispering-zh-cn.mp3", + "sorry": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaoxiaoneural:sorry-zh-cn.mp3", + "excited": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaoxiaoneural:excited-zh-cn.mp3" + }, + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaoxiaoneural-zh-cn.mp3", + "approxDurationCoeficient": 6 + }, + { + "voiceProvider": "azure", + "character": "Xiaoyi", + "name": "Chinese (Mandarin, Simplified)", + "locale": "zh-CN", + "voice": "zh-CN-XiaoyiNeural", + "icon": "cn", + "styleList": [ + "angry", + "disgruntled", + "affectionate", + "cheerful", + "fearful", + "sad", + "embarrassed", + "serious", + "gentle" + ], + "stylePreview": { + "angry": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaoyineural:angry-zh-cn.mp3", + "disgruntled": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaoyineural:disgruntled-zh-cn.mp3", + "affectionate": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaoyineural:affectionate-zh-cn.mp3", + "cheerful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaoyineural:cheerful-zh-cn.mp3", + "fearful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaoyineural:fearful-zh-cn.mp3", + "sad": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaoyineural:sad-zh-cn.mp3", + "embarrassed": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaoyineural:embarrassed-zh-cn.mp3", + "serious": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaoyineural:serious-zh-cn.mp3", + "gentle": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaoyineural:gentle-zh-cn.mp3" + }, + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaoyineural-zh-cn.mp3", + "approxDurationCoeficient": 7 + }, + { + "voiceProvider": "azure", + "character": "Xiaochen", + "name": "Chinese (Mandarin, Simplified)", + "locale": "zh-CN", + "voice": "zh-CN-XiaochenNeural", + "icon": "cn", + "styleList": [ + "livecommercial" + ], + "stylePreview": { + "livecommercial": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaochenneural:livecommercial-zh-cn.mp3" + }, + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaochenneural-zh-cn.mp3", + "approxDurationCoeficient": 7 + }, + { + "voiceProvider": "azure", + "character": "Xiaohan", + "name": "Chinese (Mandarin, Simplified)", + "locale": "zh-CN", + "voice": "zh-CN-XiaohanNeural", + "icon": "cn", + "styleList": [ + "calm", + "fearful", + "cheerful", + "disgruntled", + "serious", + "angry", + "sad", + "gentle", + "affectionate", + "embarrassed" + ], + "stylePreview": { + "calm": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaohanneural:calm-zh-cn.mp3", + "fearful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaohanneural:fearful-zh-cn.mp3", + "cheerful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaohanneural:cheerful-zh-cn.mp3", + "disgruntled": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaohanneural:disgruntled-zh-cn.mp3", + "serious": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaohanneural:serious-zh-cn.mp3", + "angry": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaohanneural:angry-zh-cn.mp3", + "sad": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaohanneural:sad-zh-cn.mp3", + "gentle": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaohanneural:gentle-zh-cn.mp3", + "affectionate": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaohanneural:affectionate-zh-cn.mp3", + "embarrassed": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaohanneural:embarrassed-zh-cn.mp3" + }, + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaohanneural-zh-cn.mp3", + "approxDurationCoeficient": 6 + }, + { + "voiceProvider": "azure", + "character": "Xiaomeng", + "name": "Chinese (Mandarin, Simplified)", + "locale": "zh-CN", + "voice": "zh-CN-XiaomengNeural", + "icon": "cn", + "styleList": [ + "chat" + ], + "stylePreview": { + "chat": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaomengneural:chat-zh-cn.mp3" + }, + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaomengneural-zh-cn.mp3", + "approxDurationCoeficient": 6 + }, + { + "voiceProvider": "azure", + "character": "Xiaomo", + "name": "Chinese (Mandarin, Simplified)", + "locale": "zh-CN", + "voice": "zh-CN-XiaomoNeural", + "icon": "cn", + "rolePlayList": [ + "YoungAdultFemale", + "YoungAdultMale", + "OlderAdultFemale", + "OlderAdultMale", + "SeniorFemale", + "SeniorMale", + "Girl", + "Boy" + ], + "styleList": [ + "embarrassed", + "calm", + "fearful", + "cheerful", + "disgruntled", + "serious", + "angry", + "sad", + "depressed", + "affectionate", + "gentle", + "envious" + ], + "stylePreview": { + "embarrassed": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaomoneural:embarrassed-zh-cn.mp3", + "calm": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaomoneural:calm-zh-cn.mp3", + "fearful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaomoneural:fearful-zh-cn.mp3", + "cheerful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaomoneural:cheerful-zh-cn.mp3", + "disgruntled": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaomoneural:disgruntled-zh-cn.mp3", + "serious": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaomoneural:serious-zh-cn.mp3", + "angry": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaomoneural:angry-zh-cn.mp3", + "sad": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaomoneural:sad-zh-cn.mp3", + "depressed": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaomoneural:depressed-zh-cn.mp3", + "affectionate": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaomoneural:affectionate-zh-cn.mp3", + "gentle": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaomoneural:gentle-zh-cn.mp3", + "envious": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaomoneural:envious-zh-cn.mp3" + }, + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaomoneural-zh-cn.mp3", + "approxDurationCoeficient": 6 + }, + { + "voiceProvider": "azure", + "character": "Xiaoqiu", + "name": "Chinese (Mandarin, Simplified)", + "locale": "zh-CN", + "voice": "zh-CN-XiaoqiuNeural", + "icon": "cn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaoqiuneural-zh-cn.mp3", + "approxDurationCoeficient": 6 + }, + { + "voiceProvider": "azure", + "character": "Xiaorou", + "name": "Chinese (Mandarin, Simplified)", + "locale": "zh-CN", + "voice": "zh-CN-XiaorouNeural", + "icon": "cn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaorouneural-zh-cn.mp3" + }, + { + "voiceProvider": "azure", + "character": "Xiaorui", + "name": "Chinese (Mandarin, Simplified)", + "locale": "zh-CN", + "voice": "zh-CN-XiaoruiNeural", + "icon": "cn", + "styleList": [ + "calm", + "fearful", + "angry", + "sad" + ], + "stylePreview": { + "calm": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaoruineural:calm-zh-cn.mp3", + "fearful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaoruineural:fearful-zh-cn.mp3", + "angry": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaoruineural:angry-zh-cn.mp3", + "sad": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaoruineural:sad-zh-cn.mp3" + }, + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaoruineural-zh-cn.mp3", + "approxDurationCoeficient": 7 + }, + { + "voiceProvider": "azure", + "character": "Xiaoshuang", + "name": "Chinese (Mandarin, Simplified)", + "locale": "zh-CN", + "voice": "zh-CN-XiaoshuangNeural", + "icon": "cn", + "styleList": [ + "chat" + ], + "tags": [ + "child" + ], + "stylePreview": { + "chat": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaoshuangneural:chat-zh-cn.mp3" + }, + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaoshuangneural-zh-cn.mp3", + "approxDurationCoeficient": 6 + }, + { + "voiceProvider": "azure", + "character": "Xiaoxiao Dialects", + "name": "Chinese (Mandarin, Simplified)", + "locale": "zh-CN", + "voice": "zh-CN-XiaoxiaoDialectsNeural", + "icon": "cn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaoxiaodialectsneural-zh-cn.mp3" + }, + { + "voiceProvider": "azure", + "character": "Xiaoyan", + "name": "Chinese (Mandarin, Simplified)", + "locale": "zh-CN", + "voice": "zh-CN-XiaoyanNeural", + "icon": "cn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaoyanneural-zh-cn.mp3", + "approxDurationCoeficient": 13 + }, + { + "voiceProvider": "azure", + "character": "Xiaoyou", + "name": "Chinese (Mandarin, Simplified)", + "locale": "zh-CN", + "voice": "zh-CN-XiaoyouNeural", + "icon": "cn", + "tags": [ + "child" + ], + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaoyouneural-zh-cn.mp3", + "approxDurationCoeficient": 5 + }, + { + "voiceProvider": "azure", + "character": "Xiaoyu M", + "name": "Chinese (Mandarin, Simplified)", + "locale": "zh-CN", + "voice": "zh-CN-XiaoyuMultilingualNeural", + "icon": "cn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaoyumultilingualneural-zh-cn.mp3" + }, + { + "voiceProvider": "azure", + "character": "Xiaozhen", + "name": "Chinese (Mandarin, Simplified)", + "locale": "zh-CN", + "voice": "zh-CN-XiaozhenNeural", + "icon": "cn", + "styleList": [ + "angry", + "disgruntled", + "cheerful", + "fearful", + "sad", + "serious" + ], + "stylePreview": { + "angry": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaozhenneural:angry-zh-cn.mp3", + "disgruntled": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaozhenneural:disgruntled-zh-cn.mp3", + "cheerful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaozhenneural:cheerful-zh-cn.mp3", + "fearful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaozhenneural:fearful-zh-cn.mp3", + "sad": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaozhenneural:sad-zh-cn.mp3", + "serious": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaozhenneural:serious-zh-cn.mp3" + }, + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaozhenneural-zh-cn.mp3", + "approxDurationCoeficient": 6 + }, + { + "voiceProvider": "azure", + "character": "Xiaoxuan", + "name": "Chinese (Mandarin, Simplified)", + "locale": "zh-CN", + "voice": "zh-CN-XiaoxuanNeural", + "icon": "cn", + "rolePlayList": [ + "YoungAdultFemale", + "YoungAdultMale", + "OlderAdultFemale", + "OlderAdultMale", + "SeniorFemale", + "SeniorMale", + "Girl", + "Boy" + ], + "styleList": [ + "calm", + "fearful", + "cheerful", + "disgruntled", + "serious", + "angry", + "gentle", + "depressed" + ], + "stylePreview": { + "calm": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaoxuanneural:calm-zh-cn.mp3", + "fearful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaoxuanneural:fearful-zh-cn.mp3", + "cheerful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaoxuanneural:cheerful-zh-cn.mp3", + "disgruntled": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaoxuanneural:disgruntled-zh-cn.mp3", + "serious": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaoxuanneural:serious-zh-cn.mp3", + "angry": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaoxuanneural:angry-zh-cn.mp3", + "gentle": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaoxuanneural:gentle-zh-cn.mp3", + "depressed": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaoxuanneural:depressed-zh-cn.mp3" + }, + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-xiaoxuanneural-zh-cn.mp3", + "approxDurationCoeficient": 8 + }, + { + "voiceProvider": "azure", + "character": "Xiaobei", + "name": "Chinese (Northeastern Mandarin, Simplified)", + "locale": "zh-CN-liaoning", + "voice": "zh-CN-liaoning-XiaobeiNeural", + "icon": "cn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-liaoning-xiaobeineural-zh-cn.mp3", + "approxDurationCoeficient": 8 + }, + { + "voiceProvider": "azure", + "character": "Xiaoni", + "name": "Chinese (Zhongyuan Mandarin Shaanxi, Simplified)", + "locale": "zh-CN-shaanxi", + "voice": "zh-CN-shaanxi-XiaoniNeural", + "icon": "cn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-cn-shaanxi-xiaonineural-zh-cn.mp3", + "approxDurationCoeficient": 7 + }, + { + "voiceProvider": "azure", + "character": "HiuMaan", + "name": "Chinese (Cantonese, Traditional)", + "locale": "zh-HK", + "voice": "zh-HK-HiuMaanNeural", + "icon": "hk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-hk-hiumaanneural-zh-cn.mp3", + "approxDurationCoeficient": 7 + }, + { + "voiceProvider": "azure", + "character": "HiuGaai", + "name": "Chinese (Cantonese, Traditional)", + "locale": "zh-HK", + "voice": "zh-HK-HiuGaaiNeural", + "icon": "hk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-hk-hiugaaineural-zh-cn.mp3", + "approxDurationCoeficient": 6 + }, + { + "voiceProvider": "azure", + "character": "HsiaoChen", + "name": "Chinese (Taiwanese Mandarin, Traditional)", + "locale": "zh-TW", + "voice": "zh-TW-HsiaoChenNeural", + "icon": "tw", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-tw-hsiaochenneural-zh-cn.mp3", + "approxDurationCoeficient": 6 + }, + { + "voiceProvider": "azure", + "character": "HsiaoYu", + "name": "Chinese (Taiwanese Mandarin, Traditional)", + "locale": "zh-TW", + "voice": "zh-TW-HsiaoYuNeural", + "icon": "tw", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zh-tw-hsiaoyuneural-zh-cn.mp3", + "approxDurationCoeficient": 8 + }, + { + "character": "Mei A", + "name": "Chinese-CN", + "voice": "cmn-CN-Wavenet-A", + "icon": "cn", + "voiceProvider": "google", + "locale": "cmn-CN", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-cmn-cn-wavenet-a-zh-cn.mp3", + "approxDurationCoeficient": 4 + }, + { + "character": "Wei D", + "name": "Chinese-CN", + "voice": "cmn-CN-Wavenet-D", + "icon": "cn", + "voiceProvider": "google", + "locale": "cmn-CN", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-cmn-cn-wavenet-d-zh-cn.mp3", + "approxDurationCoeficient": 4 + }, + { + "character": "Jiā A", + "name": "Chinese-TW", + "voice": "cmn-TW-Wavenet-A", + "icon": "tw", + "voiceProvider": "google", + "locale": "cmn-TW", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-cmn-tw-wavenet-a-zh-cn.mp3" + } + ] + }, + { + "name": "Croatian", + "male": [ + { + "voiceProvider": "azure", + "character": "Srecko", + "name": "Croatian (Croatia)", + "locale": "hr-HR", + "voice": "hr-HR-SreckoNeural", + "icon": "hr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-hr-hr-sreckoneural-hr-hr.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Antoni", + "voice": "ErXwobaYiN019PkySvjV", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "well-rounded", + "calm" + ], + "order": 1, + "name": "Croatian (Croatia)", + "locale": "hr-HR", + "icon": "hr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-erxwobayin019pkysvjv-hr-hr.mp3" + }, + { + "character": "Josh", + "voice": "TxGEqnHWrfWFTfGW9XjX", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "young" + ], + "order": 2, + "name": "Croatian (Croatia)", + "locale": "hr-HR", + "icon": "hr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-txgeqnhwrfwftfgw9xjx-hr-hr.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Arnold", + "voice": "VR6AewLTigWG4xSOukaG", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "crisp", + "middle-aged" + ], + "order": 3, + "name": "Croatian (Croatia)", + "locale": "hr-HR", + "icon": "hr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-vr6aewltigwg4xsoukag-hr-hr.mp3" + }, + { + "character": "Adam", + "voice": "pNInz6obpgDQGcFmaJgB", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "middle-aged" + ], + "order": 4, + "name": "Croatian (Croatia)", + "locale": "hr-HR", + "icon": "hr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pninz6obpgdqgcfmajgb-hr-hr.mp3" + }, + { + "character": "Bill", + "voice": "pqHfZKP75CvOlQylNhV4", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "strong", + "middle-aged" + ], + "order": 5, + "name": "Croatian (Croatia)", + "locale": "hr-HR", + "icon": "hr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pqhfzkp75cvolqylnhv4-hr-hr.mp3" + }, + { + "character": "Jessie", + "voice": "t0jbNlBVZ17f02VDIeMI", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "fast-paced", + "old" + ], + "order": 6, + "name": "Croatian (Croatia)", + "locale": "hr-HR", + "icon": "hr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-t0jbnlbvz17f02vdiemi-hr-hr.mp3" + }, + { + "character": "Michael", + "voice": "flq6f7yk4E4fJM5XTYuZ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "orutund", + "old" + ], + "order": 7, + "name": "Croatian (Croatia)", + "locale": "hr-HR", + "icon": "hr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-flq6f7yk4e4fjm5xtyuz-hr-hr.mp3" + }, + { + "character": "Liam", + "voice": "TX3LPaxmHKxFdv7VOQHJ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "neutral", + "young" + ], + "order": 8, + "name": "Croatian (Croatia)", + "locale": "hr-HR", + "icon": "hr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-tx3lpaxmhkxfdv7voqhj-hr-hr.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Harry", + "voice": "SOYHLrjzK2X1ezoPC6cr", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "anxious", + "young" + ], + "order": 9, + "name": "Croatian (Croatia)", + "locale": "hr-HR", + "icon": "hr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-soyhlrjzk2x1ezopc6cr-hr-hr.mp3" + }, + { + "character": "Patrick", + "voice": "ODq5zmih8GrVes37Dizd", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "shouty", + "middle-aged" + ], + "order": 10, + "name": "Croatian (Croatia)", + "locale": "hr-HR", + "icon": "hr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-odq5zmih8grves37dizd-hr-hr.mp3" + }, + { + "character": "Thomas", + "voice": "GBv7mTt0atIp3Br8iCZE", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 11, + "name": "Croatian (Croatia)", + "locale": "hr-HR", + "icon": "hr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-gbv7mtt0atip3br8icze-hr-hr.mp3" + }, + { + "character": "Drew", + "voice": "29vD33N1CtxCmqQRPOHJ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "well-rounded", + "middle-aged" + ], + "order": 12, + "name": "Croatian (Croatia)", + "locale": "hr-HR", + "icon": "hr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-29vd33n1ctxcmqqrpohj-hr-hr.mp3" + }, + { + "character": "Paul", + "voice": "5Q0t7uMcjvnagumLfvZi", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "narration", + "middle-aged" + ], + "order": 13, + "name": "Croatian (Croatia)", + "locale": "hr-HR", + "icon": "hr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-5q0t7umcjvnagumlfvzi-hr-hr.mp3" + }, + { + "character": "Callum", + "voice": "N2lVS1w4EtoT3dr4eOWO", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "masculine", + "middle-aged" + ], + "order": 14, + "name": "Croatian (Croatia)", + "locale": "hr-HR", + "icon": "hr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-n2lvs1w4etot3dr4eowo-hr-hr.mp3" + }, + { + "character": "Giovanni", + "voice": "zcAOhNBS3c14rBihAFp1", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "italian-accent", + "young" + ], + "order": 15, + "name": "Croatian (Croatia)", + "locale": "hr-HR", + "icon": "hr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zcaohnbs3c14rbihafp1-hr-hr.mp3" + }, + { + "character": "Clyde", + "voice": "2EiwWnXFnvU5JabPnv8n", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "masculine", + "middle-aged" + ], + "order": 17, + "name": "Croatian (Croatia)", + "locale": "hr-HR", + "icon": "hr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-2eiwwnxfnvu5jabpnv8n-hr-hr.mp3" + }, + { + "character": "George", + "voice": "JBFqnCBsd6RMkjVDRZzb", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "raspy", + "narration" + ], + "order": 19, + "name": "Croatian (Croatia)", + "locale": "hr-HR", + "icon": "hr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-jbfqncbsd6rmkjvdrzzb-hr-hr.mp3" + }, + { + "character": "Dave", + "voice": "CYw3kZ02Hs0563khs1Fj", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "essex-accent", + "young" + ], + "order": 20, + "name": "Croatian (Croatia)", + "locale": "hr-HR", + "icon": "hr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-cyw3kz02hs0563khs1fj-hr-hr.mp3" + }, + { + "character": "Joseph", + "voice": "Zlb1dXrM653N07WRdFW3", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "upbeat", + "middle-aged" + ], + "order": 21, + "name": "Croatian (Croatia)", + "locale": "hr-HR", + "icon": "hr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zlb1dxrm653n07wrdfw3-hr-hr.mp3" + }, + { + "character": "Daniel", + "voice": "onwK4e9ZLuTAKqWW03F9", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "middle-aged" + ], + "order": 22, + "name": "Croatian (Croatia)", + "locale": "hr-HR", + "icon": "hr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-onwk4e9zlutakqww03f9-hr-hr.mp3" + }, + { + "character": "Charlie", + "voice": "IKne3meq5aSn9XLyUdCD", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "casual", + "middle-aged" + ], + "order": 23, + "name": "Croatian (Croatia)", + "locale": "hr-HR", + "icon": "hr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-ikne3meq5asn9xlyudcd-hr-hr.mp3" + }, + { + "character": "James", + "voice": "ZQe5CZNOzWyzPSCn5a3c", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "old" + ], + "order": 24, + "name": "Croatian (Croatia)", + "locale": "hr-HR", + "icon": "hr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zqe5cznozwyzpscn5a3c-hr-hr.mp3" + }, + { + "character": "Fin", + "voice": "D38z5RcWu1voky8WS1ja", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "sailor", + "old" + ], + "order": 25, + "name": "Croatian (Croatia)", + "locale": "hr-HR", + "icon": "hr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-d38z5rcwu1voky8ws1ja-hr-hr.mp3" + }, + { + "character": "Jeremy", + "voice": "bVMeCyTHy58xNoL34h3p", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "excited", + "young" + ], + "order": 26, + "name": "Croatian (Croatia)", + "locale": "hr-HR", + "icon": "hr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-bvmecythy58xnol34h3p-hr-hr.mp3" + }, + { + "character": "Chris", + "voice": "iP95p4xoKVk53GoZ742B", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Croatian (Croatia)", + "locale": "hr-HR", + "icon": "hr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-ip95p4xokvk53goz742b-hr-hr.mp3" + }, + { + "character": "Brian", + "voice": "nPczCjzI2devNBz1zQrb", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Croatian (Croatia)", + "locale": "hr-HR", + "icon": "hr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-npczcjzi2devnbz1zqrb-hr-hr.mp3" + }, + { + "character": "Sam", + "voice": "yoZ06aMxZJJ28mfd3POQ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "fast-paced", + "young" + ], + "order": 99999, + "name": "Croatian (Croatia)", + "locale": "hr-HR", + "icon": "hr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-yoz06amxzjj28mfd3poq-hr-hr.mp3" + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Gabrijela", + "name": "Croatian (Croatia)", + "locale": "hr-HR", + "voice": "hr-HR-GabrijelaNeural", + "icon": "hr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-hr-hr-gabrijelaneural-hr-hr.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Rachel", + "voice": "21m00Tcm4TlvDq8ikWAM", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 1, + "name": "Croatian (Croatia)", + "locale": "hr-HR", + "icon": "hr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-21m00tcm4tlvdq8ikwam-hr-hr.mp3" + }, + { + "character": "Matilda", + "voice": "XrExE9yKIg1WjnnlVkGX", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 3, + "name": "Croatian (Croatia)", + "locale": "hr-HR", + "icon": "hr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xrexe9ykig1wjnnlvkgx-hr-hr.mp3" + }, + { + "character": "Grace", + "voice": "oWAxZDx7w5VEj9dCyTzz", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "southern-accent", + "young" + ], + "order": 4, + "name": "Croatian (Croatia)", + "locale": "hr-HR", + "icon": "hr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-owaxzdx7w5vej9dcytzz-hr-hr.mp3" + }, + { + "character": "Domi", + "voice": "AZnzlk1XvdvUeBnXmlld", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "upbeat", + "young" + ], + "order": 5, + "name": "Croatian (Croatia)", + "locale": "hr-HR", + "icon": "hr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-aznzlk1xvdvuebnxmlld-hr-hr.mp3" + }, + { + "character": "Gigi", + "voice": "jBpfuIE2acCO8z3wKNLl", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "childish", + "young" + ], + "order": 6, + "name": "Croatian (Croatia)", + "locale": "hr-HR", + "icon": "hr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-jbpfuie2acco8z3wknll-hr-hr.mp3" + }, + { + "character": "Serena", + "voice": "pMsXgVXv3BLzUgSXRplE", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "order": 7, + "name": "Croatian (Croatia)", + "locale": "hr-HR", + "icon": "hr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pmsxgvxv3blzugsxrple-hr-hr.mp3" + }, + { + "character": "Glinda", + "voice": "z9fAnlkpzviPz146aGWa", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "strong", + "middle-aged" + ], + "order": 8, + "name": "Croatian (Croatia)", + "locale": "hr-HR", + "icon": "hr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-z9fanlkpzvipz146agwa-hr-hr.mp3" + }, + { + "character": "Mimi", + "voice": "zrHiDhphv9ZnVXBqCLjz", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "childish", + "young" + ], + "order": 9, + "name": "Croatian (Croatia)", + "locale": "hr-HR", + "icon": "hr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zrhidhphv9znvxbqcljz-hr-hr.mp3" + }, + { + "character": "Emily", + "voice": "LcfcDJNUP1GQjkzn1xUU", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "order": 10, + "name": "Croatian (Croatia)", + "locale": "hr-HR", + "icon": "hr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-lcfcdjnup1gqjkzn1xuu-hr-hr.mp3" + }, + { + "character": "Lily", + "voice": "pFZP5JQG7iQjIQuC4Bku", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "raspy", + "middle-aged" + ], + "order": 11, + "name": "Croatian (Croatia)", + "locale": "hr-HR", + "icon": "hr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pfzp5jqg7iqjiquc4bku-hr-hr.mp3" + }, + { + "character": "Charlotte", + "voice": "XB0fDUnXU5powFXDhCwa", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "swedish-accent", + "young" + ], + "order": 12, + "name": "Croatian (Croatia)", + "locale": "hr-HR", + "icon": "hr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xb0fdunxu5powfxdhcwa-hr-hr.mp3" + }, + { + "character": "Dorothy", + "voice": "ThT5KcBeYPX3keUQqHPh", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 13, + "name": "Croatian (Croatia)", + "locale": "hr-HR", + "icon": "hr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-tht5kcbeypx3keuqqhph-hr-hr.mp3" + }, + { + "character": "Sarah", + "voice": "EXAVITQu4vr4xnSDxMaL", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 99999, + "name": "Croatian (Croatia)", + "locale": "hr-HR", + "icon": "hr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-exavitqu4vr4xnsdxmal-hr-hr.mp3" + }, + { + "character": "Alice", + "voice": "Xb7hH8MSUJpSbSDYk0k2", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Croatian (Croatia)", + "locale": "hr-HR", + "icon": "hr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xb7hh8msujpsbsdyk0k2-hr-hr.mp3" + } + ] + }, + { + "name": "Czech", + "male": [ + { + "voiceProvider": "azure", + "character": "Antonin", + "name": "Czech (Czechia)", + "locale": "cs-CZ", + "voice": "cs-CZ-AntoninNeural", + "icon": "cz", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-cs-cz-antoninneural-cs-cz.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Antoni", + "voice": "ErXwobaYiN019PkySvjV", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "well-rounded", + "calm" + ], + "order": 1, + "name": "Czech (Czech)", + "locale": "cs-CZ", + "icon": "cz", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-erxwobayin019pkysvjv-cs-cz.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Josh", + "voice": "TxGEqnHWrfWFTfGW9XjX", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "young" + ], + "order": 2, + "name": "Czech (Czech)", + "locale": "cs-CZ", + "icon": "cz", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-txgeqnhwrfwftfgw9xjx-cs-cz.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Arnold", + "voice": "VR6AewLTigWG4xSOukaG", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "crisp", + "middle-aged" + ], + "order": 3, + "name": "Czech (Czech)", + "locale": "cs-CZ", + "icon": "cz", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-vr6aewltigwg4xsoukag-cs-cz.mp3" + }, + { + "character": "Adam", + "voice": "pNInz6obpgDQGcFmaJgB", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "middle-aged" + ], + "order": 4, + "name": "Czech (Czech)", + "locale": "cs-CZ", + "icon": "cz", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pninz6obpgdqgcfmajgb-cs-cz.mp3" + }, + { + "character": "Bill", + "voice": "pqHfZKP75CvOlQylNhV4", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "strong", + "middle-aged" + ], + "order": 5, + "name": "Czech (Czech)", + "locale": "cs-CZ", + "icon": "cz", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pqhfzkp75cvolqylnhv4-cs-cz.mp3" + }, + { + "character": "Jessie", + "voice": "t0jbNlBVZ17f02VDIeMI", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "fast-paced", + "old" + ], + "order": 6, + "name": "Czech (Czech)", + "locale": "cs-CZ", + "icon": "cz", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-t0jbnlbvz17f02vdiemi-cs-cz.mp3" + }, + { + "character": "Michael", + "voice": "flq6f7yk4E4fJM5XTYuZ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "orutund", + "old" + ], + "order": 7, + "name": "Czech (Czech)", + "locale": "cs-CZ", + "icon": "cz", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-flq6f7yk4e4fjm5xtyuz-cs-cz.mp3" + }, + { + "character": "Liam", + "voice": "TX3LPaxmHKxFdv7VOQHJ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "neutral", + "young" + ], + "order": 8, + "name": "Czech (Czech)", + "locale": "cs-CZ", + "icon": "cz", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-tx3lpaxmhkxfdv7voqhj-cs-cz.mp3" + }, + { + "character": "Harry", + "voice": "SOYHLrjzK2X1ezoPC6cr", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "anxious", + "young" + ], + "order": 9, + "name": "Czech (Czech)", + "locale": "cs-CZ", + "icon": "cz", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-soyhlrjzk2x1ezopc6cr-cs-cz.mp3" + }, + { + "character": "Patrick", + "voice": "ODq5zmih8GrVes37Dizd", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "shouty", + "middle-aged" + ], + "order": 10, + "name": "Czech (Czech)", + "locale": "cs-CZ", + "icon": "cz", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-odq5zmih8grves37dizd-cs-cz.mp3" + }, + { + "character": "Thomas", + "voice": "GBv7mTt0atIp3Br8iCZE", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 11, + "name": "Czech (Czech)", + "locale": "cs-CZ", + "icon": "cz", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-gbv7mtt0atip3br8icze-cs-cz.mp3" + }, + { + "character": "Drew", + "voice": "29vD33N1CtxCmqQRPOHJ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "well-rounded", + "middle-aged" + ], + "order": 12, + "name": "Czech (Czech)", + "locale": "cs-CZ", + "icon": "cz", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-29vd33n1ctxcmqqrpohj-cs-cz.mp3" + }, + { + "character": "Paul", + "voice": "5Q0t7uMcjvnagumLfvZi", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "narration", + "middle-aged" + ], + "order": 13, + "name": "Czech (Czech)", + "locale": "cs-CZ", + "icon": "cz", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-5q0t7umcjvnagumlfvzi-cs-cz.mp3" + }, + { + "character": "Callum", + "voice": "N2lVS1w4EtoT3dr4eOWO", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "masculine", + "middle-aged" + ], + "order": 14, + "name": "Czech (Czech)", + "locale": "cs-CZ", + "icon": "cz", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-n2lvs1w4etot3dr4eowo-cs-cz.mp3" + }, + { + "character": "Giovanni", + "voice": "zcAOhNBS3c14rBihAFp1", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "italian-accent", + "young" + ], + "order": 15, + "name": "Czech (Czech)", + "locale": "cs-CZ", + "icon": "cz", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zcaohnbs3c14rbihafp1-cs-cz.mp3" + }, + { + "character": "Clyde", + "voice": "2EiwWnXFnvU5JabPnv8n", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "masculine", + "middle-aged" + ], + "order": 17, + "name": "Czech (Czech)", + "locale": "cs-CZ", + "icon": "cz", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-2eiwwnxfnvu5jabpnv8n-cs-cz.mp3" + }, + { + "character": "George", + "voice": "JBFqnCBsd6RMkjVDRZzb", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "raspy", + "narration" + ], + "order": 19, + "name": "Czech (Czech)", + "locale": "cs-CZ", + "icon": "cz", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-jbfqncbsd6rmkjvdrzzb-cs-cz.mp3" + }, + { + "character": "Dave", + "voice": "CYw3kZ02Hs0563khs1Fj", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "essex-accent", + "young" + ], + "order": 20, + "name": "Czech (Czech)", + "locale": "cs-CZ", + "icon": "cz", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-cyw3kz02hs0563khs1fj-cs-cz.mp3" + }, + { + "character": "Joseph", + "voice": "Zlb1dXrM653N07WRdFW3", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "upbeat", + "middle-aged" + ], + "order": 21, + "name": "Czech (Czech)", + "locale": "cs-CZ", + "icon": "cz", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zlb1dxrm653n07wrdfw3-cs-cz.mp3" + }, + { + "character": "Daniel", + "voice": "onwK4e9ZLuTAKqWW03F9", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "middle-aged" + ], + "order": 22, + "name": "Czech (Czech)", + "locale": "cs-CZ", + "icon": "cz", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-onwk4e9zlutakqww03f9-cs-cz.mp3", + "approxDurationCoeficient": 13 + }, + { + "character": "Charlie", + "voice": "IKne3meq5aSn9XLyUdCD", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "casual", + "middle-aged" + ], + "order": 23, + "name": "Czech (Czech)", + "locale": "cs-CZ", + "icon": "cz", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-ikne3meq5asn9xlyudcd-cs-cz.mp3" + }, + { + "character": "James", + "voice": "ZQe5CZNOzWyzPSCn5a3c", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "old" + ], + "order": 24, + "name": "Czech (Czech)", + "locale": "cs-CZ", + "icon": "cz", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zqe5cznozwyzpscn5a3c-cs-cz.mp3" + }, + { + "character": "Fin", + "voice": "D38z5RcWu1voky8WS1ja", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "sailor", + "old" + ], + "order": 25, + "name": "Czech (Czech)", + "locale": "cs-CZ", + "icon": "cz", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-d38z5rcwu1voky8ws1ja-cs-cz.mp3" + }, + { + "character": "Jeremy", + "voice": "bVMeCyTHy58xNoL34h3p", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "excited", + "young" + ], + "order": 26, + "name": "Czech (Czech)", + "locale": "cs-CZ", + "icon": "cz", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-bvmecythy58xnol34h3p-cs-cz.mp3" + }, + { + "character": "Chris", + "voice": "iP95p4xoKVk53GoZ742B", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Czech (Czech)", + "locale": "cs-CZ", + "icon": "cz", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-ip95p4xokvk53goz742b-cs-cz.mp3" + }, + { + "character": "Brian", + "voice": "nPczCjzI2devNBz1zQrb", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Czech (Czech)", + "locale": "cs-CZ", + "icon": "cz", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-npczcjzi2devnbz1zqrb-cs-cz.mp3" + }, + { + "character": "Sam", + "voice": "yoZ06aMxZJJ28mfd3POQ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "fast-paced", + "young" + ], + "order": 99999, + "name": "Czech (Czech)", + "locale": "cs-CZ", + "icon": "cz", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-yoz06amxzjj28mfd3poq-cs-cz.mp3" + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Vlasta", + "name": "Czech (Czechia)", + "locale": "cs-CZ", + "voice": "cs-CZ-VlastaNeural", + "icon": "cz", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-cs-cz-vlastaneural-cs-cz.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "Rachel", + "voice": "21m00Tcm4TlvDq8ikWAM", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 1, + "name": "Czech (Czech)", + "locale": "cs-CZ", + "icon": "cz", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-21m00tcm4tlvdq8ikwam-cs-cz.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Matilda", + "voice": "XrExE9yKIg1WjnnlVkGX", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 3, + "name": "Czech (Czech)", + "locale": "cs-CZ", + "icon": "cz", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xrexe9ykig1wjnnlvkgx-cs-cz.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Grace", + "voice": "oWAxZDx7w5VEj9dCyTzz", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "southern-accent", + "young" + ], + "order": 4, + "name": "Czech (Czech)", + "locale": "cs-CZ", + "icon": "cz", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-owaxzdx7w5vej9dcytzz-cs-cz.mp3" + }, + { + "character": "Domi", + "voice": "AZnzlk1XvdvUeBnXmlld", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "upbeat", + "young" + ], + "order": 5, + "name": "Czech (Czech)", + "locale": "cs-CZ", + "icon": "cz", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-aznzlk1xvdvuebnxmlld-cs-cz.mp3" + }, + { + "character": "Gigi", + "voice": "jBpfuIE2acCO8z3wKNLl", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "childish", + "young" + ], + "order": 6, + "name": "Czech (Czech)", + "locale": "cs-CZ", + "icon": "cz", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-jbpfuie2acco8z3wknll-cs-cz.mp3" + }, + { + "character": "Serena", + "voice": "pMsXgVXv3BLzUgSXRplE", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "order": 7, + "name": "Czech (Czech)", + "locale": "cs-CZ", + "icon": "cz", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pmsxgvxv3blzugsxrple-cs-cz.mp3", + "approxDurationCoeficient": 13 + }, + { + "character": "Glinda", + "voice": "z9fAnlkpzviPz146aGWa", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "strong", + "middle-aged" + ], + "order": 8, + "name": "Czech (Czech)", + "locale": "cs-CZ", + "icon": "cz", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-z9fanlkpzvipz146agwa-cs-cz.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "Mimi", + "voice": "zrHiDhphv9ZnVXBqCLjz", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "childish", + "young" + ], + "order": 9, + "name": "Czech (Czech)", + "locale": "cs-CZ", + "icon": "cz", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zrhidhphv9znvxbqcljz-cs-cz.mp3", + "approxDurationCoeficient": 19 + }, + { + "character": "Emily", + "voice": "LcfcDJNUP1GQjkzn1xUU", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "order": 10, + "name": "Czech (Czech)", + "locale": "cs-CZ", + "icon": "cz", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-lcfcdjnup1gqjkzn1xuu-cs-cz.mp3" + }, + { + "character": "Lily", + "voice": "pFZP5JQG7iQjIQuC4Bku", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "raspy", + "middle-aged" + ], + "order": 11, + "name": "Czech (Czech)", + "locale": "cs-CZ", + "icon": "cz", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pfzp5jqg7iqjiquc4bku-cs-cz.mp3" + }, + { + "character": "Charlotte", + "voice": "XB0fDUnXU5powFXDhCwa", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "swedish-accent", + "young" + ], + "order": 12, + "name": "Czech (Czech)", + "locale": "cs-CZ", + "icon": "cz", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xb0fdunxu5powfxdhcwa-cs-cz.mp3" + }, + { + "character": "Dorothy", + "voice": "ThT5KcBeYPX3keUQqHPh", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 13, + "name": "Czech (Czech)", + "locale": "cs-CZ", + "icon": "cz", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-tht5kcbeypx3keuqqhph-cs-cz.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Sarah", + "voice": "EXAVITQu4vr4xnSDxMaL", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 99999, + "name": "Czech (Czech)", + "locale": "cs-CZ", + "icon": "cz", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-exavitqu4vr4xnsdxmal-cs-cz.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Alice", + "voice": "Xb7hH8MSUJpSbSDYk0k2", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Czech (Czech)", + "locale": "cs-CZ", + "icon": "cz", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xb7hh8msujpsbsdyk0k2-cs-cz.mp3" + }, + { + "character": "Elanor A", + "name": "Czech-CZ", + "voice": "cs-CZ-Wavenet-A", + "icon": "cz", + "voiceProvider": "google", + "locale": "cs-CZ", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-cs-cz-wavenet-a-cs-cz.mp3", + "approxDurationCoeficient": 15 + } + ] + }, + { + "name": "Danish", + "male": [ + { + "voiceProvider": "azure", + "character": "Jeppe", + "name": "Danish (Denmark)", + "locale": "da-DK", + "voice": "da-DK-JeppeNeural", + "icon": "dk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-da-dk-jeppeneural-da-dk.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Antoni", + "voice": "ErXwobaYiN019PkySvjV", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "well-rounded", + "calm" + ], + "order": 1, + "name": "Danish (Denmark)", + "locale": "da-DK", + "icon": "dk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-erxwobayin019pkysvjv-da-dk.mp3" + }, + { + "character": "Josh", + "voice": "TxGEqnHWrfWFTfGW9XjX", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "young" + ], + "order": 2, + "name": "Danish (Denmark)", + "locale": "da-DK", + "icon": "dk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-txgeqnhwrfwftfgw9xjx-da-dk.mp3" + }, + { + "character": "Arnold", + "voice": "VR6AewLTigWG4xSOukaG", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "crisp", + "middle-aged" + ], + "order": 3, + "name": "Danish (Denmark)", + "locale": "da-DK", + "icon": "dk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-vr6aewltigwg4xsoukag-da-dk.mp3" + }, + { + "character": "Adam", + "voice": "pNInz6obpgDQGcFmaJgB", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "middle-aged" + ], + "order": 4, + "name": "Danish (Denmark)", + "locale": "da-DK", + "icon": "dk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pninz6obpgdqgcfmajgb-da-dk.mp3" + }, + { + "character": "Bill", + "voice": "pqHfZKP75CvOlQylNhV4", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "strong", + "middle-aged" + ], + "order": 5, + "name": "Danish (Denmark)", + "locale": "da-DK", + "icon": "dk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pqhfzkp75cvolqylnhv4-da-dk.mp3" + }, + { + "character": "Jessie", + "voice": "t0jbNlBVZ17f02VDIeMI", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "fast-paced", + "old" + ], + "order": 6, + "name": "Danish (Denmark)", + "locale": "da-DK", + "icon": "dk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-t0jbnlbvz17f02vdiemi-da-dk.mp3" + }, + { + "character": "Michael", + "voice": "flq6f7yk4E4fJM5XTYuZ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "orutund", + "old" + ], + "order": 7, + "name": "Danish (Denmark)", + "locale": "da-DK", + "icon": "dk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-flq6f7yk4e4fjm5xtyuz-da-dk.mp3" + }, + { + "character": "Liam", + "voice": "TX3LPaxmHKxFdv7VOQHJ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "neutral", + "young" + ], + "order": 8, + "name": "Danish (Denmark)", + "locale": "da-DK", + "icon": "dk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-tx3lpaxmhkxfdv7voqhj-da-dk.mp3" + }, + { + "character": "Harry", + "voice": "SOYHLrjzK2X1ezoPC6cr", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "anxious", + "young" + ], + "order": 9, + "name": "Danish (Denmark)", + "locale": "da-DK", + "icon": "dk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-soyhlrjzk2x1ezopc6cr-da-dk.mp3" + }, + { + "character": "Patrick", + "voice": "ODq5zmih8GrVes37Dizd", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "shouty", + "middle-aged" + ], + "order": 10, + "name": "Danish (Denmark)", + "locale": "da-DK", + "icon": "dk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-odq5zmih8grves37dizd-da-dk.mp3" + }, + { + "character": "Thomas", + "voice": "GBv7mTt0atIp3Br8iCZE", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 11, + "name": "Danish (Denmark)", + "locale": "da-DK", + "icon": "dk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-gbv7mtt0atip3br8icze-da-dk.mp3" + }, + { + "character": "Drew", + "voice": "29vD33N1CtxCmqQRPOHJ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "well-rounded", + "middle-aged" + ], + "order": 12, + "name": "Danish (Denmark)", + "locale": "da-DK", + "icon": "dk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-29vd33n1ctxcmqqrpohj-da-dk.mp3" + }, + { + "character": "Paul", + "voice": "5Q0t7uMcjvnagumLfvZi", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "narration", + "middle-aged" + ], + "order": 13, + "name": "Danish (Denmark)", + "locale": "da-DK", + "icon": "dk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-5q0t7umcjvnagumlfvzi-da-dk.mp3" + }, + { + "character": "Callum", + "voice": "N2lVS1w4EtoT3dr4eOWO", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "masculine", + "middle-aged" + ], + "order": 14, + "name": "Danish (Denmark)", + "locale": "da-DK", + "icon": "dk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-n2lvs1w4etot3dr4eowo-da-dk.mp3" + }, + { + "character": "Giovanni", + "voice": "zcAOhNBS3c14rBihAFp1", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "italian-accent", + "young" + ], + "order": 15, + "name": "Danish (Denmark)", + "locale": "da-DK", + "icon": "dk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zcaohnbs3c14rbihafp1-da-dk.mp3" + }, + { + "character": "Clyde", + "voice": "2EiwWnXFnvU5JabPnv8n", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "masculine", + "middle-aged" + ], + "order": 17, + "name": "Danish (Denmark)", + "locale": "da-DK", + "icon": "dk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-2eiwwnxfnvu5jabpnv8n-da-dk.mp3" + }, + { + "character": "George", + "voice": "JBFqnCBsd6RMkjVDRZzb", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "raspy", + "narration" + ], + "order": 19, + "name": "Danish (Denmark)", + "locale": "da-DK", + "icon": "dk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-jbfqncbsd6rmkjvdrzzb-da-dk.mp3" + }, + { + "character": "Dave", + "voice": "CYw3kZ02Hs0563khs1Fj", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "essex-accent", + "young" + ], + "order": 20, + "name": "Danish (Denmark)", + "locale": "da-DK", + "icon": "dk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-cyw3kz02hs0563khs1fj-da-dk.mp3" + }, + { + "character": "Joseph", + "voice": "Zlb1dXrM653N07WRdFW3", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "upbeat", + "middle-aged" + ], + "order": 21, + "name": "Danish (Denmark)", + "locale": "da-DK", + "icon": "dk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zlb1dxrm653n07wrdfw3-da-dk.mp3" + }, + { + "character": "Daniel", + "voice": "onwK4e9ZLuTAKqWW03F9", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "middle-aged" + ], + "order": 22, + "name": "Danish (Denmark)", + "locale": "da-DK", + "icon": "dk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-onwk4e9zlutakqww03f9-da-dk.mp3" + }, + { + "character": "Charlie", + "voice": "IKne3meq5aSn9XLyUdCD", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "casual", + "middle-aged" + ], + "order": 23, + "name": "Danish (Denmark)", + "locale": "da-DK", + "icon": "dk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-ikne3meq5asn9xlyudcd-da-dk.mp3" + }, + { + "character": "James", + "voice": "ZQe5CZNOzWyzPSCn5a3c", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "old" + ], + "order": 24, + "name": "Danish (Denmark)", + "locale": "da-DK", + "icon": "dk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zqe5cznozwyzpscn5a3c-da-dk.mp3" + }, + { + "character": "Fin", + "voice": "D38z5RcWu1voky8WS1ja", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "sailor", + "old" + ], + "order": 25, + "name": "Danish (Denmark)", + "locale": "da-DK", + "icon": "dk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-d38z5rcwu1voky8ws1ja-da-dk.mp3" + }, + { + "character": "Jeremy", + "voice": "bVMeCyTHy58xNoL34h3p", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "excited", + "young" + ], + "order": 26, + "name": "Danish (Denmark)", + "locale": "da-DK", + "icon": "dk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-bvmecythy58xnol34h3p-da-dk.mp3" + }, + { + "character": "Chris", + "voice": "iP95p4xoKVk53GoZ742B", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Danish (Denmark)", + "locale": "da-DK", + "icon": "dk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-ip95p4xokvk53goz742b-da-dk.mp3" + }, + { + "character": "Brian", + "voice": "nPczCjzI2devNBz1zQrb", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Danish (Denmark)", + "locale": "da-DK", + "icon": "dk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-npczcjzi2devnbz1zqrb-da-dk.mp3" + }, + { + "character": "Sam", + "voice": "yoZ06aMxZJJ28mfd3POQ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "fast-paced", + "young" + ], + "order": 99999, + "name": "Danish (Denmark)", + "locale": "da-DK", + "icon": "dk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-yoz06amxzjj28mfd3poq-da-dk.mp3" + }, + { + "character": "Arne C", + "name": "Danish-DK", + "voice": "da-DK-Wavenet-C", + "icon": "dk", + "voiceProvider": "google", + "locale": "da-DK", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-da-dk-wavenet-c-da-dk.mp3", + "approxDurationCoeficient": 21 + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Christel", + "name": "Danish (Denmark)", + "locale": "da-DK", + "voice": "da-DK-ChristelNeural", + "icon": "dk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-da-dk-christelneural-da-dk.mp3", + "approxDurationCoeficient": 18 + }, + { + "character": "Rachel", + "voice": "21m00Tcm4TlvDq8ikWAM", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 1, + "name": "Danish (Denmark)", + "locale": "da-DK", + "icon": "dk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-21m00tcm4tlvdq8ikwam-da-dk.mp3" + }, + { + "character": "Matilda", + "voice": "XrExE9yKIg1WjnnlVkGX", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 3, + "name": "Danish (Denmark)", + "locale": "da-DK", + "icon": "dk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xrexe9ykig1wjnnlvkgx-da-dk.mp3" + }, + { + "character": "Grace", + "voice": "oWAxZDx7w5VEj9dCyTzz", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "southern-accent", + "young" + ], + "order": 4, + "name": "Danish (Denmark)", + "locale": "da-DK", + "icon": "dk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-owaxzdx7w5vej9dcytzz-da-dk.mp3" + }, + { + "character": "Domi", + "voice": "AZnzlk1XvdvUeBnXmlld", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "upbeat", + "young" + ], + "order": 5, + "name": "Danish (Denmark)", + "locale": "da-DK", + "icon": "dk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-aznzlk1xvdvuebnxmlld-da-dk.mp3" + }, + { + "character": "Gigi", + "voice": "jBpfuIE2acCO8z3wKNLl", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "childish", + "young" + ], + "order": 6, + "name": "Danish (Denmark)", + "locale": "da-DK", + "icon": "dk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-jbpfuie2acco8z3wknll-da-dk.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Serena", + "voice": "pMsXgVXv3BLzUgSXRplE", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "order": 7, + "name": "Danish (Denmark)", + "locale": "da-DK", + "icon": "dk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pmsxgvxv3blzugsxrple-da-dk.mp3" + }, + { + "character": "Glinda", + "voice": "z9fAnlkpzviPz146aGWa", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "strong", + "middle-aged" + ], + "order": 8, + "name": "Danish (Denmark)", + "locale": "da-DK", + "icon": "dk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-z9fanlkpzvipz146agwa-da-dk.mp3" + }, + { + "character": "Mimi", + "voice": "zrHiDhphv9ZnVXBqCLjz", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "childish", + "young" + ], + "order": 9, + "name": "Danish (Denmark)", + "locale": "da-DK", + "icon": "dk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zrhidhphv9znvxbqcljz-da-dk.mp3" + }, + { + "character": "Emily", + "voice": "LcfcDJNUP1GQjkzn1xUU", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "order": 10, + "name": "Danish (Denmark)", + "locale": "da-DK", + "icon": "dk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-lcfcdjnup1gqjkzn1xuu-da-dk.mp3" + }, + { + "character": "Lily", + "voice": "pFZP5JQG7iQjIQuC4Bku", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "raspy", + "middle-aged" + ], + "order": 11, + "name": "Danish (Denmark)", + "locale": "da-DK", + "icon": "dk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pfzp5jqg7iqjiquc4bku-da-dk.mp3" + }, + { + "character": "Charlotte", + "voice": "XB0fDUnXU5powFXDhCwa", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "swedish-accent", + "young" + ], + "order": 12, + "name": "Danish (Denmark)", + "locale": "da-DK", + "icon": "dk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xb0fdunxu5powfxdhcwa-da-dk.mp3" + }, + { + "character": "Dorothy", + "voice": "ThT5KcBeYPX3keUQqHPh", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 13, + "name": "Danish (Denmark)", + "locale": "da-DK", + "icon": "dk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-tht5kcbeypx3keuqqhph-da-dk.mp3" + }, + { + "character": "Sarah", + "voice": "EXAVITQu4vr4xnSDxMaL", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 99999, + "name": "Danish (Denmark)", + "locale": "da-DK", + "icon": "dk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-exavitqu4vr4xnsdxmal-da-dk.mp3" + }, + { + "character": "Alice", + "voice": "Xb7hH8MSUJpSbSDYk0k2", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Danish (Denmark)", + "locale": "da-DK", + "icon": "dk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xb7hh8msujpsbsdyk0k2-da-dk.mp3" + }, + { + "character": "Agnete D", + "name": "Danish-DK", + "voice": "da-DK-Neural2-D", + "icon": "dk", + "voiceProvider": "google", + "locale": "da-DK", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-da-dk-neural2-d-da-dk.mp3" + }, + { + "character": "Alice A", + "name": "Danish-DK", + "voice": "da-DK-Wavenet-A", + "icon": "dk", + "voiceProvider": "google", + "locale": "da-DK", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-da-dk-wavenet-a-da-dk.mp3", + "approxDurationCoeficient": 21 + }, + { + "character": "Catrine E", + "name": "Danish-DK", + "voice": "da-DK-Wavenet-E", + "icon": "dk", + "voiceProvider": "google", + "locale": "da-DK", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-da-dk-wavenet-e-da-dk.mp3", + "approxDurationCoeficient": 19 + } + ] + }, + { + "name": "Dutch", + "male": [ + { + "voiceProvider": "azure", + "character": "Maarten", + "name": "Dutch (Netherlands)", + "locale": "nl-NL", + "voice": "nl-NL-MaartenNeural", + "icon": "nl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-nl-nl-maartenneural-nl-nl.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Antoni", + "voice": "ErXwobaYiN019PkySvjV", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "well-rounded", + "calm" + ], + "order": 1, + "name": "Dutch (Netherlands)", + "locale": "nl-NL", + "icon": "nl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-erxwobayin019pkysvjv-nl-nl.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Josh", + "voice": "TxGEqnHWrfWFTfGW9XjX", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "young" + ], + "order": 2, + "name": "Dutch (Netherlands)", + "locale": "nl-NL", + "icon": "nl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-txgeqnhwrfwftfgw9xjx-nl-nl.mp3", + "approxDurationCoeficient": 20 + }, + { + "character": "Arnold", + "voice": "VR6AewLTigWG4xSOukaG", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "crisp", + "middle-aged" + ], + "order": 3, + "name": "Dutch (Netherlands)", + "locale": "nl-NL", + "icon": "nl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-vr6aewltigwg4xsoukag-nl-nl.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Adam", + "voice": "pNInz6obpgDQGcFmaJgB", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "middle-aged" + ], + "order": 4, + "name": "Dutch (Netherlands)", + "locale": "nl-NL", + "icon": "nl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pninz6obpgdqgcfmajgb-nl-nl.mp3", + "approxDurationCoeficient": 18 + }, + { + "character": "Bill", + "voice": "pqHfZKP75CvOlQylNhV4", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "strong", + "middle-aged" + ], + "order": 5, + "name": "Dutch (Netherlands)", + "locale": "nl-NL", + "icon": "nl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pqhfzkp75cvolqylnhv4-nl-nl.mp3" + }, + { + "character": "Jessie", + "voice": "t0jbNlBVZ17f02VDIeMI", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "fast-paced", + "old" + ], + "order": 6, + "name": "Dutch (Netherlands)", + "locale": "nl-NL", + "icon": "nl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-t0jbnlbvz17f02vdiemi-nl-nl.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Michael", + "voice": "flq6f7yk4E4fJM5XTYuZ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "orutund", + "old" + ], + "order": 7, + "name": "Dutch (Netherlands)", + "locale": "nl-NL", + "icon": "nl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-flq6f7yk4e4fjm5xtyuz-nl-nl.mp3" + }, + { + "character": "Liam", + "voice": "TX3LPaxmHKxFdv7VOQHJ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "neutral", + "young" + ], + "order": 8, + "name": "Dutch (Netherlands)", + "locale": "nl-NL", + "icon": "nl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-tx3lpaxmhkxfdv7voqhj-nl-nl.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Harry", + "voice": "SOYHLrjzK2X1ezoPC6cr", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "anxious", + "young" + ], + "order": 9, + "name": "Dutch (Netherlands)", + "locale": "nl-NL", + "icon": "nl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-soyhlrjzk2x1ezopc6cr-nl-nl.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Patrick", + "voice": "ODq5zmih8GrVes37Dizd", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "shouty", + "middle-aged" + ], + "order": 10, + "name": "Dutch (Netherlands)", + "locale": "nl-NL", + "icon": "nl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-odq5zmih8grves37dizd-nl-nl.mp3", + "approxDurationCoeficient": 19 + }, + { + "character": "Thomas", + "voice": "GBv7mTt0atIp3Br8iCZE", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 11, + "name": "Dutch (Netherlands)", + "locale": "nl-NL", + "icon": "nl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-gbv7mtt0atip3br8icze-nl-nl.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "Drew", + "voice": "29vD33N1CtxCmqQRPOHJ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "well-rounded", + "middle-aged" + ], + "order": 12, + "name": "Dutch (Netherlands)", + "locale": "nl-NL", + "icon": "nl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-29vd33n1ctxcmqqrpohj-nl-nl.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Paul", + "voice": "5Q0t7uMcjvnagumLfvZi", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "narration", + "middle-aged" + ], + "order": 13, + "name": "Dutch (Netherlands)", + "locale": "nl-NL", + "icon": "nl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-5q0t7umcjvnagumlfvzi-nl-nl.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Callum", + "voice": "N2lVS1w4EtoT3dr4eOWO", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "masculine", + "middle-aged" + ], + "order": 14, + "name": "Dutch (Netherlands)", + "locale": "nl-NL", + "icon": "nl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-n2lvs1w4etot3dr4eowo-nl-nl.mp3", + "approxDurationCoeficient": 18 + }, + { + "character": "Giovanni", + "voice": "zcAOhNBS3c14rBihAFp1", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "italian-accent", + "young" + ], + "order": 15, + "name": "Dutch (Netherlands)", + "locale": "nl-NL", + "icon": "nl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zcaohnbs3c14rbihafp1-nl-nl.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Clyde", + "voice": "2EiwWnXFnvU5JabPnv8n", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "masculine", + "middle-aged" + ], + "order": 17, + "name": "Dutch (Netherlands)", + "locale": "nl-NL", + "icon": "nl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-2eiwwnxfnvu5jabpnv8n-nl-nl.mp3", + "approxDurationCoeficient": 18 + }, + { + "character": "George", + "voice": "JBFqnCBsd6RMkjVDRZzb", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "raspy", + "narration" + ], + "order": 19, + "name": "Dutch (Netherlands)", + "locale": "nl-NL", + "icon": "nl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-jbfqncbsd6rmkjvdrzzb-nl-nl.mp3" + }, + { + "character": "Dave", + "voice": "CYw3kZ02Hs0563khs1Fj", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "essex-accent", + "young" + ], + "order": 20, + "name": "Dutch (Netherlands)", + "locale": "nl-NL", + "icon": "nl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-cyw3kz02hs0563khs1fj-nl-nl.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Joseph", + "voice": "Zlb1dXrM653N07WRdFW3", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "upbeat", + "middle-aged" + ], + "order": 21, + "name": "Dutch (Netherlands)", + "locale": "nl-NL", + "icon": "nl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zlb1dxrm653n07wrdfw3-nl-nl.mp3" + }, + { + "character": "Daniel", + "voice": "onwK4e9ZLuTAKqWW03F9", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "middle-aged" + ], + "order": 22, + "name": "Dutch (Netherlands)", + "locale": "nl-NL", + "icon": "nl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-onwk4e9zlutakqww03f9-nl-nl.mp3" + }, + { + "character": "Charlie", + "voice": "IKne3meq5aSn9XLyUdCD", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "casual", + "middle-aged" + ], + "order": 23, + "name": "Dutch (Netherlands)", + "locale": "nl-NL", + "icon": "nl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-ikne3meq5asn9xlyudcd-nl-nl.mp3" + }, + { + "character": "James", + "voice": "ZQe5CZNOzWyzPSCn5a3c", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "old" + ], + "order": 24, + "name": "Dutch (Netherlands)", + "locale": "nl-NL", + "icon": "nl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zqe5cznozwyzpscn5a3c-nl-nl.mp3", + "approxDurationCoeficient": 12 + }, + { + "character": "Fin", + "voice": "D38z5RcWu1voky8WS1ja", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "sailor", + "old" + ], + "order": 25, + "name": "Dutch (Netherlands)", + "locale": "nl-NL", + "icon": "nl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-d38z5rcwu1voky8ws1ja-nl-nl.mp3" + }, + { + "character": "Jeremy", + "voice": "bVMeCyTHy58xNoL34h3p", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "excited", + "young" + ], + "order": 26, + "name": "Dutch (Netherlands)", + "locale": "nl-NL", + "icon": "nl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-bvmecythy58xnol34h3p-nl-nl.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Chris", + "voice": "iP95p4xoKVk53GoZ742B", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Dutch (Netherlands)", + "locale": "nl-NL", + "icon": "nl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-ip95p4xokvk53goz742b-nl-nl.mp3" + }, + { + "character": "Brian", + "voice": "nPczCjzI2devNBz1zQrb", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Dutch (Netherlands)", + "locale": "nl-NL", + "icon": "nl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-npczcjzi2devnbz1zqrb-nl-nl.mp3" + }, + { + "character": "Sam", + "voice": "yoZ06aMxZJJ28mfd3POQ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "fast-paced", + "young" + ], + "order": 99999, + "name": "Dutch (Netherlands)", + "locale": "nl-NL", + "icon": "nl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-yoz06amxzjj28mfd3poq-nl-nl.mp3" + }, + { + "voiceProvider": "azure", + "character": "Arnaud", + "name": "Dutch (Belgium)", + "locale": "nl-BE", + "voice": "nl-BE-ArnaudNeural", + "icon": "be", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-nl-be-arnaudneural-nl-nl.mp3", + "approxDurationCoeficient": 18 + }, + { + "character": "Oscar B", + "name": "Dutch-BE", + "voice": "nl-BE-Wavenet-B", + "icon": "be", + "voiceProvider": "google", + "locale": "nl-BE", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-nl-be-wavenet-b-nl-nl.mp3", + "approxDurationCoeficient": 18 + }, + { + "character": "Miles B", + "name": "Dutch-NL", + "voice": "nl-NL-Wavenet-B", + "icon": "nl", + "voiceProvider": "google", + "locale": "nl-NL", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-nl-nl-wavenet-b-nl-nl.mp3", + "approxDurationCoeficient": 20 + }, + { + "character": "James C", + "name": "Dutch-NL", + "voice": "nl-NL-Wavenet-C", + "icon": "nl", + "voiceProvider": "google", + "locale": "nl-NL", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-nl-nl-wavenet-c-nl-nl.mp3", + "approxDurationCoeficient": 18 + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Fenna", + "name": "Dutch (Netherlands)", + "locale": "nl-NL", + "voice": "nl-NL-FennaNeural", + "icon": "nl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-nl-nl-fennaneural-nl-nl.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Rachel", + "voice": "21m00Tcm4TlvDq8ikWAM", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 1, + "name": "Dutch (Netherlands)", + "locale": "nl-NL", + "icon": "nl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-21m00tcm4tlvdq8ikwam-nl-nl.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Matilda", + "voice": "XrExE9yKIg1WjnnlVkGX", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 3, + "name": "Dutch (Netherlands)", + "locale": "nl-NL", + "icon": "nl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xrexe9ykig1wjnnlvkgx-nl-nl.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Grace", + "voice": "oWAxZDx7w5VEj9dCyTzz", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "southern-accent", + "young" + ], + "order": 4, + "name": "Dutch (Netherlands)", + "locale": "nl-NL", + "icon": "nl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-owaxzdx7w5vej9dcytzz-nl-nl.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Domi", + "voice": "AZnzlk1XvdvUeBnXmlld", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "upbeat", + "young" + ], + "order": 5, + "name": "Dutch (Netherlands)", + "locale": "nl-NL", + "icon": "nl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-aznzlk1xvdvuebnxmlld-nl-nl.mp3", + "approxDurationCoeficient": 19 + }, + { + "character": "Gigi", + "voice": "jBpfuIE2acCO8z3wKNLl", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "childish", + "young" + ], + "order": 6, + "name": "Dutch (Netherlands)", + "locale": "nl-NL", + "icon": "nl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-jbpfuie2acco8z3wknll-nl-nl.mp3" + }, + { + "character": "Serena", + "voice": "pMsXgVXv3BLzUgSXRplE", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "order": 7, + "name": "Dutch (Netherlands)", + "locale": "nl-NL", + "icon": "nl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pmsxgvxv3blzugsxrple-nl-nl.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Glinda", + "voice": "z9fAnlkpzviPz146aGWa", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "strong", + "middle-aged" + ], + "order": 8, + "name": "Dutch (Netherlands)", + "locale": "nl-NL", + "icon": "nl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-z9fanlkpzvipz146agwa-nl-nl.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Mimi", + "voice": "zrHiDhphv9ZnVXBqCLjz", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "childish", + "young" + ], + "order": 9, + "name": "Dutch (Netherlands)", + "locale": "nl-NL", + "icon": "nl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zrhidhphv9znvxbqcljz-nl-nl.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "Emily", + "voice": "LcfcDJNUP1GQjkzn1xUU", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "order": 10, + "name": "Dutch (Netherlands)", + "locale": "nl-NL", + "icon": "nl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-lcfcdjnup1gqjkzn1xuu-nl-nl.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "Lily", + "voice": "pFZP5JQG7iQjIQuC4Bku", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "raspy", + "middle-aged" + ], + "order": 11, + "name": "Dutch (Netherlands)", + "locale": "nl-NL", + "icon": "nl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pfzp5jqg7iqjiquc4bku-nl-nl.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "Charlotte", + "voice": "XB0fDUnXU5powFXDhCwa", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "swedish-accent", + "young" + ], + "order": 12, + "name": "Dutch (Netherlands)", + "locale": "nl-NL", + "icon": "nl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xb0fdunxu5powfxdhcwa-nl-nl.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "Dorothy", + "voice": "ThT5KcBeYPX3keUQqHPh", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 13, + "name": "Dutch (Netherlands)", + "locale": "nl-NL", + "icon": "nl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-tht5kcbeypx3keuqqhph-nl-nl.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Sarah", + "voice": "EXAVITQu4vr4xnSDxMaL", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 99999, + "name": "Dutch (Netherlands)", + "locale": "nl-NL", + "icon": "nl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-exavitqu4vr4xnsdxmal-nl-nl.mp3", + "approxDurationCoeficient": 20 + }, + { + "character": "Alice", + "voice": "Xb7hH8MSUJpSbSDYk0k2", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Dutch (Netherlands)", + "locale": "nl-NL", + "icon": "nl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xb7hh8msujpsbsdyk0k2-nl-nl.mp3" + }, + { + "voiceProvider": "azure", + "character": "Dena", + "name": "Dutch (Belgium)", + "locale": "nl-BE", + "voice": "nl-BE-DenaNeural", + "icon": "be", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-nl-be-denaneural-nl-nl.mp3", + "approxDurationCoeficient": 16 + }, + { + "voiceProvider": "azure", + "character": "Colette", + "name": "Dutch (Netherlands)", + "locale": "nl-NL", + "voice": "nl-NL-ColetteNeural", + "icon": "nl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-nl-nl-coletteneural-nl-nl.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Elanor A", + "name": "Dutch-BE", + "voice": "nl-BE-Wavenet-A", + "icon": "be", + "voiceProvider": "google", + "locale": "nl-BE", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-nl-be-wavenet-a-nl-nl.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Lucy A", + "name": "Dutch-NL", + "voice": "nl-NL-Wavenet-A", + "icon": "nl", + "voiceProvider": "google", + "locale": "nl-NL", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-nl-nl-wavenet-a-nl-nl.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Daisy D", + "name": "Dutch-NL", + "voice": "nl-NL-Wavenet-D", + "icon": "nl", + "voiceProvider": "google", + "locale": "nl-NL", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-nl-nl-wavenet-d-nl-nl.mp3", + "approxDurationCoeficient": 18 + }, + { + "character": "Scarlett E", + "name": "Dutch-NL", + "voice": "nl-NL-Wavenet-E", + "icon": "nl", + "voiceProvider": "google", + "locale": "nl-NL", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-nl-nl-wavenet-e-nl-nl.mp3", + "approxDurationCoeficient": 19 + } + ] + }, + { + "name": "Estonian", + "male": [ + { + "voiceProvider": "azure", + "character": "Kert", + "name": "Estonian (Estonia)", + "locale": "et-EE", + "voice": "et-EE-KertNeural", + "icon": "ee", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-et-ee-kertneural-et-ee.mp3", + "approxDurationCoeficient": 16 + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Anu", + "name": "Estonian (Estonia)", + "locale": "et-EE", + "voice": "et-EE-AnuNeural", + "icon": "ee", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-et-ee-anuneural-et-ee.mp3", + "approxDurationCoeficient": 16 + } + ] + }, + { + "name": "Filipino", + "male": [ + { + "voiceProvider": "azure", + "character": "Angelo", + "name": "Filipino (Philippines)", + "locale": "fil-PH", + "voice": "fil-PH-AngeloNeural", + "icon": "ph", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-fil-ph-angeloneural-fil-ph.mp3", + "approxDurationCoeficient": 18 + }, + { + "character": "Antoni", + "voice": "ErXwobaYiN019PkySvjV", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "well-rounded", + "calm" + ], + "order": 1, + "name": "Filipino (Philippines)", + "locale": "fil-PH", + "icon": "ph", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-erxwobayin019pkysvjv-fil-ph.mp3" + }, + { + "character": "Josh", + "voice": "TxGEqnHWrfWFTfGW9XjX", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "young" + ], + "order": 2, + "name": "Filipino (Philippines)", + "locale": "fil-PH", + "icon": "ph", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-txgeqnhwrfwftfgw9xjx-fil-ph.mp3", + "approxDurationCoeficient": 19 + }, + { + "character": "Arnold", + "voice": "VR6AewLTigWG4xSOukaG", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "crisp", + "middle-aged" + ], + "order": 3, + "name": "Filipino (Philippines)", + "locale": "fil-PH", + "icon": "ph", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-vr6aewltigwg4xsoukag-fil-ph.mp3" + }, + { + "character": "Adam", + "voice": "pNInz6obpgDQGcFmaJgB", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "middle-aged" + ], + "order": 4, + "name": "Filipino (Philippines)", + "locale": "fil-PH", + "icon": "ph", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pninz6obpgdqgcfmajgb-fil-ph.mp3" + }, + { + "character": "Bill", + "voice": "pqHfZKP75CvOlQylNhV4", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "strong", + "middle-aged" + ], + "order": 5, + "name": "Filipino (Philippines)", + "locale": "fil-PH", + "icon": "ph", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pqhfzkp75cvolqylnhv4-fil-ph.mp3" + }, + { + "character": "Jessie", + "voice": "t0jbNlBVZ17f02VDIeMI", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "fast-paced", + "old" + ], + "order": 6, + "name": "Filipino (Philippines)", + "locale": "fil-PH", + "icon": "ph", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-t0jbnlbvz17f02vdiemi-fil-ph.mp3" + }, + { + "character": "Michael", + "voice": "flq6f7yk4E4fJM5XTYuZ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "orutund", + "old" + ], + "order": 7, + "name": "Filipino (Philippines)", + "locale": "fil-PH", + "icon": "ph", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-flq6f7yk4e4fjm5xtyuz-fil-ph.mp3" + }, + { + "character": "Liam", + "voice": "TX3LPaxmHKxFdv7VOQHJ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "neutral", + "young" + ], + "order": 8, + "name": "Filipino (Philippines)", + "locale": "fil-PH", + "icon": "ph", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-tx3lpaxmhkxfdv7voqhj-fil-ph.mp3" + }, + { + "character": "Harry", + "voice": "SOYHLrjzK2X1ezoPC6cr", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "anxious", + "young" + ], + "order": 9, + "name": "Filipino (Philippines)", + "locale": "fil-PH", + "icon": "ph", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-soyhlrjzk2x1ezopc6cr-fil-ph.mp3", + "approxDurationCoeficient": 12 + }, + { + "character": "Patrick", + "voice": "ODq5zmih8GrVes37Dizd", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "shouty", + "middle-aged" + ], + "order": 10, + "name": "Filipino (Philippines)", + "locale": "fil-PH", + "icon": "ph", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-odq5zmih8grves37dizd-fil-ph.mp3" + }, + { + "character": "Thomas", + "voice": "GBv7mTt0atIp3Br8iCZE", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 11, + "name": "Filipino (Philippines)", + "locale": "fil-PH", + "icon": "ph", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-gbv7mtt0atip3br8icze-fil-ph.mp3" + }, + { + "character": "Drew", + "voice": "29vD33N1CtxCmqQRPOHJ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "well-rounded", + "middle-aged" + ], + "order": 12, + "name": "Filipino (Philippines)", + "locale": "fil-PH", + "icon": "ph", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-29vd33n1ctxcmqqrpohj-fil-ph.mp3" + }, + { + "character": "Paul", + "voice": "5Q0t7uMcjvnagumLfvZi", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "narration", + "middle-aged" + ], + "order": 13, + "name": "Filipino (Philippines)", + "locale": "fil-PH", + "icon": "ph", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-5q0t7umcjvnagumlfvzi-fil-ph.mp3" + }, + { + "character": "Callum", + "voice": "N2lVS1w4EtoT3dr4eOWO", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "masculine", + "middle-aged" + ], + "order": 14, + "name": "Filipino (Philippines)", + "locale": "fil-PH", + "icon": "ph", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-n2lvs1w4etot3dr4eowo-fil-ph.mp3" + }, + { + "character": "Giovanni", + "voice": "zcAOhNBS3c14rBihAFp1", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "italian-accent", + "young" + ], + "order": 15, + "name": "Filipino (Philippines)", + "locale": "fil-PH", + "icon": "ph", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zcaohnbs3c14rbihafp1-fil-ph.mp3" + }, + { + "character": "Clyde", + "voice": "2EiwWnXFnvU5JabPnv8n", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "masculine", + "middle-aged" + ], + "order": 17, + "name": "Filipino (Philippines)", + "locale": "fil-PH", + "icon": "ph", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-2eiwwnxfnvu5jabpnv8n-fil-ph.mp3" + }, + { + "character": "George", + "voice": "JBFqnCBsd6RMkjVDRZzb", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "raspy", + "narration" + ], + "order": 19, + "name": "Filipino (Philippines)", + "locale": "fil-PH", + "icon": "ph", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-jbfqncbsd6rmkjvdrzzb-fil-ph.mp3" + }, + { + "character": "Dave", + "voice": "CYw3kZ02Hs0563khs1Fj", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "essex-accent", + "young" + ], + "order": 20, + "name": "Filipino (Philippines)", + "locale": "fil-PH", + "icon": "ph", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-cyw3kz02hs0563khs1fj-fil-ph.mp3" + }, + { + "character": "Joseph", + "voice": "Zlb1dXrM653N07WRdFW3", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "upbeat", + "middle-aged" + ], + "order": 21, + "name": "Filipino (Philippines)", + "locale": "fil-PH", + "icon": "ph", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zlb1dxrm653n07wrdfw3-fil-ph.mp3" + }, + { + "character": "Daniel", + "voice": "onwK4e9ZLuTAKqWW03F9", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "middle-aged" + ], + "order": 22, + "name": "Filipino (Philippines)", + "locale": "fil-PH", + "icon": "ph", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-onwk4e9zlutakqww03f9-fil-ph.mp3" + }, + { + "character": "Charlie", + "voice": "IKne3meq5aSn9XLyUdCD", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "casual", + "middle-aged" + ], + "order": 23, + "name": "Filipino (Philippines)", + "locale": "fil-PH", + "icon": "ph", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-ikne3meq5asn9xlyudcd-fil-ph.mp3" + }, + { + "character": "James", + "voice": "ZQe5CZNOzWyzPSCn5a3c", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "old" + ], + "order": 24, + "name": "Filipino (Philippines)", + "locale": "fil-PH", + "icon": "ph", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zqe5cznozwyzpscn5a3c-fil-ph.mp3" + }, + { + "character": "Fin", + "voice": "D38z5RcWu1voky8WS1ja", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "sailor", + "old" + ], + "order": 25, + "name": "Filipino (Philippines)", + "locale": "fil-PH", + "icon": "ph", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-d38z5rcwu1voky8ws1ja-fil-ph.mp3" + }, + { + "character": "Jeremy", + "voice": "bVMeCyTHy58xNoL34h3p", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "excited", + "young" + ], + "order": 26, + "name": "Filipino (Philippines)", + "locale": "fil-PH", + "icon": "ph", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-bvmecythy58xnol34h3p-fil-ph.mp3" + }, + { + "character": "Chris", + "voice": "iP95p4xoKVk53GoZ742B", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Filipino (Philippines)", + "locale": "fil-PH", + "icon": "ph", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-ip95p4xokvk53goz742b-fil-ph.mp3" + }, + { + "character": "Brian", + "voice": "nPczCjzI2devNBz1zQrb", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Filipino (Philippines)", + "locale": "fil-PH", + "icon": "ph", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-npczcjzi2devnbz1zqrb-fil-ph.mp3" + }, + { + "character": "Sam", + "voice": "yoZ06aMxZJJ28mfd3POQ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "fast-paced", + "young" + ], + "order": 99999, + "name": "Filipino (Philippines)", + "locale": "fil-PH", + "icon": "ph", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-yoz06amxzjj28mfd3poq-fil-ph.mp3" + }, + { + "character": "Oscar D", + "name": "Filipino-ph", + "voice": "fil-ph-Neural2-D", + "icon": "ph", + "voiceProvider": "google", + "locale": "fil-PH", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-fil-ph-neural2-d-fil-ph.mp3" + }, + { + "character": "Miles C", + "name": "Filipino-PH", + "voice": "fil-PH-Wavenet-C", + "icon": "ph", + "voiceProvider": "google", + "locale": "fil-PH", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-fil-ph-wavenet-c-fil-ph.mp3", + "approxDurationCoeficient": 20 + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Blessica", + "name": "Filipino (Philippines)", + "locale": "fil-PH", + "voice": "fil-PH-BlessicaNeural", + "icon": "ph", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-fil-ph-blessicaneural-fil-ph.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Rachel", + "voice": "21m00Tcm4TlvDq8ikWAM", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 1, + "name": "Filipino (Philippines)", + "locale": "fil-PH", + "icon": "ph", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-21m00tcm4tlvdq8ikwam-fil-ph.mp3" + }, + { + "character": "Matilda", + "voice": "XrExE9yKIg1WjnnlVkGX", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 3, + "name": "Filipino (Philippines)", + "locale": "fil-PH", + "icon": "ph", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xrexe9ykig1wjnnlvkgx-fil-ph.mp3", + "approxDurationCoeficient": 12 + }, + { + "character": "Grace", + "voice": "oWAxZDx7w5VEj9dCyTzz", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "southern-accent", + "young" + ], + "order": 4, + "name": "Filipino (Philippines)", + "locale": "fil-PH", + "icon": "ph", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-owaxzdx7w5vej9dcytzz-fil-ph.mp3" + }, + { + "character": "Domi", + "voice": "AZnzlk1XvdvUeBnXmlld", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "upbeat", + "young" + ], + "order": 5, + "name": "Filipino (Philippines)", + "locale": "fil-PH", + "icon": "ph", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-aznzlk1xvdvuebnxmlld-fil-ph.mp3" + }, + { + "character": "Gigi", + "voice": "jBpfuIE2acCO8z3wKNLl", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "childish", + "young" + ], + "order": 6, + "name": "Filipino (Philippines)", + "locale": "fil-PH", + "icon": "ph", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-jbpfuie2acco8z3wknll-fil-ph.mp3" + }, + { + "character": "Serena", + "voice": "pMsXgVXv3BLzUgSXRplE", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "order": 7, + "name": "Filipino (Philippines)", + "locale": "fil-PH", + "icon": "ph", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pmsxgvxv3blzugsxrple-fil-ph.mp3" + }, + { + "character": "Glinda", + "voice": "z9fAnlkpzviPz146aGWa", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "strong", + "middle-aged" + ], + "order": 8, + "name": "Filipino (Philippines)", + "locale": "fil-PH", + "icon": "ph", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-z9fanlkpzvipz146agwa-fil-ph.mp3" + }, + { + "character": "Mimi", + "voice": "zrHiDhphv9ZnVXBqCLjz", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "childish", + "young" + ], + "order": 9, + "name": "Filipino (Philippines)", + "locale": "fil-PH", + "icon": "ph", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zrhidhphv9znvxbqcljz-fil-ph.mp3" + }, + { + "character": "Emily", + "voice": "LcfcDJNUP1GQjkzn1xUU", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "order": 10, + "name": "Filipino (Philippines)", + "locale": "fil-PH", + "icon": "ph", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-lcfcdjnup1gqjkzn1xuu-fil-ph.mp3" + }, + { + "character": "Lily", + "voice": "pFZP5JQG7iQjIQuC4Bku", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "raspy", + "middle-aged" + ], + "order": 11, + "name": "Filipino (Philippines)", + "locale": "fil-PH", + "icon": "ph", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pfzp5jqg7iqjiquc4bku-fil-ph.mp3" + }, + { + "character": "Charlotte", + "voice": "XB0fDUnXU5powFXDhCwa", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "swedish-accent", + "young" + ], + "order": 12, + "name": "Filipino (Philippines)", + "locale": "fil-PH", + "icon": "ph", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xb0fdunxu5powfxdhcwa-fil-ph.mp3" + }, + { + "character": "Dorothy", + "voice": "ThT5KcBeYPX3keUQqHPh", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 13, + "name": "Filipino (Philippines)", + "locale": "fil-PH", + "icon": "ph", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-tht5kcbeypx3keuqqhph-fil-ph.mp3" + }, + { + "character": "Sarah", + "voice": "EXAVITQu4vr4xnSDxMaL", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 99999, + "name": "Filipino (Philippines)", + "locale": "fil-PH", + "icon": "ph", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-exavitqu4vr4xnsdxmal-fil-ph.mp3" + }, + { + "character": "Alice", + "voice": "Xb7hH8MSUJpSbSDYk0k2", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Filipino (Philippines)", + "locale": "fil-PH", + "icon": "ph", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xb7hh8msujpsbsdyk0k2-fil-ph.mp3" + }, + { + "character": "Elanor A", + "name": "Filipino-ph", + "voice": "fil-ph-Neural2-A", + "icon": "ph", + "voiceProvider": "google", + "locale": "fil-PH", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-fil-ph-neural2-a-fil-ph.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Lucy B", + "name": "Filipino-PH", + "voice": "fil-PH-Wavenet-B", + "icon": "ph", + "voiceProvider": "google", + "locale": "fil-PH", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-fil-ph-wavenet-b-fil-ph.mp3", + "approxDurationCoeficient": 18 + } + ] + }, + { + "name": "Finnish", + "male": [ + { + "voiceProvider": "azure", + "character": "Harri", + "name": "Finnish (Finland)", + "locale": "fi-FI", + "voice": "fi-FI-HarriNeural", + "icon": "fi", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-fi-fi-harrineural-fi-fi.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Antoni", + "voice": "ErXwobaYiN019PkySvjV", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "well-rounded", + "calm" + ], + "order": 1, + "name": "Finnish (Finland)", + "locale": "fi-FI", + "icon": "fi", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-erxwobayin019pkysvjv-fi-fi.mp3" + }, + { + "character": "Josh", + "voice": "TxGEqnHWrfWFTfGW9XjX", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "young" + ], + "order": 2, + "name": "Finnish (Finland)", + "locale": "fi-FI", + "icon": "fi", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-txgeqnhwrfwftfgw9xjx-fi-fi.mp3" + }, + { + "character": "Arnold", + "voice": "VR6AewLTigWG4xSOukaG", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "crisp", + "middle-aged" + ], + "order": 3, + "name": "Finnish (Finland)", + "locale": "fi-FI", + "icon": "fi", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-vr6aewltigwg4xsoukag-fi-fi.mp3" + }, + { + "character": "Adam", + "voice": "pNInz6obpgDQGcFmaJgB", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "middle-aged" + ], + "order": 4, + "name": "Finnish (Finland)", + "locale": "fi-FI", + "icon": "fi", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pninz6obpgdqgcfmajgb-fi-fi.mp3" + }, + { + "character": "Bill", + "voice": "pqHfZKP75CvOlQylNhV4", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "strong", + "middle-aged" + ], + "order": 5, + "name": "Finnish (Finland)", + "locale": "fi-FI", + "icon": "fi", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pqhfzkp75cvolqylnhv4-fi-fi.mp3" + }, + { + "character": "Jessie", + "voice": "t0jbNlBVZ17f02VDIeMI", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "fast-paced", + "old" + ], + "order": 6, + "name": "Finnish (Finland)", + "locale": "fi-FI", + "icon": "fi", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-t0jbnlbvz17f02vdiemi-fi-fi.mp3" + }, + { + "character": "Michael", + "voice": "flq6f7yk4E4fJM5XTYuZ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "orutund", + "old" + ], + "order": 7, + "name": "Finnish (Finland)", + "locale": "fi-FI", + "icon": "fi", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-flq6f7yk4e4fjm5xtyuz-fi-fi.mp3", + "approxDurationCoeficient": 13 + }, + { + "character": "Liam", + "voice": "TX3LPaxmHKxFdv7VOQHJ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "neutral", + "young" + ], + "order": 8, + "name": "Finnish (Finland)", + "locale": "fi-FI", + "icon": "fi", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-tx3lpaxmhkxfdv7voqhj-fi-fi.mp3" + }, + { + "character": "Harry", + "voice": "SOYHLrjzK2X1ezoPC6cr", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "anxious", + "young" + ], + "order": 9, + "name": "Finnish (Finland)", + "locale": "fi-FI", + "icon": "fi", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-soyhlrjzk2x1ezopc6cr-fi-fi.mp3" + }, + { + "character": "Patrick", + "voice": "ODq5zmih8GrVes37Dizd", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "shouty", + "middle-aged" + ], + "order": 10, + "name": "Finnish (Finland)", + "locale": "fi-FI", + "icon": "fi", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-odq5zmih8grves37dizd-fi-fi.mp3" + }, + { + "character": "Thomas", + "voice": "GBv7mTt0atIp3Br8iCZE", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 11, + "name": "Finnish (Finland)", + "locale": "fi-FI", + "icon": "fi", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-gbv7mtt0atip3br8icze-fi-fi.mp3" + }, + { + "character": "Drew", + "voice": "29vD33N1CtxCmqQRPOHJ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "well-rounded", + "middle-aged" + ], + "order": 12, + "name": "Finnish (Finland)", + "locale": "fi-FI", + "icon": "fi", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-29vd33n1ctxcmqqrpohj-fi-fi.mp3" + }, + { + "character": "Paul", + "voice": "5Q0t7uMcjvnagumLfvZi", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "narration", + "middle-aged" + ], + "order": 13, + "name": "Finnish (Finland)", + "locale": "fi-FI", + "icon": "fi", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-5q0t7umcjvnagumlfvzi-fi-fi.mp3" + }, + { + "character": "Callum", + "voice": "N2lVS1w4EtoT3dr4eOWO", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "masculine", + "middle-aged" + ], + "order": 14, + "name": "Finnish (Finland)", + "locale": "fi-FI", + "icon": "fi", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-n2lvs1w4etot3dr4eowo-fi-fi.mp3" + }, + { + "character": "Giovanni", + "voice": "zcAOhNBS3c14rBihAFp1", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "italian-accent", + "young" + ], + "order": 15, + "name": "Finnish (Finland)", + "locale": "fi-FI", + "icon": "fi", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zcaohnbs3c14rbihafp1-fi-fi.mp3" + }, + { + "character": "Clyde", + "voice": "2EiwWnXFnvU5JabPnv8n", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "masculine", + "middle-aged" + ], + "order": 17, + "name": "Finnish (Finland)", + "locale": "fi-FI", + "icon": "fi", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-2eiwwnxfnvu5jabpnv8n-fi-fi.mp3" + }, + { + "character": "George", + "voice": "JBFqnCBsd6RMkjVDRZzb", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "raspy", + "narration" + ], + "order": 19, + "name": "Finnish (Finland)", + "locale": "fi-FI", + "icon": "fi", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-jbfqncbsd6rmkjvdrzzb-fi-fi.mp3" + }, + { + "character": "Dave", + "voice": "CYw3kZ02Hs0563khs1Fj", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "essex-accent", + "young" + ], + "order": 20, + "name": "Finnish (Finland)", + "locale": "fi-FI", + "icon": "fi", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-cyw3kz02hs0563khs1fj-fi-fi.mp3" + }, + { + "character": "Joseph", + "voice": "Zlb1dXrM653N07WRdFW3", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "upbeat", + "middle-aged" + ], + "order": 21, + "name": "Finnish (Finland)", + "locale": "fi-FI", + "icon": "fi", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zlb1dxrm653n07wrdfw3-fi-fi.mp3" + }, + { + "character": "Daniel", + "voice": "onwK4e9ZLuTAKqWW03F9", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "middle-aged" + ], + "order": 22, + "name": "Finnish (Finland)", + "locale": "fi-FI", + "icon": "fi", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-onwk4e9zlutakqww03f9-fi-fi.mp3" + }, + { + "character": "Charlie", + "voice": "IKne3meq5aSn9XLyUdCD", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "casual", + "middle-aged" + ], + "order": 23, + "name": "Finnish (Finland)", + "locale": "fi-FI", + "icon": "fi", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-ikne3meq5asn9xlyudcd-fi-fi.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "James", + "voice": "ZQe5CZNOzWyzPSCn5a3c", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "old" + ], + "order": 24, + "name": "Finnish (Finland)", + "locale": "fi-FI", + "icon": "fi", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zqe5cznozwyzpscn5a3c-fi-fi.mp3" + }, + { + "character": "Fin", + "voice": "D38z5RcWu1voky8WS1ja", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "sailor", + "old" + ], + "order": 25, + "name": "Finnish (Finland)", + "locale": "fi-FI", + "icon": "fi", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-d38z5rcwu1voky8ws1ja-fi-fi.mp3" + }, + { + "character": "Jeremy", + "voice": "bVMeCyTHy58xNoL34h3p", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "excited", + "young" + ], + "order": 26, + "name": "Finnish (Finland)", + "locale": "fi-FI", + "icon": "fi", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-bvmecythy58xnol34h3p-fi-fi.mp3" + }, + { + "character": "Chris", + "voice": "iP95p4xoKVk53GoZ742B", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Finnish (Finland)", + "locale": "fi-FI", + "icon": "fi", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-ip95p4xokvk53goz742b-fi-fi.mp3" + }, + { + "character": "Brian", + "voice": "nPczCjzI2devNBz1zQrb", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Finnish (Finland)", + "locale": "fi-FI", + "icon": "fi", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-npczcjzi2devnbz1zqrb-fi-fi.mp3" + }, + { + "character": "Sam", + "voice": "yoZ06aMxZJJ28mfd3POQ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "fast-paced", + "young" + ], + "order": 99999, + "name": "Finnish (Finland)", + "locale": "fi-FI", + "icon": "fi", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-yoz06amxzjj28mfd3poq-fi-fi.mp3" + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Selma", + "name": "Finnish (Finland)", + "locale": "fi-FI", + "voice": "fi-FI-SelmaNeural", + "icon": "fi", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-fi-fi-selmaneural-fi-fi.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "Rachel", + "voice": "21m00Tcm4TlvDq8ikWAM", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 1, + "name": "Finnish (Finland)", + "locale": "fi-FI", + "icon": "fi", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-21m00tcm4tlvdq8ikwam-fi-fi.mp3" + }, + { + "character": "Matilda", + "voice": "XrExE9yKIg1WjnnlVkGX", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 3, + "name": "Finnish (Finland)", + "locale": "fi-FI", + "icon": "fi", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xrexe9ykig1wjnnlvkgx-fi-fi.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Grace", + "voice": "oWAxZDx7w5VEj9dCyTzz", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "southern-accent", + "young" + ], + "order": 4, + "name": "Finnish (Finland)", + "locale": "fi-FI", + "icon": "fi", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-owaxzdx7w5vej9dcytzz-fi-fi.mp3" + }, + { + "character": "Domi", + "voice": "AZnzlk1XvdvUeBnXmlld", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "upbeat", + "young" + ], + "order": 5, + "name": "Finnish (Finland)", + "locale": "fi-FI", + "icon": "fi", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-aznzlk1xvdvuebnxmlld-fi-fi.mp3" + }, + { + "character": "Gigi", + "voice": "jBpfuIE2acCO8z3wKNLl", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "childish", + "young" + ], + "order": 6, + "name": "Finnish (Finland)", + "locale": "fi-FI", + "icon": "fi", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-jbpfuie2acco8z3wknll-fi-fi.mp3" + }, + { + "character": "Serena", + "voice": "pMsXgVXv3BLzUgSXRplE", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "order": 7, + "name": "Finnish (Finland)", + "locale": "fi-FI", + "icon": "fi", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pmsxgvxv3blzugsxrple-fi-fi.mp3" + }, + { + "character": "Glinda", + "voice": "z9fAnlkpzviPz146aGWa", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "strong", + "middle-aged" + ], + "order": 8, + "name": "Finnish (Finland)", + "locale": "fi-FI", + "icon": "fi", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-z9fanlkpzvipz146agwa-fi-fi.mp3", + "approxDurationCoeficient": 13 + }, + { + "character": "Mimi", + "voice": "zrHiDhphv9ZnVXBqCLjz", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "childish", + "young" + ], + "order": 9, + "name": "Finnish (Finland)", + "locale": "fi-FI", + "icon": "fi", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zrhidhphv9znvxbqcljz-fi-fi.mp3" + }, + { + "character": "Emily", + "voice": "LcfcDJNUP1GQjkzn1xUU", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "order": 10, + "name": "Finnish (Finland)", + "locale": "fi-FI", + "icon": "fi", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-lcfcdjnup1gqjkzn1xuu-fi-fi.mp3" + }, + { + "character": "Lily", + "voice": "pFZP5JQG7iQjIQuC4Bku", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "raspy", + "middle-aged" + ], + "order": 11, + "name": "Finnish (Finland)", + "locale": "fi-FI", + "icon": "fi", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pfzp5jqg7iqjiquc4bku-fi-fi.mp3" + }, + { + "character": "Charlotte", + "voice": "XB0fDUnXU5powFXDhCwa", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "swedish-accent", + "young" + ], + "order": 12, + "name": "Finnish (Finland)", + "locale": "fi-FI", + "icon": "fi", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xb0fdunxu5powfxdhcwa-fi-fi.mp3" + }, + { + "character": "Dorothy", + "voice": "ThT5KcBeYPX3keUQqHPh", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 13, + "name": "Finnish (Finland)", + "locale": "fi-FI", + "icon": "fi", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-tht5kcbeypx3keuqqhph-fi-fi.mp3" + }, + { + "character": "Sarah", + "voice": "EXAVITQu4vr4xnSDxMaL", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 99999, + "name": "Finnish (Finland)", + "locale": "fi-FI", + "icon": "fi", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-exavitqu4vr4xnsdxmal-fi-fi.mp3" + }, + { + "character": "Alice", + "voice": "Xb7hH8MSUJpSbSDYk0k2", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Finnish (Finland)", + "locale": "fi-FI", + "icon": "fi", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xb7hh8msujpsbsdyk0k2-fi-fi.mp3" + }, + { + "voiceProvider": "azure", + "character": "Noora", + "name": "Finnish (Finland)", + "locale": "fi-FI", + "voice": "fi-FI-NooraNeural", + "icon": "fi", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-fi-fi-nooraneural-fi-fi.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Elanor A", + "name": "Finnish-FI", + "voice": "fi-FI-Wavenet-A", + "icon": "fi", + "voiceProvider": "google", + "locale": "fi-FI", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-fi-fi-wavenet-a-fi-fi.mp3", + "approxDurationCoeficient": 20 + } + ] + }, + { + "name": "French", + "male": [ + { + "voiceProvider": "azure", + "character": "Remy M", + "name": "French (France)", + "locale": "fr-FR", + "voice": "fr-FR-RemyMultilingualNeural", + "icon": "fr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-fr-fr-remymultilingualneural-fr-fr.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Jerome", + "name": "French (France)", + "locale": "fr-FR", + "voice": "fr-FR-JeromeNeural", + "icon": "fr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-fr-fr-jeromeneural-fr-fr.mp3", + "approxDurationCoeficient": 20 + }, + { + "voiceProvider": "azure", + "character": "Henri", + "name": "French (France)", + "locale": "fr-FR", + "voice": "fr-FR-HenriNeural", + "icon": "fr", + "styleList": [ + "cheerful", + "sad" + ], + "stylePreview": { + "cheerful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-fr-fr-henrineural:cheerful-fr-fr.mp3", + "sad": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-fr-fr-henrineural:sad-fr-fr.mp3" + }, + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-fr-fr-henrineural-fr-fr.mp3", + "approxDurationCoeficient": 21 + }, + { + "character": "Antoni", + "voice": "ErXwobaYiN019PkySvjV", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "well-rounded", + "calm" + ], + "order": 1, + "name": "French (France)", + "locale": "fr-FR", + "icon": "fr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-erxwobayin019pkysvjv-fr-fr.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Josh", + "voice": "TxGEqnHWrfWFTfGW9XjX", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "young" + ], + "order": 2, + "name": "French (France)", + "locale": "fr-FR", + "icon": "fr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-txgeqnhwrfwftfgw9xjx-fr-fr.mp3", + "approxDurationCoeficient": 19 + }, + { + "character": "Arnold", + "voice": "VR6AewLTigWG4xSOukaG", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "crisp", + "middle-aged" + ], + "order": 3, + "name": "French (France)", + "locale": "fr-FR", + "icon": "fr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-vr6aewltigwg4xsoukag-fr-fr.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Adam", + "voice": "pNInz6obpgDQGcFmaJgB", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "middle-aged" + ], + "order": 4, + "name": "French (France)", + "locale": "fr-FR", + "icon": "fr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pninz6obpgdqgcfmajgb-fr-fr.mp3" + }, + { + "character": "Bill", + "voice": "pqHfZKP75CvOlQylNhV4", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "strong", + "middle-aged" + ], + "order": 5, + "name": "French (France)", + "locale": "fr-FR", + "icon": "fr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pqhfzkp75cvolqylnhv4-fr-fr.mp3", + "approxDurationCoeficient": 18 + }, + { + "character": "Jessie", + "voice": "t0jbNlBVZ17f02VDIeMI", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "fast-paced", + "old" + ], + "order": 6, + "name": "French (France)", + "locale": "fr-FR", + "icon": "fr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-t0jbnlbvz17f02vdiemi-fr-fr.mp3" + }, + { + "character": "Michael", + "voice": "flq6f7yk4E4fJM5XTYuZ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "orutund", + "old" + ], + "order": 7, + "name": "French (France)", + "locale": "fr-FR", + "icon": "fr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-flq6f7yk4e4fjm5xtyuz-fr-fr.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Liam", + "voice": "TX3LPaxmHKxFdv7VOQHJ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "neutral", + "young" + ], + "order": 8, + "name": "French (France)", + "locale": "fr-FR", + "icon": "fr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-tx3lpaxmhkxfdv7voqhj-fr-fr.mp3", + "approxDurationCoeficient": 18 + }, + { + "character": "Harry", + "voice": "SOYHLrjzK2X1ezoPC6cr", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "anxious", + "young" + ], + "order": 9, + "name": "French (France)", + "locale": "fr-FR", + "icon": "fr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-soyhlrjzk2x1ezopc6cr-fr-fr.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Patrick", + "voice": "ODq5zmih8GrVes37Dizd", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "shouty", + "middle-aged" + ], + "order": 10, + "name": "French (France)", + "locale": "fr-FR", + "icon": "fr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-odq5zmih8grves37dizd-fr-fr.mp3", + "approxDurationCoeficient": 19 + }, + { + "character": "Thomas", + "voice": "GBv7mTt0atIp3Br8iCZE", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 11, + "name": "French (France)", + "locale": "fr-FR", + "icon": "fr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-gbv7mtt0atip3br8icze-fr-fr.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "Drew", + "voice": "29vD33N1CtxCmqQRPOHJ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "well-rounded", + "middle-aged" + ], + "order": 12, + "name": "French (France)", + "locale": "fr-FR", + "icon": "fr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-29vd33n1ctxcmqqrpohj-fr-fr.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Paul", + "voice": "5Q0t7uMcjvnagumLfvZi", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "narration", + "middle-aged" + ], + "order": 13, + "name": "French (France)", + "locale": "fr-FR", + "icon": "fr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-5q0t7umcjvnagumlfvzi-fr-fr.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Callum", + "voice": "N2lVS1w4EtoT3dr4eOWO", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "masculine", + "middle-aged" + ], + "order": 14, + "name": "French (France)", + "locale": "fr-FR", + "icon": "fr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-n2lvs1w4etot3dr4eowo-fr-fr.mp3" + }, + { + "character": "Giovanni", + "voice": "zcAOhNBS3c14rBihAFp1", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "italian-accent", + "young" + ], + "order": 15, + "name": "French (France)", + "locale": "fr-FR", + "icon": "fr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zcaohnbs3c14rbihafp1-fr-fr.mp3" + }, + { + "character": "Clyde", + "voice": "2EiwWnXFnvU5JabPnv8n", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "masculine", + "middle-aged" + ], + "order": 17, + "name": "French (France)", + "locale": "fr-FR", + "icon": "fr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-2eiwwnxfnvu5jabpnv8n-fr-fr.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "George", + "voice": "JBFqnCBsd6RMkjVDRZzb", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "raspy", + "narration" + ], + "order": 19, + "name": "French (France)", + "locale": "fr-FR", + "icon": "fr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-jbfqncbsd6rmkjvdrzzb-fr-fr.mp3" + }, + { + "character": "Dave", + "voice": "CYw3kZ02Hs0563khs1Fj", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "essex-accent", + "young" + ], + "order": 20, + "name": "French (France)", + "locale": "fr-FR", + "icon": "fr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-cyw3kz02hs0563khs1fj-fr-fr.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Joseph", + "voice": "Zlb1dXrM653N07WRdFW3", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "upbeat", + "middle-aged" + ], + "order": 21, + "name": "French (France)", + "locale": "fr-FR", + "icon": "fr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zlb1dxrm653n07wrdfw3-fr-fr.mp3" + }, + { + "character": "Daniel", + "voice": "onwK4e9ZLuTAKqWW03F9", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "middle-aged" + ], + "order": 22, + "name": "French (France)", + "locale": "fr-FR", + "icon": "fr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-onwk4e9zlutakqww03f9-fr-fr.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Charlie", + "voice": "IKne3meq5aSn9XLyUdCD", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "casual", + "middle-aged" + ], + "order": 23, + "name": "French (France)", + "locale": "fr-FR", + "icon": "fr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-ikne3meq5asn9xlyudcd-fr-fr.mp3", + "approxDurationCoeficient": 19 + }, + { + "character": "James", + "voice": "ZQe5CZNOzWyzPSCn5a3c", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "old" + ], + "order": 24, + "name": "French (France)", + "locale": "fr-FR", + "icon": "fr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zqe5cznozwyzpscn5a3c-fr-fr.mp3" + }, + { + "character": "Fin", + "voice": "D38z5RcWu1voky8WS1ja", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "sailor", + "old" + ], + "order": 25, + "name": "French (France)", + "locale": "fr-FR", + "icon": "fr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-d38z5rcwu1voky8ws1ja-fr-fr.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "Jeremy", + "voice": "bVMeCyTHy58xNoL34h3p", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "excited", + "young" + ], + "order": 26, + "name": "French (France)", + "locale": "fr-FR", + "icon": "fr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-bvmecythy58xnol34h3p-fr-fr.mp3" + }, + { + "character": "Chris", + "voice": "iP95p4xoKVk53GoZ742B", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "French (France)", + "locale": "fr-FR", + "icon": "fr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-ip95p4xokvk53goz742b-fr-fr.mp3" + }, + { + "character": "Brian", + "voice": "nPczCjzI2devNBz1zQrb", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "French (France)", + "locale": "fr-FR", + "icon": "fr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-npczcjzi2devnbz1zqrb-fr-fr.mp3" + }, + { + "character": "Sam", + "voice": "yoZ06aMxZJJ28mfd3POQ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "fast-paced", + "young" + ], + "order": 99999, + "name": "French (France)", + "locale": "fr-FR", + "icon": "fr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-yoz06amxzjj28mfd3poq-fr-fr.mp3" + }, + { + "voiceProvider": "azure", + "character": "Gerard", + "name": "French (Belgium)", + "locale": "fr-BE", + "voice": "fr-BE-GerardNeural", + "icon": "be", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-fr-be-gerardneural-fr-fr.mp3", + "approxDurationCoeficient": 20 + }, + { + "voiceProvider": "azure", + "character": "Jean", + "name": "French (Canada)", + "locale": "fr-CA", + "voice": "fr-CA-JeanNeural", + "icon": "ca", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-fr-ca-jeanneural-fr-fr.mp3", + "approxDurationCoeficient": 16 + }, + { + "voiceProvider": "azure", + "character": "Antoine", + "name": "French (Canada)", + "locale": "fr-CA", + "voice": "fr-CA-AntoineNeural", + "icon": "ca", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-fr-ca-antoineneural-fr-fr.mp3", + "approxDurationCoeficient": 19 + }, + { + "voiceProvider": "azure", + "character": "Thierry", + "name": "French (Canada)", + "locale": "fr-CA", + "voice": "fr-CA-ThierryNeural", + "icon": "ca", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-fr-ca-thierryneural-fr-fr.mp3", + "approxDurationCoeficient": 16 + }, + { + "voiceProvider": "azure", + "character": "Fabrice", + "name": "French (Switzerland)", + "locale": "fr-CH", + "voice": "fr-CH-FabriceNeural", + "icon": "ch", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-fr-ch-fabriceneural-fr-fr.mp3", + "approxDurationCoeficient": 22 + }, + { + "voiceProvider": "azure", + "character": "Alain", + "name": "French (France)", + "locale": "fr-FR", + "voice": "fr-FR-AlainNeural", + "icon": "fr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-fr-fr-alainneural-fr-fr.mp3", + "approxDurationCoeficient": 20 + }, + { + "voiceProvider": "azure", + "character": "Claude", + "name": "French (France)", + "locale": "fr-FR", + "voice": "fr-FR-ClaudeNeural", + "icon": "fr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-fr-fr-claudeneural-fr-fr.mp3", + "approxDurationCoeficient": 20 + }, + { + "voiceProvider": "azure", + "character": "Maurice", + "name": "French (France)", + "locale": "fr-FR", + "voice": "fr-FR-MauriceNeural", + "icon": "fr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-fr-fr-mauriceneural-fr-fr.mp3", + "approxDurationCoeficient": 20 + }, + { + "voiceProvider": "azure", + "character": "Yves", + "name": "French (France)", + "locale": "fr-FR", + "voice": "fr-FR-YvesNeural", + "icon": "fr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-fr-fr-yvesneural-fr-fr.mp3", + "approxDurationCoeficient": 21 + }, + { + "character": "Oscar B", + "name": "French-CA", + "voice": "fr-CA-Neural2-B", + "icon": "ca", + "voiceProvider": "google", + "locale": "fr-CA", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-fr-ca-neural2-b-fr-fr.mp3", + "approxDurationCoeficient": 20 + }, + { + "character": "Miles D", + "name": "French-CA", + "voice": "fr-CA-Neural2-D", + "icon": "ca", + "voiceProvider": "google", + "locale": "fr-CA", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-fr-ca-neural2-d-fr-fr.mp3" + }, + { + "character": "James B", + "name": "French-FR", + "voice": "fr-FR-Neural2-B", + "icon": "fr", + "voiceProvider": "google", + "locale": "fr-FR", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-fr-fr-neural2-b-fr-fr.mp3", + "approxDurationCoeficient": 18 + }, + { + "character": "Emmet D", + "name": "French-FR", + "voice": "fr-FR-Neural2-D", + "icon": "fr", + "voiceProvider": "google", + "locale": "fr-FR", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-fr-fr-neural2-d-fr-fr.mp3", + "approxDurationCoeficient": 20 + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Vivienne M", + "name": "French (France)", + "locale": "fr-FR", + "voice": "fr-FR-VivienneMultilingualNeural", + "icon": "fr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-fr-fr-viviennemultilingualneural-fr-fr.mp3", + "approxDurationCoeficient": 20 + }, + { + "voiceProvider": "azure", + "character": "Jacqueline", + "name": "French (France)", + "locale": "fr-FR", + "voice": "fr-FR-JacquelineNeural", + "icon": "fr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-fr-fr-jacquelineneural-fr-fr.mp3", + "approxDurationCoeficient": 18 + }, + { + "character": "Rachel", + "voice": "21m00Tcm4TlvDq8ikWAM", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 1, + "name": "French (France)", + "locale": "fr-FR", + "icon": "fr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-21m00tcm4tlvdq8ikwam-fr-fr.mp3", + "approxDurationCoeficient": 19 + }, + { + "character": "Matilda", + "voice": "XrExE9yKIg1WjnnlVkGX", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 3, + "name": "French (France)", + "locale": "fr-FR", + "icon": "fr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xrexe9ykig1wjnnlvkgx-fr-fr.mp3", + "approxDurationCoeficient": 19 + }, + { + "character": "Grace", + "voice": "oWAxZDx7w5VEj9dCyTzz", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "southern-accent", + "young" + ], + "order": 4, + "name": "French (France)", + "locale": "fr-FR", + "icon": "fr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-owaxzdx7w5vej9dcytzz-fr-fr.mp3", + "approxDurationCoeficient": 19 + }, + { + "character": "Domi", + "voice": "AZnzlk1XvdvUeBnXmlld", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "upbeat", + "young" + ], + "order": 5, + "name": "French (France)", + "locale": "fr-FR", + "icon": "fr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-aznzlk1xvdvuebnxmlld-fr-fr.mp3", + "approxDurationCoeficient": 20 + }, + { + "character": "Gigi", + "voice": "jBpfuIE2acCO8z3wKNLl", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "childish", + "young" + ], + "order": 6, + "name": "French (France)", + "locale": "fr-FR", + "icon": "fr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-jbpfuie2acco8z3wknll-fr-fr.mp3", + "approxDurationCoeficient": 19 + }, + { + "character": "Serena", + "voice": "pMsXgVXv3BLzUgSXRplE", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "order": 7, + "name": "French (France)", + "locale": "fr-FR", + "icon": "fr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pmsxgvxv3blzugsxrple-fr-fr.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Glinda", + "voice": "z9fAnlkpzviPz146aGWa", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "strong", + "middle-aged" + ], + "order": 8, + "name": "French (France)", + "locale": "fr-FR", + "icon": "fr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-z9fanlkpzvipz146agwa-fr-fr.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Mimi", + "voice": "zrHiDhphv9ZnVXBqCLjz", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "childish", + "young" + ], + "order": 9, + "name": "French (France)", + "locale": "fr-FR", + "icon": "fr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zrhidhphv9znvxbqcljz-fr-fr.mp3" + }, + { + "character": "Emily", + "voice": "LcfcDJNUP1GQjkzn1xUU", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "order": 10, + "name": "French (France)", + "locale": "fr-FR", + "icon": "fr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-lcfcdjnup1gqjkzn1xuu-fr-fr.mp3", + "approxDurationCoeficient": 12 + }, + { + "character": "Lily", + "voice": "pFZP5JQG7iQjIQuC4Bku", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "raspy", + "middle-aged" + ], + "order": 11, + "name": "French (France)", + "locale": "fr-FR", + "icon": "fr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pfzp5jqg7iqjiquc4bku-fr-fr.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Charlotte", + "voice": "XB0fDUnXU5powFXDhCwa", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "swedish-accent", + "young" + ], + "order": 12, + "name": "French (France)", + "locale": "fr-FR", + "icon": "fr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xb0fdunxu5powfxdhcwa-fr-fr.mp3", + "approxDurationCoeficient": 13 + }, + { + "character": "Dorothy", + "voice": "ThT5KcBeYPX3keUQqHPh", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 13, + "name": "French (France)", + "locale": "fr-FR", + "icon": "fr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-tht5kcbeypx3keuqqhph-fr-fr.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Sarah", + "voice": "EXAVITQu4vr4xnSDxMaL", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 99999, + "name": "French (France)", + "locale": "fr-FR", + "icon": "fr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-exavitqu4vr4xnsdxmal-fr-fr.mp3", + "approxDurationCoeficient": 18 + }, + { + "character": "Alice", + "voice": "Xb7hH8MSUJpSbSDYk0k2", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "French (France)", + "locale": "fr-FR", + "icon": "fr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xb7hh8msujpsbsdyk0k2-fr-fr.mp3", + "approxDurationCoeficient": 19 + }, + { + "voiceProvider": "azure", + "character": "Charline", + "name": "French (Belgium)", + "locale": "fr-BE", + "voice": "fr-BE-CharlineNeural", + "icon": "be", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-fr-be-charlineneural-fr-fr.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Sylvie", + "name": "French (Canada)", + "locale": "fr-CA", + "voice": "fr-CA-SylvieNeural", + "icon": "ca", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-fr-ca-sylvieneural-fr-fr.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Ariane", + "name": "French (Switzerland)", + "locale": "fr-CH", + "voice": "fr-CH-ArianeNeural", + "icon": "ch", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-fr-ch-arianeneural-fr-fr.mp3", + "approxDurationCoeficient": 19 + }, + { + "voiceProvider": "azure", + "character": "Denise", + "name": "French (France)", + "locale": "fr-FR", + "voice": "fr-FR-DeniseNeural", + "icon": "fr", + "styleList": [ + "cheerful", + "sad" + ], + "stylePreview": { + "cheerful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-fr-fr-deniseneural:cheerful-fr-fr.mp3", + "sad": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-fr-fr-deniseneural:sad-fr-fr.mp3" + }, + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-fr-fr-deniseneural-fr-fr.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Brigitte", + "name": "French (France)", + "locale": "fr-FR", + "voice": "fr-FR-BrigitteNeural", + "icon": "fr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-fr-fr-brigitteneural-fr-fr.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Celeste", + "name": "French (France)", + "locale": "fr-FR", + "voice": "fr-FR-CelesteNeural", + "icon": "fr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-fr-fr-celesteneural-fr-fr.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Coralie", + "name": "French (France)", + "locale": "fr-FR", + "voice": "fr-FR-CoralieNeural", + "icon": "fr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-fr-fr-coralieneural-fr-fr.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Eloise", + "name": "French (France)", + "locale": "fr-FR", + "voice": "fr-FR-EloiseNeural", + "icon": "fr", + "tags": [ + "child" + ], + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-fr-fr-eloiseneural-fr-fr.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Josephine", + "name": "French (France)", + "locale": "fr-FR", + "voice": "fr-FR-JosephineNeural", + "icon": "fr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-fr-fr-josephineneural-fr-fr.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Yvette", + "name": "French (France)", + "locale": "fr-FR", + "voice": "fr-FR-YvetteNeural", + "icon": "fr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-fr-fr-yvetteneural-fr-fr.mp3", + "approxDurationCoeficient": 19 + }, + { + "character": "Elanor A", + "name": "French-CA", + "voice": "fr-CA-Neural2-A", + "icon": "ca", + "voiceProvider": "google", + "locale": "fr-CA", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-fr-ca-neural2-a-fr-fr.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Lucy C", + "name": "French-CA", + "voice": "fr-CA-Neural2-C", + "icon": "ca", + "voiceProvider": "google", + "locale": "fr-CA", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-fr-ca-neural2-c-fr-fr.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Daisy A", + "name": "French-FR", + "voice": "fr-FR-Neural2-A", + "icon": "fr", + "voiceProvider": "google", + "locale": "fr-FR", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-fr-fr-neural2-a-fr-fr.mp3", + "approxDurationCoeficient": 18 + }, + { + "character": "Scarlett C", + "name": "French-FR", + "voice": "fr-FR-Neural2-C", + "icon": "fr", + "voiceProvider": "google", + "locale": "fr-FR", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-fr-fr-neural2-c-fr-fr.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Jane E", + "name": "French-FR", + "voice": "fr-FR-Neural2-E", + "icon": "fr", + "voiceProvider": "google", + "locale": "fr-FR", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-fr-fr-neural2-e-fr-fr.mp3", + "approxDurationCoeficient": 16 + } + ] + }, + { + "name": "Galician", + "male": [ + { + "voiceProvider": "azure", + "character": "Roi", + "name": "Galician", + "locale": "gl-ES", + "voice": "gl-ES-RoiNeural", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-gl-es-roineural-gl-es.mp3", + "approxDurationCoeficient": 17 + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Sabela", + "name": "Galician", + "locale": "gl-ES", + "voice": "gl-ES-SabelaNeural", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-gl-es-sabelaneural-gl-es.mp3", + "approxDurationCoeficient": 16 + } + ] + }, + { + "name": "Georgian", + "male": [ + { + "voiceProvider": "azure", + "character": "Giorgi", + "name": "Georgian (Georgia)", + "locale": "ka-GE", + "voice": "ka-GE-GiorgiNeural", + "icon": "ge", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ka-ge-giorgineural-ka-ge.mp3", + "approxDurationCoeficient": 17 + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Eka", + "name": "Georgian (Georgia)", + "locale": "ka-GE", + "voice": "ka-GE-EkaNeural", + "icon": "ge", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ka-ge-ekaneural-ka-ge.mp3", + "approxDurationCoeficient": 16 + } + ] + }, + { + "name": "German", + "male": [ + { + "voiceProvider": "azure", + "character": "Conrad", + "name": "German (Germany)", + "locale": "de-DE", + "voice": "de-DE-ConradNeural", + "icon": "de", + "styleList": [ + "cheerful" + ], + "stylePreview": { + "cheerful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-de-de-conradneural:cheerful-de-de.mp3" + }, + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-de-de-conradneural-de-de.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Florian M", + "name": "German (Germany)", + "locale": "de-DE", + "voice": "de-DE-FlorianMultilingualNeural", + "icon": "de", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-de-de-florianmultilingualneural-de-de.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Killian", + "name": "German (Germany)", + "locale": "de-DE", + "voice": "de-DE-KillianNeural", + "icon": "de", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-de-de-killianneural-de-de.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Antoni", + "voice": "ErXwobaYiN019PkySvjV", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "well-rounded", + "calm" + ], + "order": 1, + "name": "German (Germany)", + "locale": "de-DE", + "icon": "de", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-erxwobayin019pkysvjv-de-de.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Josh", + "voice": "TxGEqnHWrfWFTfGW9XjX", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "young" + ], + "order": 2, + "name": "German (Germany)", + "locale": "de-DE", + "icon": "de", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-txgeqnhwrfwftfgw9xjx-de-de.mp3", + "approxDurationCoeficient": 19 + }, + { + "character": "Arnold", + "voice": "VR6AewLTigWG4xSOukaG", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "crisp", + "middle-aged" + ], + "order": 3, + "name": "German (Germany)", + "locale": "de-DE", + "icon": "de", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-vr6aewltigwg4xsoukag-de-de.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Adam", + "voice": "pNInz6obpgDQGcFmaJgB", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "middle-aged" + ], + "order": 4, + "name": "German (Germany)", + "locale": "de-DE", + "icon": "de", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pninz6obpgdqgcfmajgb-de-de.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Bill", + "voice": "pqHfZKP75CvOlQylNhV4", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "strong", + "middle-aged" + ], + "order": 5, + "name": "German (Germany)", + "locale": "de-DE", + "icon": "de", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pqhfzkp75cvolqylnhv4-de-de.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Jessie", + "voice": "t0jbNlBVZ17f02VDIeMI", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "fast-paced", + "old" + ], + "order": 6, + "name": "German (Germany)", + "locale": "de-DE", + "icon": "de", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-t0jbnlbvz17f02vdiemi-de-de.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Michael", + "voice": "flq6f7yk4E4fJM5XTYuZ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "orutund", + "old" + ], + "order": 7, + "name": "German (Germany)", + "locale": "de-DE", + "icon": "de", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-flq6f7yk4e4fjm5xtyuz-de-de.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Liam", + "voice": "TX3LPaxmHKxFdv7VOQHJ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "neutral", + "young" + ], + "order": 8, + "name": "German (Germany)", + "locale": "de-DE", + "icon": "de", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-tx3lpaxmhkxfdv7voqhj-de-de.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Harry", + "voice": "SOYHLrjzK2X1ezoPC6cr", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "anxious", + "young" + ], + "order": 9, + "name": "German (Germany)", + "locale": "de-DE", + "icon": "de", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-soyhlrjzk2x1ezopc6cr-de-de.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Patrick", + "voice": "ODq5zmih8GrVes37Dizd", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "shouty", + "middle-aged" + ], + "order": 10, + "name": "German (Germany)", + "locale": "de-DE", + "icon": "de", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-odq5zmih8grves37dizd-de-de.mp3", + "approxDurationCoeficient": 19 + }, + { + "character": "Thomas", + "voice": "GBv7mTt0atIp3Br8iCZE", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 11, + "name": "German (Germany)", + "locale": "de-DE", + "icon": "de", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-gbv7mtt0atip3br8icze-de-de.mp3", + "approxDurationCoeficient": 13 + }, + { + "character": "Drew", + "voice": "29vD33N1CtxCmqQRPOHJ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "well-rounded", + "middle-aged" + ], + "order": 12, + "name": "German (Germany)", + "locale": "de-DE", + "icon": "de", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-29vd33n1ctxcmqqrpohj-de-de.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Paul", + "voice": "5Q0t7uMcjvnagumLfvZi", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "narration", + "middle-aged" + ], + "order": 13, + "name": "German (Germany)", + "locale": "de-DE", + "icon": "de", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-5q0t7umcjvnagumlfvzi-de-de.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Callum", + "voice": "N2lVS1w4EtoT3dr4eOWO", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "masculine", + "middle-aged" + ], + "order": 14, + "name": "German (Germany)", + "locale": "de-DE", + "icon": "de", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-n2lvs1w4etot3dr4eowo-de-de.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Giovanni", + "voice": "zcAOhNBS3c14rBihAFp1", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "italian-accent", + "young" + ], + "order": 15, + "name": "German (Germany)", + "locale": "de-DE", + "icon": "de", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zcaohnbs3c14rbihafp1-de-de.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Clyde", + "voice": "2EiwWnXFnvU5JabPnv8n", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "masculine", + "middle-aged" + ], + "order": 17, + "name": "German (Germany)", + "locale": "de-DE", + "icon": "de", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-2eiwwnxfnvu5jabpnv8n-de-de.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "George", + "voice": "JBFqnCBsd6RMkjVDRZzb", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "raspy", + "narration" + ], + "order": 19, + "name": "German (Germany)", + "locale": "de-DE", + "icon": "de", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-jbfqncbsd6rmkjvdrzzb-de-de.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Dave", + "voice": "CYw3kZ02Hs0563khs1Fj", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "essex-accent", + "young" + ], + "order": 20, + "name": "German (Germany)", + "locale": "de-DE", + "icon": "de", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-cyw3kz02hs0563khs1fj-de-de.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Joseph", + "voice": "Zlb1dXrM653N07WRdFW3", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "upbeat", + "middle-aged" + ], + "order": 21, + "name": "German (Germany)", + "locale": "de-DE", + "icon": "de", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zlb1dxrm653n07wrdfw3-de-de.mp3" + }, + { + "character": "Daniel", + "voice": "onwK4e9ZLuTAKqWW03F9", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "middle-aged" + ], + "order": 22, + "name": "German (Germany)", + "locale": "de-DE", + "icon": "de", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-onwk4e9zlutakqww03f9-de-de.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "Charlie", + "voice": "IKne3meq5aSn9XLyUdCD", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "casual", + "middle-aged" + ], + "order": 23, + "name": "German (Germany)", + "locale": "de-DE", + "icon": "de", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-ikne3meq5asn9xlyudcd-de-de.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "James", + "voice": "ZQe5CZNOzWyzPSCn5a3c", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "old" + ], + "order": 24, + "name": "German (Germany)", + "locale": "de-DE", + "icon": "de", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zqe5cznozwyzpscn5a3c-de-de.mp3" + }, + { + "character": "Fin", + "voice": "D38z5RcWu1voky8WS1ja", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "sailor", + "old" + ], + "order": 25, + "name": "German (Germany)", + "locale": "de-DE", + "icon": "de", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-d38z5rcwu1voky8ws1ja-de-de.mp3" + }, + { + "character": "Jeremy", + "voice": "bVMeCyTHy58xNoL34h3p", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "excited", + "young" + ], + "order": 26, + "name": "German (Germany)", + "locale": "de-DE", + "icon": "de", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-bvmecythy58xnol34h3p-de-de.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Chris", + "voice": "iP95p4xoKVk53GoZ742B", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "German (Germany)", + "locale": "de-DE", + "icon": "de", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-ip95p4xokvk53goz742b-de-de.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Brian", + "voice": "nPczCjzI2devNBz1zQrb", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "German (Germany)", + "locale": "de-DE", + "icon": "de", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-npczcjzi2devnbz1zqrb-de-de.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Sam", + "voice": "yoZ06aMxZJJ28mfd3POQ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "fast-paced", + "young" + ], + "order": 99999, + "name": "German (Germany)", + "locale": "de-DE", + "icon": "de", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-yoz06amxzjj28mfd3poq-de-de.mp3", + "approxDurationCoeficient": 19 + }, + { + "voiceProvider": "azure", + "character": "Jonas", + "name": "German (Austria)", + "locale": "de-AT", + "voice": "de-AT-JonasNeural", + "icon": "at", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-de-at-jonasneural-de-de.mp3", + "approxDurationCoeficient": 19 + }, + { + "voiceProvider": "azure", + "character": "Jan", + "name": "German (Switzerland)", + "locale": "de-CH", + "voice": "de-CH-JanNeural", + "icon": "ch", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-de-ch-janneural-de-de.mp3", + "approxDurationCoeficient": 19 + }, + { + "voiceProvider": "azure", + "character": "Bernd", + "name": "German (Germany)", + "locale": "de-DE", + "voice": "de-DE-BerndNeural", + "icon": "de", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-de-de-berndneural-de-de.mp3", + "approxDurationCoeficient": 16 + }, + { + "voiceProvider": "azure", + "character": "Christoph", + "name": "German (Germany)", + "locale": "de-DE", + "voice": "de-DE-ChristophNeural", + "icon": "de", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-de-de-christophneural-de-de.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Kasper", + "name": "German (Germany)", + "locale": "de-DE", + "voice": "de-DE-KasperNeural", + "icon": "de", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-de-de-kasperneural-de-de.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Klaus", + "name": "German (Germany)", + "locale": "de-DE", + "voice": "de-DE-KlausNeural", + "icon": "de", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-de-de-klausneural-de-de.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Ralf", + "name": "German (Germany)", + "locale": "de-DE", + "voice": "de-DE-RalfNeural", + "icon": "de", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-de-de-ralfneural-de-de.mp3", + "approxDurationCoeficient": 19 + }, + { + "character": "Noah B", + "name": "German-DE", + "voice": "de-DE-Neural2-B", + "icon": "de", + "voiceProvider": "google", + "locale": "de-DE", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-de-de-neural2-b-de-de.mp3", + "approxDurationCoeficient": 18 + }, + { + "character": "Matteo D", + "name": "German-DE", + "voice": "de-DE-Neural2-D", + "icon": "de", + "voiceProvider": "google", + "locale": "de-DE", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-de-de-neural2-d-de-de.mp3", + "approxDurationCoeficient": 13 + }, + { + "character": "Finn E", + "name": "German-DE", + "voice": "de-DE-Wavenet-E", + "icon": "de", + "voiceProvider": "google", + "locale": "de-DE", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-de-de-wavenet-e-de-de.mp3", + "approxDurationCoeficient": 18 + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Seraphina M", + "name": "German (Germany)", + "locale": "de-DE", + "voice": "de-DE-SeraphinaMultilingualNeural", + "icon": "de", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-de-de-seraphinamultilingualneural-de-de.mp3", + "approxDurationCoeficient": 16 + }, + { + "voiceProvider": "azure", + "character": "Louisa", + "name": "German (Germany)", + "locale": "de-DE", + "voice": "de-DE-LouisaNeural", + "icon": "de", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-de-de-louisaneural-de-de.mp3", + "approxDurationCoeficient": 15 + }, + { + "voiceProvider": "azure", + "character": "Elke", + "name": "German (Germany)", + "locale": "de-DE", + "voice": "de-DE-ElkeNeural", + "icon": "de", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-de-de-elkeneural-de-de.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Rachel", + "voice": "21m00Tcm4TlvDq8ikWAM", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 1, + "name": "German (Germany)", + "locale": "de-DE", + "icon": "de", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-21m00tcm4tlvdq8ikwam-de-de.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Matilda", + "voice": "XrExE9yKIg1WjnnlVkGX", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 3, + "name": "German (Germany)", + "locale": "de-DE", + "icon": "de", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xrexe9ykig1wjnnlvkgx-de-de.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Grace", + "voice": "oWAxZDx7w5VEj9dCyTzz", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "southern-accent", + "young" + ], + "order": 4, + "name": "German (Germany)", + "locale": "de-DE", + "icon": "de", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-owaxzdx7w5vej9dcytzz-de-de.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Domi", + "voice": "AZnzlk1XvdvUeBnXmlld", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "upbeat", + "young" + ], + "order": 5, + "name": "German (Germany)", + "locale": "de-DE", + "icon": "de", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-aznzlk1xvdvuebnxmlld-de-de.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Gigi", + "voice": "jBpfuIE2acCO8z3wKNLl", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "childish", + "young" + ], + "order": 6, + "name": "German (Germany)", + "locale": "de-DE", + "icon": "de", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-jbpfuie2acco8z3wknll-de-de.mp3" + }, + { + "character": "Serena", + "voice": "pMsXgVXv3BLzUgSXRplE", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "order": 7, + "name": "German (Germany)", + "locale": "de-DE", + "icon": "de", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pmsxgvxv3blzugsxrple-de-de.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Glinda", + "voice": "z9fAnlkpzviPz146aGWa", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "strong", + "middle-aged" + ], + "order": 8, + "name": "German (Germany)", + "locale": "de-DE", + "icon": "de", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-z9fanlkpzvipz146agwa-de-de.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Mimi", + "voice": "zrHiDhphv9ZnVXBqCLjz", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "childish", + "young" + ], + "order": 9, + "name": "German (Germany)", + "locale": "de-DE", + "icon": "de", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zrhidhphv9znvxbqcljz-de-de.mp3", + "approxDurationCoeficient": 13 + }, + { + "character": "Emily", + "voice": "LcfcDJNUP1GQjkzn1xUU", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "order": 10, + "name": "German (Germany)", + "locale": "de-DE", + "icon": "de", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-lcfcdjnup1gqjkzn1xuu-de-de.mp3", + "approxDurationCoeficient": 10 + }, + { + "character": "Lily", + "voice": "pFZP5JQG7iQjIQuC4Bku", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "raspy", + "middle-aged" + ], + "order": 11, + "name": "German (Germany)", + "locale": "de-DE", + "icon": "de", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pfzp5jqg7iqjiquc4bku-de-de.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "Charlotte", + "voice": "XB0fDUnXU5powFXDhCwa", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "swedish-accent", + "young" + ], + "order": 12, + "name": "German (Germany)", + "locale": "de-DE", + "icon": "de", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xb0fdunxu5powfxdhcwa-de-de.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "Dorothy", + "voice": "ThT5KcBeYPX3keUQqHPh", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 13, + "name": "German (Germany)", + "locale": "de-DE", + "icon": "de", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-tht5kcbeypx3keuqqhph-de-de.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Sarah", + "voice": "EXAVITQu4vr4xnSDxMaL", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 99999, + "name": "German (Germany)", + "locale": "de-DE", + "icon": "de", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-exavitqu4vr4xnsdxmal-de-de.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Alice", + "voice": "Xb7hH8MSUJpSbSDYk0k2", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "German (Germany)", + "locale": "de-DE", + "icon": "de", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xb7hh8msujpsbsdyk0k2-de-de.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Ingrid", + "name": "German (Austria)", + "locale": "de-AT", + "voice": "de-AT-IngridNeural", + "icon": "at", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-de-at-ingridneural-de-de.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Leni", + "name": "German (Switzerland)", + "locale": "de-CH", + "voice": "de-CH-LeniNeural", + "icon": "ch", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-de-ch-lenineural-de-de.mp3", + "approxDurationCoeficient": 16 + }, + { + "voiceProvider": "azure", + "character": "Katja", + "name": "German (Germany)", + "locale": "de-DE", + "voice": "de-DE-KatjaNeural", + "icon": "de", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-de-de-katjaneural-de-de.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Amala", + "name": "German (Germany)", + "locale": "de-DE", + "voice": "de-DE-AmalaNeural", + "icon": "de", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-de-de-amalaneural-de-de.mp3", + "approxDurationCoeficient": 15 + }, + { + "voiceProvider": "azure", + "character": "Gisela", + "name": "German (Germany)", + "locale": "de-DE", + "voice": "de-DE-GiselaNeural", + "icon": "de", + "tags": [ + "child" + ], + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-de-de-giselaneural-de-de.mp3", + "approxDurationCoeficient": 14 + }, + { + "voiceProvider": "azure", + "character": "Klarissa", + "name": "German (Germany)", + "locale": "de-DE", + "voice": "de-DE-KlarissaNeural", + "icon": "de", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-de-de-klarissaneural-de-de.mp3", + "approxDurationCoeficient": 15 + }, + { + "voiceProvider": "azure", + "character": "Maja", + "name": "German (Germany)", + "locale": "de-DE", + "voice": "de-DE-MajaNeural", + "icon": "de", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-de-de-majaneural-de-de.mp3", + "approxDurationCoeficient": 15 + }, + { + "voiceProvider": "azure", + "character": "Tanja", + "name": "German (Germany)", + "locale": "de-DE", + "voice": "de-DE-TanjaNeural", + "icon": "de", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-de-de-tanjaneural-de-de.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Emilia A", + "name": "German-DE", + "voice": "de-DE-Neural2-A", + "icon": "de", + "voiceProvider": "google", + "locale": "de-DE", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-de-de-neural2-a-de-de.mp3" + }, + { + "character": "Mia C", + "name": "German-DE", + "voice": "de-DE-Neural2-C", + "icon": "de", + "voiceProvider": "google", + "locale": "de-DE", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-de-de-neural2-c-de-de.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Hannah F", + "name": "German-DE", + "voice": "de-DE-Neural2-F", + "icon": "de", + "voiceProvider": "google", + "locale": "de-DE", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-de-de-neural2-f-de-de.mp3", + "approxDurationCoeficient": 16 + } + ] + }, + { + "name": "Greek", + "male": [ + { + "voiceProvider": "azure", + "character": "Nestoras", + "name": "Greek (Greece)", + "locale": "el-GR", + "voice": "el-GR-NestorasNeural", + "icon": "gr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-el-gr-nestorasneural-el-gr.mp3", + "approxDurationCoeficient": 18 + }, + { + "character": "Antoni", + "voice": "ErXwobaYiN019PkySvjV", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "well-rounded", + "calm" + ], + "order": 1, + "name": "Greek (Greece)", + "locale": "el-GR", + "icon": "gr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-erxwobayin019pkysvjv-el-gr.mp3" + }, + { + "character": "Josh", + "voice": "TxGEqnHWrfWFTfGW9XjX", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "young" + ], + "order": 2, + "name": "Greek (Greece)", + "locale": "el-GR", + "icon": "gr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-txgeqnhwrfwftfgw9xjx-el-gr.mp3" + }, + { + "character": "Arnold", + "voice": "VR6AewLTigWG4xSOukaG", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "crisp", + "middle-aged" + ], + "order": 3, + "name": "Greek (Greece)", + "locale": "el-GR", + "icon": "gr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-vr6aewltigwg4xsoukag-el-gr.mp3" + }, + { + "character": "Adam", + "voice": "pNInz6obpgDQGcFmaJgB", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "middle-aged" + ], + "order": 4, + "name": "Greek (Greece)", + "locale": "el-GR", + "icon": "gr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pninz6obpgdqgcfmajgb-el-gr.mp3" + }, + { + "character": "Bill", + "voice": "pqHfZKP75CvOlQylNhV4", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "strong", + "middle-aged" + ], + "order": 5, + "name": "Greek (Greece)", + "locale": "el-GR", + "icon": "gr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pqhfzkp75cvolqylnhv4-el-gr.mp3" + }, + { + "character": "Jessie", + "voice": "t0jbNlBVZ17f02VDIeMI", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "fast-paced", + "old" + ], + "order": 6, + "name": "Greek (Greece)", + "locale": "el-GR", + "icon": "gr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-t0jbnlbvz17f02vdiemi-el-gr.mp3" + }, + { + "character": "Michael", + "voice": "flq6f7yk4E4fJM5XTYuZ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "orutund", + "old" + ], + "order": 7, + "name": "Greek (Greece)", + "locale": "el-GR", + "icon": "gr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-flq6f7yk4e4fjm5xtyuz-el-gr.mp3" + }, + { + "character": "Liam", + "voice": "TX3LPaxmHKxFdv7VOQHJ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "neutral", + "young" + ], + "order": 8, + "name": "Greek (Greece)", + "locale": "el-GR", + "icon": "gr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-tx3lpaxmhkxfdv7voqhj-el-gr.mp3" + }, + { + "character": "Harry", + "voice": "SOYHLrjzK2X1ezoPC6cr", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "anxious", + "young" + ], + "order": 9, + "name": "Greek (Greece)", + "locale": "el-GR", + "icon": "gr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-soyhlrjzk2x1ezopc6cr-el-gr.mp3" + }, + { + "character": "Patrick", + "voice": "ODq5zmih8GrVes37Dizd", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "shouty", + "middle-aged" + ], + "order": 10, + "name": "Greek (Greece)", + "locale": "el-GR", + "icon": "gr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-odq5zmih8grves37dizd-el-gr.mp3" + }, + { + "character": "Thomas", + "voice": "GBv7mTt0atIp3Br8iCZE", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 11, + "name": "Greek (Greece)", + "locale": "el-GR", + "icon": "gr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-gbv7mtt0atip3br8icze-el-gr.mp3" + }, + { + "character": "Drew", + "voice": "29vD33N1CtxCmqQRPOHJ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "well-rounded", + "middle-aged" + ], + "order": 12, + "name": "Greek (Greece)", + "locale": "el-GR", + "icon": "gr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-29vd33n1ctxcmqqrpohj-el-gr.mp3" + }, + { + "character": "Paul", + "voice": "5Q0t7uMcjvnagumLfvZi", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "narration", + "middle-aged" + ], + "order": 13, + "name": "Greek (Greece)", + "locale": "el-GR", + "icon": "gr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-5q0t7umcjvnagumlfvzi-el-gr.mp3" + }, + { + "character": "Callum", + "voice": "N2lVS1w4EtoT3dr4eOWO", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "masculine", + "middle-aged" + ], + "order": 14, + "name": "Greek (Greece)", + "locale": "el-GR", + "icon": "gr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-n2lvs1w4etot3dr4eowo-el-gr.mp3" + }, + { + "character": "Giovanni", + "voice": "zcAOhNBS3c14rBihAFp1", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "italian-accent", + "young" + ], + "order": 15, + "name": "Greek (Greece)", + "locale": "el-GR", + "icon": "gr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zcaohnbs3c14rbihafp1-el-gr.mp3" + }, + { + "character": "Clyde", + "voice": "2EiwWnXFnvU5JabPnv8n", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "masculine", + "middle-aged" + ], + "order": 17, + "name": "Greek (Greece)", + "locale": "el-GR", + "icon": "gr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-2eiwwnxfnvu5jabpnv8n-el-gr.mp3" + }, + { + "character": "George", + "voice": "JBFqnCBsd6RMkjVDRZzb", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "raspy", + "narration" + ], + "order": 19, + "name": "Greek (Greece)", + "locale": "el-GR", + "icon": "gr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-jbfqncbsd6rmkjvdrzzb-el-gr.mp3" + }, + { + "character": "Dave", + "voice": "CYw3kZ02Hs0563khs1Fj", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "essex-accent", + "young" + ], + "order": 20, + "name": "Greek (Greece)", + "locale": "el-GR", + "icon": "gr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-cyw3kz02hs0563khs1fj-el-gr.mp3" + }, + { + "character": "Joseph", + "voice": "Zlb1dXrM653N07WRdFW3", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "upbeat", + "middle-aged" + ], + "order": 21, + "name": "Greek (Greece)", + "locale": "el-GR", + "icon": "gr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zlb1dxrm653n07wrdfw3-el-gr.mp3" + }, + { + "character": "Daniel", + "voice": "onwK4e9ZLuTAKqWW03F9", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "middle-aged" + ], + "order": 22, + "name": "Greek (Greece)", + "locale": "el-GR", + "icon": "gr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-onwk4e9zlutakqww03f9-el-gr.mp3" + }, + { + "character": "Charlie", + "voice": "IKne3meq5aSn9XLyUdCD", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "casual", + "middle-aged" + ], + "order": 23, + "name": "Greek (Greece)", + "locale": "el-GR", + "icon": "gr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-ikne3meq5asn9xlyudcd-el-gr.mp3" + }, + { + "character": "James", + "voice": "ZQe5CZNOzWyzPSCn5a3c", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "old" + ], + "order": 24, + "name": "Greek (Greece)", + "locale": "el-GR", + "icon": "gr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zqe5cznozwyzpscn5a3c-el-gr.mp3" + }, + { + "character": "Fin", + "voice": "D38z5RcWu1voky8WS1ja", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "sailor", + "old" + ], + "order": 25, + "name": "Greek (Greece)", + "locale": "el-GR", + "icon": "gr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-d38z5rcwu1voky8ws1ja-el-gr.mp3" + }, + { + "character": "Jeremy", + "voice": "bVMeCyTHy58xNoL34h3p", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "excited", + "young" + ], + "order": 26, + "name": "Greek (Greece)", + "locale": "el-GR", + "icon": "gr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-bvmecythy58xnol34h3p-el-gr.mp3" + }, + { + "character": "Chris", + "voice": "iP95p4xoKVk53GoZ742B", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Greek (Greece)", + "locale": "el-GR", + "icon": "gr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-ip95p4xokvk53goz742b-el-gr.mp3" + }, + { + "character": "Brian", + "voice": "nPczCjzI2devNBz1zQrb", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Greek (Greece)", + "locale": "el-GR", + "icon": "gr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-npczcjzi2devnbz1zqrb-el-gr.mp3" + }, + { + "character": "Sam", + "voice": "yoZ06aMxZJJ28mfd3POQ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "fast-paced", + "young" + ], + "order": 99999, + "name": "Greek (Greece)", + "locale": "el-GR", + "icon": "gr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-yoz06amxzjj28mfd3poq-el-gr.mp3" + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Athina", + "name": "Greek (Greece)", + "locale": "el-GR", + "voice": "el-GR-AthinaNeural", + "icon": "gr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-el-gr-athinaneural-el-gr.mp3", + "approxDurationCoeficient": 18 + }, + { + "character": "Rachel", + "voice": "21m00Tcm4TlvDq8ikWAM", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 1, + "name": "Greek (Greece)", + "locale": "el-GR", + "icon": "gr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-21m00tcm4tlvdq8ikwam-el-gr.mp3" + }, + { + "character": "Matilda", + "voice": "XrExE9yKIg1WjnnlVkGX", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 3, + "name": "Greek (Greece)", + "locale": "el-GR", + "icon": "gr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xrexe9ykig1wjnnlvkgx-el-gr.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Grace", + "voice": "oWAxZDx7w5VEj9dCyTzz", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "southern-accent", + "young" + ], + "order": 4, + "name": "Greek (Greece)", + "locale": "el-GR", + "icon": "gr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-owaxzdx7w5vej9dcytzz-el-gr.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Domi", + "voice": "AZnzlk1XvdvUeBnXmlld", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "upbeat", + "young" + ], + "order": 5, + "name": "Greek (Greece)", + "locale": "el-GR", + "icon": "gr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-aznzlk1xvdvuebnxmlld-el-gr.mp3" + }, + { + "character": "Gigi", + "voice": "jBpfuIE2acCO8z3wKNLl", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "childish", + "young" + ], + "order": 6, + "name": "Greek (Greece)", + "locale": "el-GR", + "icon": "gr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-jbpfuie2acco8z3wknll-el-gr.mp3", + "approxDurationCoeficient": 24 + }, + { + "character": "Serena", + "voice": "pMsXgVXv3BLzUgSXRplE", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "order": 7, + "name": "Greek (Greece)", + "locale": "el-GR", + "icon": "gr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pmsxgvxv3blzugsxrple-el-gr.mp3" + }, + { + "character": "Glinda", + "voice": "z9fAnlkpzviPz146aGWa", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "strong", + "middle-aged" + ], + "order": 8, + "name": "Greek (Greece)", + "locale": "el-GR", + "icon": "gr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-z9fanlkpzvipz146agwa-el-gr.mp3" + }, + { + "character": "Mimi", + "voice": "zrHiDhphv9ZnVXBqCLjz", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "childish", + "young" + ], + "order": 9, + "name": "Greek (Greece)", + "locale": "el-GR", + "icon": "gr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zrhidhphv9znvxbqcljz-el-gr.mp3" + }, + { + "character": "Emily", + "voice": "LcfcDJNUP1GQjkzn1xUU", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "order": 10, + "name": "Greek (Greece)", + "locale": "el-GR", + "icon": "gr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-lcfcdjnup1gqjkzn1xuu-el-gr.mp3" + }, + { + "character": "Lily", + "voice": "pFZP5JQG7iQjIQuC4Bku", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "raspy", + "middle-aged" + ], + "order": 11, + "name": "Greek (Greece)", + "locale": "el-GR", + "icon": "gr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pfzp5jqg7iqjiquc4bku-el-gr.mp3" + }, + { + "character": "Charlotte", + "voice": "XB0fDUnXU5powFXDhCwa", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "swedish-accent", + "young" + ], + "order": 12, + "name": "Greek (Greece)", + "locale": "el-GR", + "icon": "gr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xb0fdunxu5powfxdhcwa-el-gr.mp3" + }, + { + "character": "Dorothy", + "voice": "ThT5KcBeYPX3keUQqHPh", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 13, + "name": "Greek (Greece)", + "locale": "el-GR", + "icon": "gr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-tht5kcbeypx3keuqqhph-el-gr.mp3" + }, + { + "character": "Sarah", + "voice": "EXAVITQu4vr4xnSDxMaL", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 99999, + "name": "Greek (Greece)", + "locale": "el-GR", + "icon": "gr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-exavitqu4vr4xnsdxmal-el-gr.mp3" + }, + { + "character": "Alice", + "voice": "Xb7hH8MSUJpSbSDYk0k2", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Greek (Greece)", + "locale": "el-GR", + "icon": "gr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xb7hh8msujpsbsdyk0k2-el-gr.mp3" + }, + { + "character": "Elanor A", + "name": "Greek-GR", + "voice": "el-GR-Wavenet-A", + "icon": "gr", + "voiceProvider": "google", + "locale": "el-GR", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-el-gr-wavenet-a-el-gr.mp3", + "approxDurationCoeficient": 17 + } + ] + }, + { + "name": "Gujarati", + "male": [ + { + "voiceProvider": "azure", + "character": "Niranjan", + "name": "Gujarati (India)", + "locale": "gu-IN", + "voice": "gu-IN-NiranjanNeural", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-gu-in-niranjanneural-gu-in.mp3", + "approxDurationCoeficient": 13 + }, + { + "character": "Oscar B", + "name": "Gujarati-IN", + "voice": "gu-IN-Wavenet-B", + "icon": "in", + "voiceProvider": "google", + "locale": "gu-IN", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-gu-in-wavenet-b-gu-in.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Miles D", + "name": "Gujarati-IN", + "voice": "gu-IN-Wavenet-D", + "icon": "in", + "voiceProvider": "google", + "locale": "gu-IN", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-gu-in-wavenet-d-gu-in.mp3" + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Dhwani", + "name": "Gujarati (India)", + "locale": "gu-IN", + "voice": "gu-IN-DhwaniNeural", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-gu-in-dhwanineural-gu-in.mp3", + "approxDurationCoeficient": 11 + }, + { + "character": "Elanor A", + "name": "Gujarati-IN", + "voice": "gu-IN-Wavenet-A", + "icon": "in", + "voiceProvider": "google", + "locale": "gu-IN", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-gu-in-wavenet-a-gu-in.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "Lucy C", + "name": "Gujarati-IN", + "voice": "gu-IN-Wavenet-C", + "icon": "in", + "voiceProvider": "google", + "locale": "gu-IN", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-gu-in-wavenet-c-gu-in.mp3", + "approxDurationCoeficient": 14 + } + ] + }, + { + "name": "Hebrew", + "male": [ + { + "voiceProvider": "azure", + "character": "Avri", + "name": "Hebrew (Israel)", + "locale": "he-IL", + "voice": "he-IL-AvriNeural", + "icon": "il", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-he-il-avrineural-he-il.mp3", + "approxDurationCoeficient": 12 + }, + { + "character": "Oscar B", + "name": "Hebrew-IL", + "voice": "he-IL-Wavenet-B", + "icon": "il", + "voiceProvider": "google", + "locale": "he-IL", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-he-il-wavenet-b-he-il.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Miles D", + "name": "Hebrew-IL", + "voice": "he-IL-Wavenet-D", + "icon": "il", + "voiceProvider": "google", + "locale": "he-IL", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-he-il-wavenet-d-he-il.mp3", + "approxDurationCoeficient": 14 + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Hila", + "name": "Hebrew (Israel)", + "locale": "he-IL", + "voice": "he-IL-HilaNeural", + "icon": "il", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-he-il-hilaneural-he-il.mp3", + "approxDurationCoeficient": 12 + }, + { + "character": "Elanor A", + "name": "Hebrew-IL", + "voice": "he-IL-Wavenet-A", + "icon": "il", + "voiceProvider": "google", + "locale": "he-IL", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-he-il-wavenet-a-he-il.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Lucy C", + "name": "Hebrew-IL", + "voice": "he-IL-Wavenet-C", + "icon": "il", + "voiceProvider": "google", + "locale": "he-IL", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-he-il-wavenet-c-he-il.mp3", + "approxDurationCoeficient": 14 + } + ] + }, + { + "name": "Hindi", + "male": [ + { + "voiceProvider": "azure", + "character": "Madhur", + "name": "Hindi (India)", + "locale": "hi-IN", + "voice": "hi-IN-MadhurNeural", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-hi-in-madhurneural-hi-in.mp3", + "approxDurationCoeficient": 13 + }, + { + "character": "Antoni", + "voice": "ErXwobaYiN019PkySvjV", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "well-rounded", + "calm" + ], + "order": 1, + "name": "Hindi (India)", + "locale": "hi-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-erxwobayin019pkysvjv-hi-in.mp3", + "approxDurationCoeficient": 13 + }, + { + "character": "Josh", + "voice": "TxGEqnHWrfWFTfGW9XjX", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "young" + ], + "order": 2, + "name": "Hindi (India)", + "locale": "hi-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-txgeqnhwrfwftfgw9xjx-hi-in.mp3", + "approxDurationCoeficient": 18 + }, + { + "character": "Arnold", + "voice": "VR6AewLTigWG4xSOukaG", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "crisp", + "middle-aged" + ], + "order": 3, + "name": "Hindi (India)", + "locale": "hi-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-vr6aewltigwg4xsoukag-hi-in.mp3", + "approxDurationCoeficient": 33 + }, + { + "character": "Adam", + "voice": "pNInz6obpgDQGcFmaJgB", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "middle-aged" + ], + "order": 4, + "name": "Hindi (India)", + "locale": "hi-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pninz6obpgdqgcfmajgb-hi-in.mp3", + "approxDurationCoeficient": 12 + }, + { + "character": "Bill", + "voice": "pqHfZKP75CvOlQylNhV4", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "strong", + "middle-aged" + ], + "order": 5, + "name": "Hindi (India)", + "locale": "hi-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pqhfzkp75cvolqylnhv4-hi-in.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Jessie", + "voice": "t0jbNlBVZ17f02VDIeMI", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "fast-paced", + "old" + ], + "order": 6, + "name": "Hindi (India)", + "locale": "hi-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-t0jbnlbvz17f02vdiemi-hi-in.mp3" + }, + { + "character": "Michael", + "voice": "flq6f7yk4E4fJM5XTYuZ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "orutund", + "old" + ], + "order": 7, + "name": "Hindi (India)", + "locale": "hi-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-flq6f7yk4e4fjm5xtyuz-hi-in.mp3" + }, + { + "character": "Liam", + "voice": "TX3LPaxmHKxFdv7VOQHJ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "neutral", + "young" + ], + "order": 8, + "name": "Hindi (India)", + "locale": "hi-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-tx3lpaxmhkxfdv7voqhj-hi-in.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "Harry", + "voice": "SOYHLrjzK2X1ezoPC6cr", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "anxious", + "young" + ], + "order": 9, + "name": "Hindi (India)", + "locale": "hi-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-soyhlrjzk2x1ezopc6cr-hi-in.mp3" + }, + { + "character": "Patrick", + "voice": "ODq5zmih8GrVes37Dizd", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "shouty", + "middle-aged" + ], + "order": 10, + "name": "Hindi (India)", + "locale": "hi-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-odq5zmih8grves37dizd-hi-in.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Thomas", + "voice": "GBv7mTt0atIp3Br8iCZE", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 11, + "name": "Hindi (India)", + "locale": "hi-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-gbv7mtt0atip3br8icze-hi-in.mp3", + "approxDurationCoeficient": 9 + }, + { + "character": "Drew", + "voice": "29vD33N1CtxCmqQRPOHJ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "well-rounded", + "middle-aged" + ], + "order": 12, + "name": "Hindi (India)", + "locale": "hi-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-29vd33n1ctxcmqqrpohj-hi-in.mp3", + "approxDurationCoeficient": 13 + }, + { + "character": "Paul", + "voice": "5Q0t7uMcjvnagumLfvZi", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "narration", + "middle-aged" + ], + "order": 13, + "name": "Hindi (India)", + "locale": "hi-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-5q0t7umcjvnagumlfvzi-hi-in.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Callum", + "voice": "N2lVS1w4EtoT3dr4eOWO", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "masculine", + "middle-aged" + ], + "order": 14, + "name": "Hindi (India)", + "locale": "hi-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-n2lvs1w4etot3dr4eowo-hi-in.mp3", + "approxDurationCoeficient": 13 + }, + { + "character": "Giovanni", + "voice": "zcAOhNBS3c14rBihAFp1", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "italian-accent", + "young" + ], + "order": 15, + "name": "Hindi (India)", + "locale": "hi-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zcaohnbs3c14rbihafp1-hi-in.mp3" + }, + { + "character": "Clyde", + "voice": "2EiwWnXFnvU5JabPnv8n", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "masculine", + "middle-aged" + ], + "order": 17, + "name": "Hindi (India)", + "locale": "hi-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-2eiwwnxfnvu5jabpnv8n-hi-in.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "George", + "voice": "JBFqnCBsd6RMkjVDRZzb", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "raspy", + "narration" + ], + "order": 19, + "name": "Hindi (India)", + "locale": "hi-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-jbfqncbsd6rmkjvdrzzb-hi-in.mp3" + }, + { + "character": "Dave", + "voice": "CYw3kZ02Hs0563khs1Fj", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "essex-accent", + "young" + ], + "order": 20, + "name": "Hindi (India)", + "locale": "hi-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-cyw3kz02hs0563khs1fj-hi-in.mp3" + }, + { + "character": "Joseph", + "voice": "Zlb1dXrM653N07WRdFW3", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "upbeat", + "middle-aged" + ], + "order": 21, + "name": "Hindi (India)", + "locale": "hi-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zlb1dxrm653n07wrdfw3-hi-in.mp3", + "approxDurationCoeficient": 13 + }, + { + "character": "Daniel", + "voice": "onwK4e9ZLuTAKqWW03F9", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "middle-aged" + ], + "order": 22, + "name": "Hindi (India)", + "locale": "hi-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-onwk4e9zlutakqww03f9-hi-in.mp3" + }, + { + "character": "Charlie", + "voice": "IKne3meq5aSn9XLyUdCD", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "casual", + "middle-aged" + ], + "order": 23, + "name": "Hindi (India)", + "locale": "hi-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-ikne3meq5asn9xlyudcd-hi-in.mp3" + }, + { + "character": "James", + "voice": "ZQe5CZNOzWyzPSCn5a3c", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "old" + ], + "order": 24, + "name": "Hindi (India)", + "locale": "hi-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zqe5cznozwyzpscn5a3c-hi-in.mp3" + }, + { + "character": "Fin", + "voice": "D38z5RcWu1voky8WS1ja", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "sailor", + "old" + ], + "order": 25, + "name": "Hindi (India)", + "locale": "hi-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-d38z5rcwu1voky8ws1ja-hi-in.mp3" + }, + { + "character": "Jeremy", + "voice": "bVMeCyTHy58xNoL34h3p", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "excited", + "young" + ], + "order": 26, + "name": "Hindi (India)", + "locale": "hi-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-bvmecythy58xnol34h3p-hi-in.mp3" + }, + { + "character": "Chris", + "voice": "iP95p4xoKVk53GoZ742B", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Hindi (India)", + "locale": "hi-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-ip95p4xokvk53goz742b-hi-in.mp3" + }, + { + "character": "Brian", + "voice": "nPczCjzI2devNBz1zQrb", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Hindi (India)", + "locale": "hi-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-npczcjzi2devnbz1zqrb-hi-in.mp3" + }, + { + "character": "Sam", + "voice": "yoZ06aMxZJJ28mfd3POQ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "fast-paced", + "young" + ], + "order": 99999, + "name": "Hindi (India)", + "locale": "hi-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-yoz06amxzjj28mfd3poq-hi-in.mp3" + }, + { + "character": "Oscar B", + "name": "Hindi-IN", + "voice": "hi-IN-Neural2-B", + "icon": "in", + "voiceProvider": "google", + "locale": "hi-IN", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-hi-in-neural2-b-hi-in.mp3", + "approxDurationCoeficient": 18 + }, + { + "character": "Miles C", + "name": "Hindi-IN", + "voice": "hi-IN-Neural2-C", + "icon": "in", + "voiceProvider": "google", + "locale": "hi-IN", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-hi-in-neural2-c-hi-in.mp3", + "approxDurationCoeficient": 20 + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Swara", + "name": "Hindi (India)", + "locale": "hi-IN", + "voice": "hi-IN-SwaraNeural", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-hi-in-swaraneural-hi-in.mp3", + "approxDurationCoeficient": 13 + }, + { + "character": "Rachel", + "voice": "21m00Tcm4TlvDq8ikWAM", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 1, + "name": "Hindi (India)", + "locale": "hi-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-21m00tcm4tlvdq8ikwam-hi-in.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "Matilda", + "voice": "XrExE9yKIg1WjnnlVkGX", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 3, + "name": "Hindi (India)", + "locale": "hi-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xrexe9ykig1wjnnlvkgx-hi-in.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Grace", + "voice": "oWAxZDx7w5VEj9dCyTzz", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "southern-accent", + "young" + ], + "order": 4, + "name": "Hindi (India)", + "locale": "hi-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-owaxzdx7w5vej9dcytzz-hi-in.mp3" + }, + { + "character": "Domi", + "voice": "AZnzlk1XvdvUeBnXmlld", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "upbeat", + "young" + ], + "order": 5, + "name": "Hindi (India)", + "locale": "hi-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-aznzlk1xvdvuebnxmlld-hi-in.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Gigi", + "voice": "jBpfuIE2acCO8z3wKNLl", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "childish", + "young" + ], + "order": 6, + "name": "Hindi (India)", + "locale": "hi-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-jbpfuie2acco8z3wknll-hi-in.mp3", + "approxDurationCoeficient": 7 + }, + { + "character": "Serena", + "voice": "pMsXgVXv3BLzUgSXRplE", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "order": 7, + "name": "Hindi (India)", + "locale": "hi-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pmsxgvxv3blzugsxrple-hi-in.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Glinda", + "voice": "z9fAnlkpzviPz146aGWa", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "strong", + "middle-aged" + ], + "order": 8, + "name": "Hindi (India)", + "locale": "hi-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-z9fanlkpzvipz146agwa-hi-in.mp3" + }, + { + "character": "Mimi", + "voice": "zrHiDhphv9ZnVXBqCLjz", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "childish", + "young" + ], + "order": 9, + "name": "Hindi (India)", + "locale": "hi-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zrhidhphv9znvxbqcljz-hi-in.mp3" + }, + { + "character": "Emily", + "voice": "LcfcDJNUP1GQjkzn1xUU", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "order": 10, + "name": "Hindi (India)", + "locale": "hi-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-lcfcdjnup1gqjkzn1xuu-hi-in.mp3" + }, + { + "character": "Lily", + "voice": "pFZP5JQG7iQjIQuC4Bku", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "raspy", + "middle-aged" + ], + "order": 11, + "name": "Hindi (India)", + "locale": "hi-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pfzp5jqg7iqjiquc4bku-hi-in.mp3" + }, + { + "character": "Charlotte", + "voice": "XB0fDUnXU5powFXDhCwa", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "swedish-accent", + "young" + ], + "order": 12, + "name": "Hindi (India)", + "locale": "hi-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xb0fdunxu5powfxdhcwa-hi-in.mp3" + }, + { + "character": "Dorothy", + "voice": "ThT5KcBeYPX3keUQqHPh", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 13, + "name": "Hindi (India)", + "locale": "hi-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-tht5kcbeypx3keuqqhph-hi-in.mp3" + }, + { + "character": "Sarah", + "voice": "EXAVITQu4vr4xnSDxMaL", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 99999, + "name": "Hindi (India)", + "locale": "hi-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-exavitqu4vr4xnsdxmal-hi-in.mp3", + "approxDurationCoeficient": 12 + }, + { + "character": "Alice", + "voice": "Xb7hH8MSUJpSbSDYk0k2", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Hindi (India)", + "locale": "hi-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xb7hh8msujpsbsdyk0k2-hi-in.mp3", + "approxDurationCoeficient": 10 + }, + { + "character": "Elanor A", + "name": "Hindi-IN", + "voice": "hi-IN-Neural2-A", + "icon": "in", + "voiceProvider": "google", + "locale": "hi-IN", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-hi-in-neural2-a-hi-in.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Lucy D", + "name": "Hindi-IN", + "voice": "hi-IN-Neural2-D", + "icon": "in", + "voiceProvider": "google", + "locale": "hi-IN", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-hi-in-neural2-d-hi-in.mp3", + "approxDurationCoeficient": 14 + } + ] + }, + { + "name": "Hungarian", + "male": [ + { + "voiceProvider": "azure", + "character": "Tamas", + "name": "Hungarian (Hungary)", + "locale": "hu-HU", + "voice": "hu-HU-TamasNeural", + "icon": "hu", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-hu-hu-tamasneural-hu-hu.mp3", + "approxDurationCoeficient": 17 + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Noemi", + "name": "Hungarian (Hungary)", + "locale": "hu-HU", + "voice": "hu-HU-NoemiNeural", + "icon": "hu", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-hu-hu-noemineural-hu-hu.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Elanor A", + "name": "Hungarian-HU", + "voice": "hu-HU-Wavenet-A", + "icon": "hu", + "voiceProvider": "google", + "locale": "hu-HU", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-hu-hu-wavenet-a-hu-hu.mp3", + "approxDurationCoeficient": 16 + } + ] + }, + { + "name": "Icelandic", + "male": [ + { + "voiceProvider": "azure", + "character": "Gunnar", + "name": "Icelandic (Iceland)", + "locale": "is-IS", + "voice": "is-IS-GunnarNeural", + "icon": "is", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-is-is-gunnarneural-is-is.mp3", + "approxDurationCoeficient": 18 + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Gudrun", + "name": "Icelandic (Iceland)", + "locale": "is-IS", + "voice": "is-IS-GudrunNeural", + "icon": "is", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-is-is-gudrunneural-is-is.mp3", + "approxDurationCoeficient": 15 + } + ] + }, + { + "name": "Indonesian", + "male": [ + { + "voiceProvider": "azure", + "character": "Ardi", + "name": "Indonesian (Indonesia)", + "locale": "id-ID", + "voice": "id-ID-ArdiNeural", + "icon": "id", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-id-id-ardineural-id-id.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Antoni", + "voice": "ErXwobaYiN019PkySvjV", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "well-rounded", + "calm" + ], + "order": 1, + "name": "Indonesian (Indonesia)", + "locale": "id-ID", + "icon": "id", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-erxwobayin019pkysvjv-id-id.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Josh", + "voice": "TxGEqnHWrfWFTfGW9XjX", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "young" + ], + "order": 2, + "name": "Indonesian (Indonesia)", + "locale": "id-ID", + "icon": "id", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-txgeqnhwrfwftfgw9xjx-id-id.mp3", + "approxDurationCoeficient": 7 + }, + { + "character": "Arnold", + "voice": "VR6AewLTigWG4xSOukaG", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "crisp", + "middle-aged" + ], + "order": 3, + "name": "Indonesian (Indonesia)", + "locale": "id-ID", + "icon": "id", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-vr6aewltigwg4xsoukag-id-id.mp3" + }, + { + "character": "Adam", + "voice": "pNInz6obpgDQGcFmaJgB", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "middle-aged" + ], + "order": 4, + "name": "Indonesian (Indonesia)", + "locale": "id-ID", + "icon": "id", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pninz6obpgdqgcfmajgb-id-id.mp3" + }, + { + "character": "Bill", + "voice": "pqHfZKP75CvOlQylNhV4", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "strong", + "middle-aged" + ], + "order": 5, + "name": "Indonesian (Indonesia)", + "locale": "id-ID", + "icon": "id", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pqhfzkp75cvolqylnhv4-id-id.mp3" + }, + { + "character": "Jessie", + "voice": "t0jbNlBVZ17f02VDIeMI", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "fast-paced", + "old" + ], + "order": 6, + "name": "Indonesian (Indonesia)", + "locale": "id-ID", + "icon": "id", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-t0jbnlbvz17f02vdiemi-id-id.mp3" + }, + { + "character": "Michael", + "voice": "flq6f7yk4E4fJM5XTYuZ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "orutund", + "old" + ], + "order": 7, + "name": "Indonesian (Indonesia)", + "locale": "id-ID", + "icon": "id", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-flq6f7yk4e4fjm5xtyuz-id-id.mp3" + }, + { + "character": "Liam", + "voice": "TX3LPaxmHKxFdv7VOQHJ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "neutral", + "young" + ], + "order": 8, + "name": "Indonesian (Indonesia)", + "locale": "id-ID", + "icon": "id", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-tx3lpaxmhkxfdv7voqhj-id-id.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Harry", + "voice": "SOYHLrjzK2X1ezoPC6cr", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "anxious", + "young" + ], + "order": 9, + "name": "Indonesian (Indonesia)", + "locale": "id-ID", + "icon": "id", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-soyhlrjzk2x1ezopc6cr-id-id.mp3" + }, + { + "character": "Patrick", + "voice": "ODq5zmih8GrVes37Dizd", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "shouty", + "middle-aged" + ], + "order": 10, + "name": "Indonesian (Indonesia)", + "locale": "id-ID", + "icon": "id", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-odq5zmih8grves37dizd-id-id.mp3" + }, + { + "character": "Thomas", + "voice": "GBv7mTt0atIp3Br8iCZE", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 11, + "name": "Indonesian (Indonesia)", + "locale": "id-ID", + "icon": "id", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-gbv7mtt0atip3br8icze-id-id.mp3" + }, + { + "character": "Drew", + "voice": "29vD33N1CtxCmqQRPOHJ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "well-rounded", + "middle-aged" + ], + "order": 12, + "name": "Indonesian (Indonesia)", + "locale": "id-ID", + "icon": "id", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-29vd33n1ctxcmqqrpohj-id-id.mp3" + }, + { + "character": "Paul", + "voice": "5Q0t7uMcjvnagumLfvZi", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "narration", + "middle-aged" + ], + "order": 13, + "name": "Indonesian (Indonesia)", + "locale": "id-ID", + "icon": "id", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-5q0t7umcjvnagumlfvzi-id-id.mp3" + }, + { + "character": "Callum", + "voice": "N2lVS1w4EtoT3dr4eOWO", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "masculine", + "middle-aged" + ], + "order": 14, + "name": "Indonesian (Indonesia)", + "locale": "id-ID", + "icon": "id", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-n2lvs1w4etot3dr4eowo-id-id.mp3" + }, + { + "character": "Giovanni", + "voice": "zcAOhNBS3c14rBihAFp1", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "italian-accent", + "young" + ], + "order": 15, + "name": "Indonesian (Indonesia)", + "locale": "id-ID", + "icon": "id", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zcaohnbs3c14rbihafp1-id-id.mp3" + }, + { + "character": "Clyde", + "voice": "2EiwWnXFnvU5JabPnv8n", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "masculine", + "middle-aged" + ], + "order": 17, + "name": "Indonesian (Indonesia)", + "locale": "id-ID", + "icon": "id", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-2eiwwnxfnvu5jabpnv8n-id-id.mp3" + }, + { + "character": "George", + "voice": "JBFqnCBsd6RMkjVDRZzb", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "raspy", + "narration" + ], + "order": 19, + "name": "Indonesian (Indonesia)", + "locale": "id-ID", + "icon": "id", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-jbfqncbsd6rmkjvdrzzb-id-id.mp3" + }, + { + "character": "Dave", + "voice": "CYw3kZ02Hs0563khs1Fj", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "essex-accent", + "young" + ], + "order": 20, + "name": "Indonesian (Indonesia)", + "locale": "id-ID", + "icon": "id", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-cyw3kz02hs0563khs1fj-id-id.mp3" + }, + { + "character": "Joseph", + "voice": "Zlb1dXrM653N07WRdFW3", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "upbeat", + "middle-aged" + ], + "order": 21, + "name": "Indonesian (Indonesia)", + "locale": "id-ID", + "icon": "id", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zlb1dxrm653n07wrdfw3-id-id.mp3" + }, + { + "character": "Daniel", + "voice": "onwK4e9ZLuTAKqWW03F9", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "middle-aged" + ], + "order": 22, + "name": "Indonesian (Indonesia)", + "locale": "id-ID", + "icon": "id", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-onwk4e9zlutakqww03f9-id-id.mp3" + }, + { + "character": "Charlie", + "voice": "IKne3meq5aSn9XLyUdCD", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "casual", + "middle-aged" + ], + "order": 23, + "name": "Indonesian (Indonesia)", + "locale": "id-ID", + "icon": "id", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-ikne3meq5asn9xlyudcd-id-id.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "James", + "voice": "ZQe5CZNOzWyzPSCn5a3c", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "old" + ], + "order": 24, + "name": "Indonesian (Indonesia)", + "locale": "id-ID", + "icon": "id", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zqe5cznozwyzpscn5a3c-id-id.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Fin", + "voice": "D38z5RcWu1voky8WS1ja", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "sailor", + "old" + ], + "order": 25, + "name": "Indonesian (Indonesia)", + "locale": "id-ID", + "icon": "id", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-d38z5rcwu1voky8ws1ja-id-id.mp3" + }, + { + "character": "Jeremy", + "voice": "bVMeCyTHy58xNoL34h3p", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "excited", + "young" + ], + "order": 26, + "name": "Indonesian (Indonesia)", + "locale": "id-ID", + "icon": "id", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-bvmecythy58xnol34h3p-id-id.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Chris", + "voice": "iP95p4xoKVk53GoZ742B", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Indonesian (Indonesia)", + "locale": "id-ID", + "icon": "id", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-ip95p4xokvk53goz742b-id-id.mp3" + }, + { + "character": "Brian", + "voice": "nPczCjzI2devNBz1zQrb", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Indonesian (Indonesia)", + "locale": "id-ID", + "icon": "id", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-npczcjzi2devnbz1zqrb-id-id.mp3" + }, + { + "character": "Sam", + "voice": "yoZ06aMxZJJ28mfd3POQ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "fast-paced", + "young" + ], + "order": 99999, + "name": "Indonesian (Indonesia)", + "locale": "id-ID", + "icon": "id", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-yoz06amxzjj28mfd3poq-id-id.mp3" + }, + { + "character": "Oscar B", + "name": "Indonesian-ID", + "voice": "id-ID-Wavenet-B", + "icon": "id", + "voiceProvider": "google", + "locale": "id-ID", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-id-id-wavenet-b-id-id.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Miles C", + "name": "Indonesian-ID", + "voice": "id-ID-Wavenet-C", + "icon": "id", + "voiceProvider": "google", + "locale": "id-ID", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-id-id-wavenet-c-id-id.mp3", + "approxDurationCoeficient": 18 + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Gadis", + "name": "Indonesian (Indonesia)", + "locale": "id-ID", + "voice": "id-ID-GadisNeural", + "icon": "id", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-id-id-gadisneural-id-id.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Rachel", + "voice": "21m00Tcm4TlvDq8ikWAM", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 1, + "name": "Indonesian (Indonesia)", + "locale": "id-ID", + "icon": "id", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-21m00tcm4tlvdq8ikwam-id-id.mp3" + }, + { + "character": "Matilda", + "voice": "XrExE9yKIg1WjnnlVkGX", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 3, + "name": "Indonesian (Indonesia)", + "locale": "id-ID", + "icon": "id", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xrexe9ykig1wjnnlvkgx-id-id.mp3" + }, + { + "character": "Grace", + "voice": "oWAxZDx7w5VEj9dCyTzz", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "southern-accent", + "young" + ], + "order": 4, + "name": "Indonesian (Indonesia)", + "locale": "id-ID", + "icon": "id", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-owaxzdx7w5vej9dcytzz-id-id.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Domi", + "voice": "AZnzlk1XvdvUeBnXmlld", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "upbeat", + "young" + ], + "order": 5, + "name": "Indonesian (Indonesia)", + "locale": "id-ID", + "icon": "id", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-aznzlk1xvdvuebnxmlld-id-id.mp3" + }, + { + "character": "Gigi", + "voice": "jBpfuIE2acCO8z3wKNLl", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "childish", + "young" + ], + "order": 6, + "name": "Indonesian (Indonesia)", + "locale": "id-ID", + "icon": "id", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-jbpfuie2acco8z3wknll-id-id.mp3" + }, + { + "character": "Serena", + "voice": "pMsXgVXv3BLzUgSXRplE", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "order": 7, + "name": "Indonesian (Indonesia)", + "locale": "id-ID", + "icon": "id", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pmsxgvxv3blzugsxrple-id-id.mp3", + "approxDurationCoeficient": 13 + }, + { + "character": "Glinda", + "voice": "z9fAnlkpzviPz146aGWa", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "strong", + "middle-aged" + ], + "order": 8, + "name": "Indonesian (Indonesia)", + "locale": "id-ID", + "icon": "id", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-z9fanlkpzvipz146agwa-id-id.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Mimi", + "voice": "zrHiDhphv9ZnVXBqCLjz", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "childish", + "young" + ], + "order": 9, + "name": "Indonesian (Indonesia)", + "locale": "id-ID", + "icon": "id", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zrhidhphv9znvxbqcljz-id-id.mp3" + }, + { + "character": "Emily", + "voice": "LcfcDJNUP1GQjkzn1xUU", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "order": 10, + "name": "Indonesian (Indonesia)", + "locale": "id-ID", + "icon": "id", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-lcfcdjnup1gqjkzn1xuu-id-id.mp3" + }, + { + "character": "Lily", + "voice": "pFZP5JQG7iQjIQuC4Bku", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "raspy", + "middle-aged" + ], + "order": 11, + "name": "Indonesian (Indonesia)", + "locale": "id-ID", + "icon": "id", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pfzp5jqg7iqjiquc4bku-id-id.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Charlotte", + "voice": "XB0fDUnXU5powFXDhCwa", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "swedish-accent", + "young" + ], + "order": 12, + "name": "Indonesian (Indonesia)", + "locale": "id-ID", + "icon": "id", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xb0fdunxu5powfxdhcwa-id-id.mp3" + }, + { + "character": "Dorothy", + "voice": "ThT5KcBeYPX3keUQqHPh", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 13, + "name": "Indonesian (Indonesia)", + "locale": "id-ID", + "icon": "id", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-tht5kcbeypx3keuqqhph-id-id.mp3" + }, + { + "character": "Sarah", + "voice": "EXAVITQu4vr4xnSDxMaL", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 99999, + "name": "Indonesian (Indonesia)", + "locale": "id-ID", + "icon": "id", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-exavitqu4vr4xnsdxmal-id-id.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Alice", + "voice": "Xb7hH8MSUJpSbSDYk0k2", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Indonesian (Indonesia)", + "locale": "id-ID", + "icon": "id", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xb7hh8msujpsbsdyk0k2-id-id.mp3" + }, + { + "character": "Elanor A", + "name": "Indonesian-ID", + "voice": "id-ID-Wavenet-A", + "icon": "id", + "voiceProvider": "google", + "locale": "id-ID", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-id-id-wavenet-a-id-id.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "Lucy D", + "name": "Indonesian-ID", + "voice": "id-ID-Wavenet-D", + "icon": "id", + "voiceProvider": "google", + "locale": "id-ID", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-id-id-wavenet-d-id-id.mp3", + "approxDurationCoeficient": 15 + } + ] + }, + { + "name": "Irish", + "male": [ + { + "voiceProvider": "azure", + "character": "Colm", + "name": "Irish (Ireland)", + "locale": "ga-IE", + "voice": "ga-IE-ColmNeural", + "icon": "ie", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ga-ie-colmneural-ga-ie.mp3", + "approxDurationCoeficient": 17 + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Orla", + "name": "Irish (Ireland)", + "locale": "ga-IE", + "voice": "ga-IE-OrlaNeural", + "icon": "ie", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ga-ie-orlaneural-ga-ie.mp3", + "approxDurationCoeficient": 16 + } + ] + }, + { + "name": "Italian", + "male": [ + { + "voiceProvider": "azure", + "character": "Diego", + "name": "Italian (Italy)", + "locale": "it-IT", + "voice": "it-IT-DiegoNeural", + "icon": "it", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-it-it-diegoneural-it-it.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "Antoni", + "voice": "ErXwobaYiN019PkySvjV", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "well-rounded", + "calm" + ], + "order": 1, + "name": "Italian (Italy)", + "locale": "it-IT", + "icon": "it", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-erxwobayin019pkysvjv-it-it.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Josh", + "voice": "TxGEqnHWrfWFTfGW9XjX", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "young" + ], + "order": 2, + "name": "Italian (Italy)", + "locale": "it-IT", + "icon": "it", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-txgeqnhwrfwftfgw9xjx-it-it.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Arnold", + "voice": "VR6AewLTigWG4xSOukaG", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "crisp", + "middle-aged" + ], + "order": 3, + "name": "Italian (Italy)", + "locale": "it-IT", + "icon": "it", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-vr6aewltigwg4xsoukag-it-it.mp3" + }, + { + "character": "Adam", + "voice": "pNInz6obpgDQGcFmaJgB", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "middle-aged" + ], + "order": 4, + "name": "Italian (Italy)", + "locale": "it-IT", + "icon": "it", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pninz6obpgdqgcfmajgb-it-it.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Bill", + "voice": "pqHfZKP75CvOlQylNhV4", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "strong", + "middle-aged" + ], + "order": 5, + "name": "Italian (Italy)", + "locale": "it-IT", + "icon": "it", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pqhfzkp75cvolqylnhv4-it-it.mp3" + }, + { + "character": "Jessie", + "voice": "t0jbNlBVZ17f02VDIeMI", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "fast-paced", + "old" + ], + "order": 6, + "name": "Italian (Italy)", + "locale": "it-IT", + "icon": "it", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-t0jbnlbvz17f02vdiemi-it-it.mp3" + }, + { + "character": "Michael", + "voice": "flq6f7yk4E4fJM5XTYuZ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "orutund", + "old" + ], + "order": 7, + "name": "Italian (Italy)", + "locale": "it-IT", + "icon": "it", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-flq6f7yk4e4fjm5xtyuz-it-it.mp3" + }, + { + "character": "Liam", + "voice": "TX3LPaxmHKxFdv7VOQHJ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "neutral", + "young" + ], + "order": 8, + "name": "Italian (Italy)", + "locale": "it-IT", + "icon": "it", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-tx3lpaxmhkxfdv7voqhj-it-it.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Harry", + "voice": "SOYHLrjzK2X1ezoPC6cr", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "anxious", + "young" + ], + "order": 9, + "name": "Italian (Italy)", + "locale": "it-IT", + "icon": "it", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-soyhlrjzk2x1ezopc6cr-it-it.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Patrick", + "voice": "ODq5zmih8GrVes37Dizd", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "shouty", + "middle-aged" + ], + "order": 10, + "name": "Italian (Italy)", + "locale": "it-IT", + "icon": "it", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-odq5zmih8grves37dizd-it-it.mp3" + }, + { + "character": "Thomas", + "voice": "GBv7mTt0atIp3Br8iCZE", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 11, + "name": "Italian (Italy)", + "locale": "it-IT", + "icon": "it", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-gbv7mtt0atip3br8icze-it-it.mp3" + }, + { + "character": "Drew", + "voice": "29vD33N1CtxCmqQRPOHJ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "well-rounded", + "middle-aged" + ], + "order": 12, + "name": "Italian (Italy)", + "locale": "it-IT", + "icon": "it", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-29vd33n1ctxcmqqrpohj-it-it.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Paul", + "voice": "5Q0t7uMcjvnagumLfvZi", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "narration", + "middle-aged" + ], + "order": 13, + "name": "Italian (Italy)", + "locale": "it-IT", + "icon": "it", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-5q0t7umcjvnagumlfvzi-it-it.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Callum", + "voice": "N2lVS1w4EtoT3dr4eOWO", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "masculine", + "middle-aged" + ], + "order": 14, + "name": "Italian (Italy)", + "locale": "it-IT", + "icon": "it", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-n2lvs1w4etot3dr4eowo-it-it.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Giovanni", + "voice": "zcAOhNBS3c14rBihAFp1", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "italian-accent", + "young" + ], + "order": 15, + "name": "Italian (Italy)", + "locale": "it-IT", + "icon": "it", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zcaohnbs3c14rbihafp1-it-it.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Clyde", + "voice": "2EiwWnXFnvU5JabPnv8n", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "masculine", + "middle-aged" + ], + "order": 17, + "name": "Italian (Italy)", + "locale": "it-IT", + "icon": "it", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-2eiwwnxfnvu5jabpnv8n-it-it.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "George", + "voice": "JBFqnCBsd6RMkjVDRZzb", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "raspy", + "narration" + ], + "order": 19, + "name": "Italian (Italy)", + "locale": "it-IT", + "icon": "it", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-jbfqncbsd6rmkjvdrzzb-it-it.mp3" + }, + { + "character": "Dave", + "voice": "CYw3kZ02Hs0563khs1Fj", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "essex-accent", + "young" + ], + "order": 20, + "name": "Italian (Italy)", + "locale": "it-IT", + "icon": "it", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-cyw3kz02hs0563khs1fj-it-it.mp3" + }, + { + "character": "Joseph", + "voice": "Zlb1dXrM653N07WRdFW3", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "upbeat", + "middle-aged" + ], + "order": 21, + "name": "Italian (Italy)", + "locale": "it-IT", + "icon": "it", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zlb1dxrm653n07wrdfw3-it-it.mp3" + }, + { + "character": "Daniel", + "voice": "onwK4e9ZLuTAKqWW03F9", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "middle-aged" + ], + "order": 22, + "name": "Italian (Italy)", + "locale": "it-IT", + "icon": "it", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-onwk4e9zlutakqww03f9-it-it.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "Charlie", + "voice": "IKne3meq5aSn9XLyUdCD", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "casual", + "middle-aged" + ], + "order": 23, + "name": "Italian (Italy)", + "locale": "it-IT", + "icon": "it", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-ikne3meq5asn9xlyudcd-it-it.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "James", + "voice": "ZQe5CZNOzWyzPSCn5a3c", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "old" + ], + "order": 24, + "name": "Italian (Italy)", + "locale": "it-IT", + "icon": "it", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zqe5cznozwyzpscn5a3c-it-it.mp3", + "approxDurationCoeficient": 22 + }, + { + "character": "Fin", + "voice": "D38z5RcWu1voky8WS1ja", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "sailor", + "old" + ], + "order": 25, + "name": "Italian (Italy)", + "locale": "it-IT", + "icon": "it", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-d38z5rcwu1voky8ws1ja-it-it.mp3", + "approxDurationCoeficient": 11 + }, + { + "character": "Jeremy", + "voice": "bVMeCyTHy58xNoL34h3p", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "excited", + "young" + ], + "order": 26, + "name": "Italian (Italy)", + "locale": "it-IT", + "icon": "it", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-bvmecythy58xnol34h3p-it-it.mp3", + "approxDurationCoeficient": 13 + }, + { + "character": "Chris", + "voice": "iP95p4xoKVk53GoZ742B", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Italian (Italy)", + "locale": "it-IT", + "icon": "it", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-ip95p4xokvk53goz742b-it-it.mp3", + "approxDurationCoeficient": 18 + }, + { + "character": "Brian", + "voice": "nPczCjzI2devNBz1zQrb", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Italian (Italy)", + "locale": "it-IT", + "icon": "it", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-npczcjzi2devnbz1zqrb-it-it.mp3" + }, + { + "character": "Sam", + "voice": "yoZ06aMxZJJ28mfd3POQ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "fast-paced", + "young" + ], + "order": 99999, + "name": "Italian (Italy)", + "locale": "it-IT", + "icon": "it", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-yoz06amxzjj28mfd3poq-it-it.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Benigno", + "name": "Italian (Italy)", + "locale": "it-IT", + "voice": "it-IT-BenignoNeural", + "icon": "it", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-it-it-benignoneural-it-it.mp3", + "approxDurationCoeficient": 19 + }, + { + "voiceProvider": "azure", + "character": "Calimero", + "name": "Italian (Italy)", + "locale": "it-IT", + "voice": "it-IT-CalimeroNeural", + "icon": "it", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-it-it-calimeroneural-it-it.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Cataldo", + "name": "Italian (Italy)", + "locale": "it-IT", + "voice": "it-IT-CataldoNeural", + "icon": "it", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-it-it-cataldoneural-it-it.mp3", + "approxDurationCoeficient": 19 + }, + { + "voiceProvider": "azure", + "character": "Gianni", + "name": "Italian (Italy)", + "locale": "it-IT", + "voice": "it-IT-GianniNeural", + "icon": "it", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-it-it-giannineural-it-it.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Giuseppe", + "name": "Italian (Italy)", + "locale": "it-IT", + "voice": "it-IT-GiuseppeNeural", + "icon": "it", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-it-it-giuseppeneural-it-it.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Lisandro", + "name": "Italian (Italy)", + "locale": "it-IT", + "voice": "it-IT-LisandroNeural", + "icon": "it", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-it-it-lisandroneural-it-it.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Rinaldo", + "name": "Italian (Italy)", + "locale": "it-IT", + "voice": "it-IT-RinaldoNeural", + "icon": "it", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-it-it-rinaldoneural-it-it.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Oscar C", + "name": "Italian-IT", + "voice": "it-IT-Neural2-C", + "icon": "it", + "voiceProvider": "google", + "locale": "it-IT", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-it-it-neural2-c-it-it.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Miles D", + "name": "Italian-IT", + "voice": "it-IT-Wavenet-D", + "icon": "it", + "voiceProvider": "google", + "locale": "it-IT", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-it-it-wavenet-d-it-it.mp3", + "approxDurationCoeficient": 18 + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Elsa", + "name": "Italian (Italy)", + "locale": "it-IT", + "voice": "it-IT-ElsaNeural", + "icon": "it", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-it-it-elsaneural-it-it.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Rachel", + "voice": "21m00Tcm4TlvDq8ikWAM", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 1, + "name": "Italian (Italy)", + "locale": "it-IT", + "icon": "it", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-21m00tcm4tlvdq8ikwam-it-it.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Matilda", + "voice": "XrExE9yKIg1WjnnlVkGX", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 3, + "name": "Italian (Italy)", + "locale": "it-IT", + "icon": "it", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xrexe9ykig1wjnnlvkgx-it-it.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Grace", + "voice": "oWAxZDx7w5VEj9dCyTzz", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "southern-accent", + "young" + ], + "order": 4, + "name": "Italian (Italy)", + "locale": "it-IT", + "icon": "it", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-owaxzdx7w5vej9dcytzz-it-it.mp3", + "approxDurationCoeficient": 13 + }, + { + "character": "Domi", + "voice": "AZnzlk1XvdvUeBnXmlld", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "upbeat", + "young" + ], + "order": 5, + "name": "Italian (Italy)", + "locale": "it-IT", + "icon": "it", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-aznzlk1xvdvuebnxmlld-it-it.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Gigi", + "voice": "jBpfuIE2acCO8z3wKNLl", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "childish", + "young" + ], + "order": 6, + "name": "Italian (Italy)", + "locale": "it-IT", + "icon": "it", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-jbpfuie2acco8z3wknll-it-it.mp3", + "approxDurationCoeficient": 18 + }, + { + "character": "Serena", + "voice": "pMsXgVXv3BLzUgSXRplE", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "order": 7, + "name": "Italian (Italy)", + "locale": "it-IT", + "icon": "it", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pmsxgvxv3blzugsxrple-it-it.mp3", + "approxDurationCoeficient": 12 + }, + { + "character": "Glinda", + "voice": "z9fAnlkpzviPz146aGWa", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "strong", + "middle-aged" + ], + "order": 8, + "name": "Italian (Italy)", + "locale": "it-IT", + "icon": "it", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-z9fanlkpzvipz146agwa-it-it.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "Mimi", + "voice": "zrHiDhphv9ZnVXBqCLjz", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "childish", + "young" + ], + "order": 9, + "name": "Italian (Italy)", + "locale": "it-IT", + "icon": "it", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zrhidhphv9znvxbqcljz-it-it.mp3", + "approxDurationCoeficient": 12 + }, + { + "character": "Emily", + "voice": "LcfcDJNUP1GQjkzn1xUU", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "order": 10, + "name": "Italian (Italy)", + "locale": "it-IT", + "icon": "it", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-lcfcdjnup1gqjkzn1xuu-it-it.mp3", + "approxDurationCoeficient": 12 + }, + { + "character": "Lily", + "voice": "pFZP5JQG7iQjIQuC4Bku", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "raspy", + "middle-aged" + ], + "order": 11, + "name": "Italian (Italy)", + "locale": "it-IT", + "icon": "it", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pfzp5jqg7iqjiquc4bku-it-it.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "Charlotte", + "voice": "XB0fDUnXU5powFXDhCwa", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "swedish-accent", + "young" + ], + "order": 12, + "name": "Italian (Italy)", + "locale": "it-IT", + "icon": "it", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xb0fdunxu5powfxdhcwa-it-it.mp3", + "approxDurationCoeficient": 9 + }, + { + "character": "Dorothy", + "voice": "ThT5KcBeYPX3keUQqHPh", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 13, + "name": "Italian (Italy)", + "locale": "it-IT", + "icon": "it", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-tht5kcbeypx3keuqqhph-it-it.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Sarah", + "voice": "EXAVITQu4vr4xnSDxMaL", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 99999, + "name": "Italian (Italy)", + "locale": "it-IT", + "icon": "it", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-exavitqu4vr4xnsdxmal-it-it.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Alice", + "voice": "Xb7hH8MSUJpSbSDYk0k2", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Italian (Italy)", + "locale": "it-IT", + "icon": "it", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xb7hh8msujpsbsdyk0k2-it-it.mp3", + "approxDurationCoeficient": 16 + }, + { + "voiceProvider": "azure", + "character": "Isabella", + "name": "Italian (Italy)", + "locale": "it-IT", + "voice": "it-IT-IsabellaNeural", + "icon": "it", + "styleList": [ + "cheerful", + "chat" + ], + "stylePreview": { + "cheerful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-it-it-isabellaneural:cheerful-it-it.mp3", + "chat": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-it-it-isabellaneural:chat-it-it.mp3" + }, + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-it-it-isabellaneural-it-it.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Fabiola", + "name": "Italian (Italy)", + "locale": "it-IT", + "voice": "it-IT-FabiolaNeural", + "icon": "it", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-it-it-fabiolaneural-it-it.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Fiamma", + "name": "Italian (Italy)", + "locale": "it-IT", + "voice": "it-IT-FiammaNeural", + "icon": "it", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-it-it-fiammaneural-it-it.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Imelda", + "name": "Italian (Italy)", + "locale": "it-IT", + "voice": "it-IT-ImeldaNeural", + "icon": "it", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-it-it-imeldaneural-it-it.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Irma", + "name": "Italian (Italy)", + "locale": "it-IT", + "voice": "it-IT-IrmaNeural", + "icon": "it", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-it-it-irmaneural-it-it.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Palmira", + "name": "Italian (Italy)", + "locale": "it-IT", + "voice": "it-IT-PalmiraNeural", + "icon": "it", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-it-it-palmiraneural-it-it.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Pierina", + "name": "Italian (Italy)", + "locale": "it-IT", + "voice": "it-IT-PierinaNeural", + "icon": "it", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-it-it-pierinaneural-it-it.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Elanor A", + "name": "Italian-IT", + "voice": "it-IT-Neural2-A", + "icon": "it", + "voiceProvider": "google", + "locale": "it-IT", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-it-it-neural2-a-it-it.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Lucy B", + "name": "Italian-IT", + "voice": "it-IT-Wavenet-B", + "icon": "it", + "voiceProvider": "google", + "locale": "it-IT", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-it-it-wavenet-b-it-it.mp3", + "approxDurationCoeficient": 16 + } + ] + }, + { + "name": "Japanese", + "male": [ + { + "voiceProvider": "azure", + "character": "Keita", + "name": "Japanese (Japan)", + "locale": "ja-JP", + "voice": "ja-JP-KeitaNeural", + "icon": "jp", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ja-jp-keitaneural-ja-jp.mp3", + "approxDurationCoeficient": 7 + }, + { + "character": "Antoni", + "voice": "ErXwobaYiN019PkySvjV", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "well-rounded", + "calm" + ], + "order": 1, + "name": "Japanese (Japan)", + "locale": "ja-JP", + "icon": "jp", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-erxwobayin019pkysvjv-ja-jp.mp3", + "approxDurationCoeficient": 7 + }, + { + "character": "Josh", + "voice": "TxGEqnHWrfWFTfGW9XjX", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "young" + ], + "order": 2, + "name": "Japanese (Japan)", + "locale": "ja-JP", + "icon": "jp", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-txgeqnhwrfwftfgw9xjx-ja-jp.mp3" + }, + { + "character": "Arnold", + "voice": "VR6AewLTigWG4xSOukaG", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "crisp", + "middle-aged" + ], + "order": 3, + "name": "Japanese (Japan)", + "locale": "ja-JP", + "icon": "jp", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-vr6aewltigwg4xsoukag-ja-jp.mp3" + }, + { + "character": "Adam", + "voice": "pNInz6obpgDQGcFmaJgB", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "middle-aged" + ], + "order": 4, + "name": "Japanese (Japan)", + "locale": "ja-JP", + "icon": "jp", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pninz6obpgdqgcfmajgb-ja-jp.mp3" + }, + { + "character": "Bill", + "voice": "pqHfZKP75CvOlQylNhV4", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "strong", + "middle-aged" + ], + "order": 5, + "name": "Japanese (Japan)", + "locale": "ja-JP", + "icon": "jp", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pqhfzkp75cvolqylnhv4-ja-jp.mp3" + }, + { + "character": "Jessie", + "voice": "t0jbNlBVZ17f02VDIeMI", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "fast-paced", + "old" + ], + "order": 6, + "name": "Japanese (Japan)", + "locale": "ja-JP", + "icon": "jp", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-t0jbnlbvz17f02vdiemi-ja-jp.mp3" + }, + { + "character": "Michael", + "voice": "flq6f7yk4E4fJM5XTYuZ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "orutund", + "old" + ], + "order": 7, + "name": "Japanese (Japan)", + "locale": "ja-JP", + "icon": "jp", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-flq6f7yk4e4fjm5xtyuz-ja-jp.mp3" + }, + { + "character": "Liam", + "voice": "TX3LPaxmHKxFdv7VOQHJ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "neutral", + "young" + ], + "order": 8, + "name": "Japanese (Japan)", + "locale": "ja-JP", + "icon": "jp", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-tx3lpaxmhkxfdv7voqhj-ja-jp.mp3" + }, + { + "character": "Harry", + "voice": "SOYHLrjzK2X1ezoPC6cr", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "anxious", + "young" + ], + "order": 9, + "name": "Japanese (Japan)", + "locale": "ja-JP", + "icon": "jp", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-soyhlrjzk2x1ezopc6cr-ja-jp.mp3" + }, + { + "character": "Patrick", + "voice": "ODq5zmih8GrVes37Dizd", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "shouty", + "middle-aged" + ], + "order": 10, + "name": "Japanese (Japan)", + "locale": "ja-JP", + "icon": "jp", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-odq5zmih8grves37dizd-ja-jp.mp3" + }, + { + "character": "Thomas", + "voice": "GBv7mTt0atIp3Br8iCZE", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 11, + "name": "Japanese (Japan)", + "locale": "ja-JP", + "icon": "jp", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-gbv7mtt0atip3br8icze-ja-jp.mp3", + "approxDurationCoeficient": 4 + }, + { + "character": "Drew", + "voice": "29vD33N1CtxCmqQRPOHJ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "well-rounded", + "middle-aged" + ], + "order": 12, + "name": "Japanese (Japan)", + "locale": "ja-JP", + "icon": "jp", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-29vd33n1ctxcmqqrpohj-ja-jp.mp3" + }, + { + "character": "Paul", + "voice": "5Q0t7uMcjvnagumLfvZi", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "narration", + "middle-aged" + ], + "order": 13, + "name": "Japanese (Japan)", + "locale": "ja-JP", + "icon": "jp", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-5q0t7umcjvnagumlfvzi-ja-jp.mp3" + }, + { + "character": "Callum", + "voice": "N2lVS1w4EtoT3dr4eOWO", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "masculine", + "middle-aged" + ], + "order": 14, + "name": "Japanese (Japan)", + "locale": "ja-JP", + "icon": "jp", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-n2lvs1w4etot3dr4eowo-ja-jp.mp3" + }, + { + "character": "Giovanni", + "voice": "zcAOhNBS3c14rBihAFp1", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "italian-accent", + "young" + ], + "order": 15, + "name": "Japanese (Japan)", + "locale": "ja-JP", + "icon": "jp", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zcaohnbs3c14rbihafp1-ja-jp.mp3" + }, + { + "character": "Clyde", + "voice": "2EiwWnXFnvU5JabPnv8n", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "masculine", + "middle-aged" + ], + "order": 17, + "name": "Japanese (Japan)", + "locale": "ja-JP", + "icon": "jp", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-2eiwwnxfnvu5jabpnv8n-ja-jp.mp3" + }, + { + "character": "George", + "voice": "JBFqnCBsd6RMkjVDRZzb", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "raspy", + "narration" + ], + "order": 19, + "name": "Japanese (Japan)", + "locale": "ja-JP", + "icon": "jp", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-jbfqncbsd6rmkjvdrzzb-ja-jp.mp3" + }, + { + "character": "Dave", + "voice": "CYw3kZ02Hs0563khs1Fj", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "essex-accent", + "young" + ], + "order": 20, + "name": "Japanese (Japan)", + "locale": "ja-JP", + "icon": "jp", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-cyw3kz02hs0563khs1fj-ja-jp.mp3" + }, + { + "character": "Joseph", + "voice": "Zlb1dXrM653N07WRdFW3", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "upbeat", + "middle-aged" + ], + "order": 21, + "name": "Japanese (Japan)", + "locale": "ja-JP", + "icon": "jp", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zlb1dxrm653n07wrdfw3-ja-jp.mp3" + }, + { + "character": "Daniel", + "voice": "onwK4e9ZLuTAKqWW03F9", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "middle-aged" + ], + "order": 22, + "name": "Japanese (Japan)", + "locale": "ja-JP", + "icon": "jp", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-onwk4e9zlutakqww03f9-ja-jp.mp3" + }, + { + "character": "Charlie", + "voice": "IKne3meq5aSn9XLyUdCD", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "casual", + "middle-aged" + ], + "order": 23, + "name": "Japanese (Japan)", + "locale": "ja-JP", + "icon": "jp", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-ikne3meq5asn9xlyudcd-ja-jp.mp3" + }, + { + "character": "James", + "voice": "ZQe5CZNOzWyzPSCn5a3c", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "old" + ], + "order": 24, + "name": "Japanese (Japan)", + "locale": "ja-JP", + "icon": "jp", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zqe5cznozwyzpscn5a3c-ja-jp.mp3" + }, + { + "character": "Fin", + "voice": "D38z5RcWu1voky8WS1ja", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "sailor", + "old" + ], + "order": 25, + "name": "Japanese (Japan)", + "locale": "ja-JP", + "icon": "jp", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-d38z5rcwu1voky8ws1ja-ja-jp.mp3" + }, + { + "character": "Jeremy", + "voice": "bVMeCyTHy58xNoL34h3p", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "excited", + "young" + ], + "order": 26, + "name": "Japanese (Japan)", + "locale": "ja-JP", + "icon": "jp", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-bvmecythy58xnol34h3p-ja-jp.mp3", + "approxDurationCoeficient": 6 + }, + { + "character": "Chris", + "voice": "iP95p4xoKVk53GoZ742B", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Japanese (Japan)", + "locale": "ja-JP", + "icon": "jp", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-ip95p4xokvk53goz742b-ja-jp.mp3" + }, + { + "character": "Brian", + "voice": "nPczCjzI2devNBz1zQrb", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Japanese (Japan)", + "locale": "ja-JP", + "icon": "jp", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-npczcjzi2devnbz1zqrb-ja-jp.mp3" + }, + { + "character": "Sam", + "voice": "yoZ06aMxZJJ28mfd3POQ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "fast-paced", + "young" + ], + "order": 99999, + "name": "Japanese (Japan)", + "locale": "ja-JP", + "icon": "jp", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-yoz06amxzjj28mfd3poq-ja-jp.mp3" + }, + { + "voiceProvider": "azure", + "character": "Daichi", + "name": "Japanese (Japan)", + "locale": "ja-JP", + "voice": "ja-JP-DaichiNeural", + "icon": "jp", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ja-jp-daichineural-ja-jp.mp3" + }, + { + "voiceProvider": "azure", + "character": "Naoki", + "name": "Japanese (Japan)", + "locale": "ja-JP", + "voice": "ja-JP-NaokiNeural", + "icon": "jp", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ja-jp-naokineural-ja-jp.mp3", + "approxDurationCoeficient": 8 + }, + { + "character": "Oscar C", + "name": "Japanese-JP", + "voice": "ja-JP-Neural2-C", + "icon": "jp", + "voiceProvider": "google", + "locale": "ja-JP", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-ja-jp-neural2-c-ja-jp.mp3", + "approxDurationCoeficient": 6 + }, + { + "character": "Miles D", + "name": "Japanese-JP", + "voice": "ja-JP-Neural2-D", + "icon": "jp", + "voiceProvider": "google", + "locale": "ja-JP", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-ja-jp-neural2-d-ja-jp.mp3" + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Nanami", + "name": "Japanese (Japan)", + "locale": "ja-JP", + "voice": "ja-JP-NanamiNeural", + "icon": "jp", + "styleList": [ + "chat", + "customerservice", + "cheerful" + ], + "stylePreview": { + "chat": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ja-jp-nanamineural:chat-ja-jp.mp3", + "customerservice": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ja-jp-nanamineural:customerservice-ja-jp.mp3", + "cheerful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ja-jp-nanamineural:cheerful-ja-jp.mp3" + }, + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ja-jp-nanamineural-ja-jp.mp3", + "approxDurationCoeficient": 7 + }, + { + "character": "Rachel", + "voice": "21m00Tcm4TlvDq8ikWAM", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 1, + "name": "Japanese (Japan)", + "locale": "ja-JP", + "icon": "jp", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-21m00tcm4tlvdq8ikwam-ja-jp.mp3" + }, + { + "character": "Matilda", + "voice": "XrExE9yKIg1WjnnlVkGX", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 3, + "name": "Japanese (Japan)", + "locale": "ja-JP", + "icon": "jp", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xrexe9ykig1wjnnlvkgx-ja-jp.mp3", + "approxDurationCoeficient": 6 + }, + { + "character": "Grace", + "voice": "oWAxZDx7w5VEj9dCyTzz", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "southern-accent", + "young" + ], + "order": 4, + "name": "Japanese (Japan)", + "locale": "ja-JP", + "icon": "jp", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-owaxzdx7w5vej9dcytzz-ja-jp.mp3" + }, + { + "character": "Domi", + "voice": "AZnzlk1XvdvUeBnXmlld", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "upbeat", + "young" + ], + "order": 5, + "name": "Japanese (Japan)", + "locale": "ja-JP", + "icon": "jp", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-aznzlk1xvdvuebnxmlld-ja-jp.mp3", + "approxDurationCoeficient": 6 + }, + { + "character": "Gigi", + "voice": "jBpfuIE2acCO8z3wKNLl", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "childish", + "young" + ], + "order": 6, + "name": "Japanese (Japan)", + "locale": "ja-JP", + "icon": "jp", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-jbpfuie2acco8z3wknll-ja-jp.mp3" + }, + { + "character": "Serena", + "voice": "pMsXgVXv3BLzUgSXRplE", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "order": 7, + "name": "Japanese (Japan)", + "locale": "ja-JP", + "icon": "jp", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pmsxgvxv3blzugsxrple-ja-jp.mp3" + }, + { + "character": "Glinda", + "voice": "z9fAnlkpzviPz146aGWa", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "strong", + "middle-aged" + ], + "order": 8, + "name": "Japanese (Japan)", + "locale": "ja-JP", + "icon": "jp", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-z9fanlkpzvipz146agwa-ja-jp.mp3", + "approxDurationCoeficient": 6 + }, + { + "character": "Mimi", + "voice": "zrHiDhphv9ZnVXBqCLjz", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "childish", + "young" + ], + "order": 9, + "name": "Japanese (Japan)", + "locale": "ja-JP", + "icon": "jp", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zrhidhphv9znvxbqcljz-ja-jp.mp3" + }, + { + "character": "Emily", + "voice": "LcfcDJNUP1GQjkzn1xUU", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "order": 10, + "name": "Japanese (Japan)", + "locale": "ja-JP", + "icon": "jp", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-lcfcdjnup1gqjkzn1xuu-ja-jp.mp3", + "approxDurationCoeficient": 9 + }, + { + "character": "Lily", + "voice": "pFZP5JQG7iQjIQuC4Bku", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "raspy", + "middle-aged" + ], + "order": 11, + "name": "Japanese (Japan)", + "locale": "ja-JP", + "icon": "jp", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pfzp5jqg7iqjiquc4bku-ja-jp.mp3" + }, + { + "character": "Charlotte", + "voice": "XB0fDUnXU5powFXDhCwa", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "swedish-accent", + "young" + ], + "order": 12, + "name": "Japanese (Japan)", + "locale": "ja-JP", + "icon": "jp", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xb0fdunxu5powfxdhcwa-ja-jp.mp3" + }, + { + "character": "Dorothy", + "voice": "ThT5KcBeYPX3keUQqHPh", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 13, + "name": "Japanese (Japan)", + "locale": "ja-JP", + "icon": "jp", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-tht5kcbeypx3keuqqhph-ja-jp.mp3" + }, + { + "character": "Sarah", + "voice": "EXAVITQu4vr4xnSDxMaL", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 99999, + "name": "Japanese (Japan)", + "locale": "ja-JP", + "icon": "jp", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-exavitqu4vr4xnsdxmal-ja-jp.mp3", + "approxDurationCoeficient": 5 + }, + { + "character": "Alice", + "voice": "Xb7hH8MSUJpSbSDYk0k2", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Japanese (Japan)", + "locale": "ja-JP", + "icon": "jp", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xb7hh8msujpsbsdyk0k2-ja-jp.mp3", + "approxDurationCoeficient": 5 + }, + { + "voiceProvider": "azure", + "character": "Aoi", + "name": "Japanese (Japan)", + "locale": "ja-JP", + "voice": "ja-JP-AoiNeural", + "icon": "jp", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ja-jp-aoineural-ja-jp.mp3", + "approxDurationCoeficient": 9 + }, + { + "voiceProvider": "azure", + "character": "Mayu", + "name": "Japanese (Japan)", + "locale": "ja-JP", + "voice": "ja-JP-MayuNeural", + "icon": "jp", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ja-jp-mayuneural-ja-jp.mp3" + }, + { + "voiceProvider": "azure", + "character": "Shiori", + "name": "Japanese (Japan)", + "locale": "ja-JP", + "voice": "ja-JP-ShioriNeural", + "icon": "jp", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ja-jp-shiorineural-ja-jp.mp3", + "approxDurationCoeficient": 12 + }, + { + "character": "Elanor B", + "name": "Japanese-JP", + "voice": "ja-JP-Neural2-B", + "icon": "jp", + "voiceProvider": "google", + "locale": "ja-JP", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-ja-jp-neural2-b-ja-jp.mp3", + "approxDurationCoeficient": 5 + }, + { + "character": "Lucy A", + "name": "Japanese-JP", + "voice": "ja-JP-Wavenet-A", + "icon": "jp", + "voiceProvider": "google", + "locale": "ja-JP", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-ja-jp-wavenet-a-ja-jp.mp3", + "approxDurationCoeficient": 8 + } + ] + }, + { + "name": "Javanese", + "male": [ + { + "voiceProvider": "azure", + "character": "Dimas", + "name": "Javanese (Latin, Indonesia)", + "locale": "jv-ID", + "voice": "jv-ID-DimasNeural", + "icon": "id", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-jv-id-dimasneural-jv-id.mp3", + "approxDurationCoeficient": 15 + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Siti", + "name": "Javanese (Latin, Indonesia)", + "locale": "jv-ID", + "voice": "jv-ID-SitiNeural", + "icon": "id", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-jv-id-sitineural-jv-id.mp3", + "approxDurationCoeficient": 13 + } + ] + }, + { + "name": "Kannada", + "male": [ + { + "voiceProvider": "azure", + "character": "Gagan", + "name": "Kannada (India)", + "locale": "kn-IN", + "voice": "kn-IN-GaganNeural", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-kn-in-gaganneural-kn-in.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Oscar B", + "name": "Kannada-IN", + "voice": "kn-IN-Wavenet-B", + "icon": "in", + "voiceProvider": "google", + "locale": "kn-IN", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-kn-in-wavenet-b-kn-in.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Miles D", + "name": "Kannada-IN", + "voice": "kn-IN-Wavenet-D", + "icon": "in", + "voiceProvider": "google", + "locale": "kn-IN", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-kn-in-wavenet-d-kn-in.mp3" + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Sapna", + "name": "Kannada (India)", + "locale": "kn-IN", + "voice": "kn-IN-SapnaNeural", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-kn-in-sapnaneural-kn-in.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "Elanor A", + "name": "Kannada-IN", + "voice": "kn-IN-Wavenet-A", + "icon": "in", + "voiceProvider": "google", + "locale": "kn-IN", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-kn-in-wavenet-a-kn-in.mp3", + "approxDurationCoeficient": 20 + }, + { + "character": "Lucy C", + "name": "Kannada-IN", + "voice": "kn-IN-Wavenet-C", + "icon": "in", + "voiceProvider": "google", + "locale": "kn-IN", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-kn-in-wavenet-c-kn-in.mp3" + } + ] + }, + { + "name": "Kazakh", + "male": [ + { + "voiceProvider": "azure", + "character": "Daulet", + "name": "Kazakh (Kazakhstan)", + "locale": "kk-KZ", + "voice": "kk-KZ-DauletNeural", + "icon": "kz", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-kk-kz-dauletneural-kk-kz.mp3", + "approxDurationCoeficient": 17 + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Aigul", + "name": "Kazakh (Kazakhstan)", + "locale": "kk-KZ", + "voice": "kk-KZ-AigulNeural", + "icon": "kz", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-kk-kz-aigulneural-kk-kz.mp3", + "approxDurationCoeficient": 16 + } + ] + }, + { + "name": "Khmer", + "male": [ + { + "voiceProvider": "azure", + "character": "Piseth", + "name": "Khmer (Cambodia)", + "locale": "km-KH", + "voice": "km-KH-PisethNeural", + "icon": "kh", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-km-kh-pisethneural-km-kh.mp3", + "approxDurationCoeficient": 16 + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Sreymom", + "name": "Khmer (Cambodia)", + "locale": "km-KH", + "voice": "km-KH-SreymomNeural", + "icon": "kh", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-km-kh-sreymomneural-km-kh.mp3", + "approxDurationCoeficient": 19 + } + ] + }, + { + "name": "Korean", + "male": [ + { + "voiceProvider": "azure", + "character": "InJoon", + "name": "Korean (Korea)", + "locale": "ko-KR", + "voice": "ko-KR-InJoonNeural", + "icon": "kr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ko-kr-injoonneural-ko-kr.mp3", + "approxDurationCoeficient": 8 + }, + { + "character": "Antoni", + "voice": "ErXwobaYiN019PkySvjV", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "well-rounded", + "calm" + ], + "order": 1, + "name": "Korean (Korea)", + "locale": "ko-KR", + "icon": "kr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-erxwobayin019pkysvjv-ko-kr.mp3" + }, + { + "character": "Josh", + "voice": "TxGEqnHWrfWFTfGW9XjX", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "young" + ], + "order": 2, + "name": "Korean (Korea)", + "locale": "ko-KR", + "icon": "kr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-txgeqnhwrfwftfgw9xjx-ko-kr.mp3", + "approxDurationCoeficient": 8 + }, + { + "character": "Arnold", + "voice": "VR6AewLTigWG4xSOukaG", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "crisp", + "middle-aged" + ], + "order": 3, + "name": "Korean (Korea)", + "locale": "ko-KR", + "icon": "kr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-vr6aewltigwg4xsoukag-ko-kr.mp3" + }, + { + "character": "Adam", + "voice": "pNInz6obpgDQGcFmaJgB", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "middle-aged" + ], + "order": 4, + "name": "Korean (Korea)", + "locale": "ko-KR", + "icon": "kr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pninz6obpgdqgcfmajgb-ko-kr.mp3" + }, + { + "character": "Bill", + "voice": "pqHfZKP75CvOlQylNhV4", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "strong", + "middle-aged" + ], + "order": 5, + "name": "Korean (Korea)", + "locale": "ko-KR", + "icon": "kr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pqhfzkp75cvolqylnhv4-ko-kr.mp3" + }, + { + "character": "Jessie", + "voice": "t0jbNlBVZ17f02VDIeMI", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "fast-paced", + "old" + ], + "order": 6, + "name": "Korean (Korea)", + "locale": "ko-KR", + "icon": "kr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-t0jbnlbvz17f02vdiemi-ko-kr.mp3" + }, + { + "character": "Michael", + "voice": "flq6f7yk4E4fJM5XTYuZ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "orutund", + "old" + ], + "order": 7, + "name": "Korean (Korea)", + "locale": "ko-KR", + "icon": "kr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-flq6f7yk4e4fjm5xtyuz-ko-kr.mp3" + }, + { + "character": "Liam", + "voice": "TX3LPaxmHKxFdv7VOQHJ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "neutral", + "young" + ], + "order": 8, + "name": "Korean (Korea)", + "locale": "ko-KR", + "icon": "kr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-tx3lpaxmhkxfdv7voqhj-ko-kr.mp3", + "approxDurationCoeficient": 7 + }, + { + "character": "Harry", + "voice": "SOYHLrjzK2X1ezoPC6cr", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "anxious", + "young" + ], + "order": 9, + "name": "Korean (Korea)", + "locale": "ko-KR", + "icon": "kr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-soyhlrjzk2x1ezopc6cr-ko-kr.mp3" + }, + { + "character": "Patrick", + "voice": "ODq5zmih8GrVes37Dizd", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "shouty", + "middle-aged" + ], + "order": 10, + "name": "Korean (Korea)", + "locale": "ko-KR", + "icon": "kr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-odq5zmih8grves37dizd-ko-kr.mp3" + }, + { + "character": "Thomas", + "voice": "GBv7mTt0atIp3Br8iCZE", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 11, + "name": "Korean (Korea)", + "locale": "ko-KR", + "icon": "kr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-gbv7mtt0atip3br8icze-ko-kr.mp3" + }, + { + "character": "Drew", + "voice": "29vD33N1CtxCmqQRPOHJ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "well-rounded", + "middle-aged" + ], + "order": 12, + "name": "Korean (Korea)", + "locale": "ko-KR", + "icon": "kr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-29vd33n1ctxcmqqrpohj-ko-kr.mp3" + }, + { + "character": "Paul", + "voice": "5Q0t7uMcjvnagumLfvZi", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "narration", + "middle-aged" + ], + "order": 13, + "name": "Korean (Korea)", + "locale": "ko-KR", + "icon": "kr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-5q0t7umcjvnagumlfvzi-ko-kr.mp3" + }, + { + "character": "Callum", + "voice": "N2lVS1w4EtoT3dr4eOWO", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "masculine", + "middle-aged" + ], + "order": 14, + "name": "Korean (Korea)", + "locale": "ko-KR", + "icon": "kr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-n2lvs1w4etot3dr4eowo-ko-kr.mp3" + }, + { + "character": "Giovanni", + "voice": "zcAOhNBS3c14rBihAFp1", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "italian-accent", + "young" + ], + "order": 15, + "name": "Korean (Korea)", + "locale": "ko-KR", + "icon": "kr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zcaohnbs3c14rbihafp1-ko-kr.mp3" + }, + { + "character": "Clyde", + "voice": "2EiwWnXFnvU5JabPnv8n", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "masculine", + "middle-aged" + ], + "order": 17, + "name": "Korean (Korea)", + "locale": "ko-KR", + "icon": "kr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-2eiwwnxfnvu5jabpnv8n-ko-kr.mp3" + }, + { + "character": "George", + "voice": "JBFqnCBsd6RMkjVDRZzb", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "raspy", + "narration" + ], + "order": 19, + "name": "Korean (Korea)", + "locale": "ko-KR", + "icon": "kr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-jbfqncbsd6rmkjvdrzzb-ko-kr.mp3" + }, + { + "character": "Dave", + "voice": "CYw3kZ02Hs0563khs1Fj", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "essex-accent", + "young" + ], + "order": 20, + "name": "Korean (Korea)", + "locale": "ko-KR", + "icon": "kr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-cyw3kz02hs0563khs1fj-ko-kr.mp3" + }, + { + "character": "Joseph", + "voice": "Zlb1dXrM653N07WRdFW3", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "upbeat", + "middle-aged" + ], + "order": 21, + "name": "Korean (Korea)", + "locale": "ko-KR", + "icon": "kr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zlb1dxrm653n07wrdfw3-ko-kr.mp3" + }, + { + "character": "Daniel", + "voice": "onwK4e9ZLuTAKqWW03F9", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "middle-aged" + ], + "order": 22, + "name": "Korean (Korea)", + "locale": "ko-KR", + "icon": "kr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-onwk4e9zlutakqww03f9-ko-kr.mp3" + }, + { + "character": "Charlie", + "voice": "IKne3meq5aSn9XLyUdCD", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "casual", + "middle-aged" + ], + "order": 23, + "name": "Korean (Korea)", + "locale": "ko-KR", + "icon": "kr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-ikne3meq5asn9xlyudcd-ko-kr.mp3" + }, + { + "character": "James", + "voice": "ZQe5CZNOzWyzPSCn5a3c", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "old" + ], + "order": 24, + "name": "Korean (Korea)", + "locale": "ko-KR", + "icon": "kr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zqe5cznozwyzpscn5a3c-ko-kr.mp3" + }, + { + "character": "Fin", + "voice": "D38z5RcWu1voky8WS1ja", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "sailor", + "old" + ], + "order": 25, + "name": "Korean (Korea)", + "locale": "ko-KR", + "icon": "kr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-d38z5rcwu1voky8ws1ja-ko-kr.mp3" + }, + { + "character": "Jeremy", + "voice": "bVMeCyTHy58xNoL34h3p", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "excited", + "young" + ], + "order": 26, + "name": "Korean (Korea)", + "locale": "ko-KR", + "icon": "kr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-bvmecythy58xnol34h3p-ko-kr.mp3" + }, + { + "character": "Chris", + "voice": "iP95p4xoKVk53GoZ742B", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Korean (Korea)", + "locale": "ko-KR", + "icon": "kr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-ip95p4xokvk53goz742b-ko-kr.mp3" + }, + { + "character": "Brian", + "voice": "nPczCjzI2devNBz1zQrb", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Korean (Korea)", + "locale": "ko-KR", + "icon": "kr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-npczcjzi2devnbz1zqrb-ko-kr.mp3" + }, + { + "character": "Sam", + "voice": "yoZ06aMxZJJ28mfd3POQ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "fast-paced", + "young" + ], + "order": 99999, + "name": "Korean (Korea)", + "locale": "ko-KR", + "icon": "kr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-yoz06amxzjj28mfd3poq-ko-kr.mp3", + "approxDurationCoeficient": 19 + }, + { + "voiceProvider": "azure", + "character": "BongJin", + "name": "Korean (Korea)", + "locale": "ko-KR", + "voice": "ko-KR-BongJinNeural", + "icon": "kr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ko-kr-bongjinneural-ko-kr.mp3", + "approxDurationCoeficient": 7 + }, + { + "voiceProvider": "azure", + "character": "GookMin", + "name": "Korean (Korea)", + "locale": "ko-KR", + "voice": "ko-KR-GookMinNeural", + "icon": "kr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ko-kr-gookminneural-ko-kr.mp3" + }, + { + "voiceProvider": "azure", + "character": "Hyunsu", + "name": "Korean (Korea)", + "locale": "ko-KR", + "voice": "ko-KR-HyunsuNeural", + "icon": "kr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ko-kr-hyunsuneural-ko-kr.mp3" + }, + { + "character": "Oscar C", + "name": "Korean-KR", + "voice": "ko-KR-Neural2-C", + "icon": "kr", + "voiceProvider": "google", + "locale": "ko-KR", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-ko-kr-neural2-c-ko-kr.mp3", + "approxDurationCoeficient": 8 + }, + { + "character": "Miles D", + "name": "Korean-KR", + "voice": "ko-KR-Wavenet-D", + "icon": "kr", + "voiceProvider": "google", + "locale": "ko-KR", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-ko-kr-wavenet-d-ko-kr.mp3", + "approxDurationCoeficient": 9 + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Sun-Hi", + "name": "Korean (Korea)", + "locale": "ko-KR", + "voice": "ko-KR-SunHiNeural", + "icon": "kr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ko-kr-sunhineural-ko-kr.mp3", + "approxDurationCoeficient": 8 + }, + { + "character": "Rachel", + "voice": "21m00Tcm4TlvDq8ikWAM", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 1, + "name": "Korean (Korea)", + "locale": "ko-KR", + "icon": "kr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-21m00tcm4tlvdq8ikwam-ko-kr.mp3", + "approxDurationCoeficient": 19 + }, + { + "character": "Matilda", + "voice": "XrExE9yKIg1WjnnlVkGX", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 3, + "name": "Korean (Korea)", + "locale": "ko-KR", + "icon": "kr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xrexe9ykig1wjnnlvkgx-ko-kr.mp3" + }, + { + "character": "Grace", + "voice": "oWAxZDx7w5VEj9dCyTzz", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "southern-accent", + "young" + ], + "order": 4, + "name": "Korean (Korea)", + "locale": "ko-KR", + "icon": "kr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-owaxzdx7w5vej9dcytzz-ko-kr.mp3" + }, + { + "character": "Domi", + "voice": "AZnzlk1XvdvUeBnXmlld", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "upbeat", + "young" + ], + "order": 5, + "name": "Korean (Korea)", + "locale": "ko-KR", + "icon": "kr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-aznzlk1xvdvuebnxmlld-ko-kr.mp3" + }, + { + "character": "Gigi", + "voice": "jBpfuIE2acCO8z3wKNLl", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "childish", + "young" + ], + "order": 6, + "name": "Korean (Korea)", + "locale": "ko-KR", + "icon": "kr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-jbpfuie2acco8z3wknll-ko-kr.mp3" + }, + { + "character": "Serena", + "voice": "pMsXgVXv3BLzUgSXRplE", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "order": 7, + "name": "Korean (Korea)", + "locale": "ko-KR", + "icon": "kr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pmsxgvxv3blzugsxrple-ko-kr.mp3" + }, + { + "character": "Glinda", + "voice": "z9fAnlkpzviPz146aGWa", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "strong", + "middle-aged" + ], + "order": 8, + "name": "Korean (Korea)", + "locale": "ko-KR", + "icon": "kr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-z9fanlkpzvipz146agwa-ko-kr.mp3", + "approxDurationCoeficient": 9 + }, + { + "character": "Mimi", + "voice": "zrHiDhphv9ZnVXBqCLjz", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "childish", + "young" + ], + "order": 9, + "name": "Korean (Korea)", + "locale": "ko-KR", + "icon": "kr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zrhidhphv9znvxbqcljz-ko-kr.mp3" + }, + { + "character": "Emily", + "voice": "LcfcDJNUP1GQjkzn1xUU", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "order": 10, + "name": "Korean (Korea)", + "locale": "ko-KR", + "icon": "kr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-lcfcdjnup1gqjkzn1xuu-ko-kr.mp3" + }, + { + "character": "Lily", + "voice": "pFZP5JQG7iQjIQuC4Bku", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "raspy", + "middle-aged" + ], + "order": 11, + "name": "Korean (Korea)", + "locale": "ko-KR", + "icon": "kr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pfzp5jqg7iqjiquc4bku-ko-kr.mp3" + }, + { + "character": "Charlotte", + "voice": "XB0fDUnXU5powFXDhCwa", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "swedish-accent", + "young" + ], + "order": 12, + "name": "Korean (Korea)", + "locale": "ko-KR", + "icon": "kr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xb0fdunxu5powfxdhcwa-ko-kr.mp3" + }, + { + "character": "Dorothy", + "voice": "ThT5KcBeYPX3keUQqHPh", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 13, + "name": "Korean (Korea)", + "locale": "ko-KR", + "icon": "kr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-tht5kcbeypx3keuqqhph-ko-kr.mp3" + }, + { + "character": "Sarah", + "voice": "EXAVITQu4vr4xnSDxMaL", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 99999, + "name": "Korean (Korea)", + "locale": "ko-KR", + "icon": "kr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-exavitqu4vr4xnsdxmal-ko-kr.mp3" + }, + { + "character": "Alice", + "voice": "Xb7hH8MSUJpSbSDYk0k2", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Korean (Korea)", + "locale": "ko-KR", + "icon": "kr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xb7hh8msujpsbsdyk0k2-ko-kr.mp3" + }, + { + "voiceProvider": "azure", + "character": "JiMin", + "name": "Korean (Korea)", + "locale": "ko-KR", + "voice": "ko-KR-JiMinNeural", + "icon": "kr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ko-kr-jiminneural-ko-kr.mp3", + "approxDurationCoeficient": 8 + }, + { + "voiceProvider": "azure", + "character": "SeoHyeon", + "name": "Korean (Korea)", + "locale": "ko-KR", + "voice": "ko-KR-SeoHyeonNeural", + "icon": "kr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ko-kr-seohyeonneural-ko-kr.mp3" + }, + { + "voiceProvider": "azure", + "character": "SoonBok", + "name": "Korean (Korea)", + "locale": "ko-KR", + "voice": "ko-KR-SoonBokNeural", + "icon": "kr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ko-kr-soonbokneural-ko-kr.mp3" + }, + { + "voiceProvider": "azure", + "character": "YuJin", + "name": "Korean (Korea)", + "locale": "ko-KR", + "voice": "ko-KR-YuJinNeural", + "icon": "kr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ko-kr-yujinneural-ko-kr.mp3" + }, + { + "character": "Elanor A", + "name": "Korean-KR", + "voice": "ko-KR-Neural2-A", + "icon": "kr", + "voiceProvider": "google", + "locale": "ko-KR", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-ko-kr-neural2-a-ko-kr.mp3" + }, + { + "character": "Lucy B", + "name": "Korean-KR", + "voice": "ko-KR-Neural2-B", + "icon": "kr", + "voiceProvider": "google", + "locale": "ko-KR", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-ko-kr-neural2-b-ko-kr.mp3", + "approxDurationCoeficient": 11 + } + ] + }, + { + "name": "Lao", + "male": [ + { + "voiceProvider": "azure", + "character": "Chanthavong", + "name": "Lao (Laos)", + "locale": "lo-LA", + "voice": "lo-LA-ChanthavongNeural", + "icon": "la", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-lo-la-chanthavongneural-lo-la.mp3", + "approxDurationCoeficient": 13 + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Keomany", + "name": "Lao (Laos)", + "locale": "lo-LA", + "voice": "lo-LA-KeomanyNeural", + "icon": "la", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-lo-la-keomanyneural-lo-la.mp3", + "approxDurationCoeficient": 11 + } + ] + }, + { + "name": "Latvian", + "male": [ + { + "voiceProvider": "azure", + "character": "Nils", + "name": "Latvian (Latvia)", + "locale": "lv-LV", + "voice": "lv-LV-NilsNeural", + "icon": "lv", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-lv-lv-nilsneural-lv-lv.mp3", + "approxDurationCoeficient": 17 + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Everita", + "name": "Latvian (Latvia)", + "locale": "lv-LV", + "voice": "lv-LV-EveritaNeural", + "icon": "lv", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-lv-lv-everitaneural-lv-lv.mp3", + "approxDurationCoeficient": 14 + } + ] + }, + { + "name": "Lithuanian", + "male": [ + { + "voiceProvider": "azure", + "character": "Leonas", + "name": "Lithuanian (Lithuania)", + "locale": "lt-LT", + "voice": "lt-LT-LeonasNeural", + "icon": "lt", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-lt-lt-leonasneural-lt-lt.mp3", + "approxDurationCoeficient": 16 + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Ona", + "name": "Lithuanian (Lithuania)", + "locale": "lt-LT", + "voice": "lt-LT-OnaNeural", + "icon": "lt", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-lt-lt-onaneural-lt-lt.mp3", + "approxDurationCoeficient": 15 + } + ] + }, + { + "name": "Macedonian", + "male": [ + { + "voiceProvider": "azure", + "character": "Aleksandar", + "name": "Macedonian (North Macedonia)", + "locale": "mk-MK", + "voice": "mk-MK-AleksandarNeural", + "icon": "mk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-mk-mk-aleksandarneural-mk-mk.mp3", + "approxDurationCoeficient": 16 + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Marija", + "name": "Macedonian (North Macedonia)", + "locale": "mk-MK", + "voice": "mk-MK-MarijaNeural", + "icon": "mk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-mk-mk-marijaneural-mk-mk.mp3", + "approxDurationCoeficient": 15 + } + ] + }, + { + "name": "Malay", + "male": [ + { + "voiceProvider": "azure", + "character": "Osman", + "name": "Malay (Malaysia)", + "locale": "ms-MY", + "voice": "ms-MY-OsmanNeural", + "icon": "my", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ms-my-osmanneural-ms-my.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Antoni", + "voice": "ErXwobaYiN019PkySvjV", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "well-rounded", + "calm" + ], + "order": 1, + "name": "Malay (Malaysia)", + "locale": "ms-MY", + "icon": "my", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-erxwobayin019pkysvjv-ms-my.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "Josh", + "voice": "TxGEqnHWrfWFTfGW9XjX", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "young" + ], + "order": 2, + "name": "Malay (Malaysia)", + "locale": "ms-MY", + "icon": "my", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-txgeqnhwrfwftfgw9xjx-ms-my.mp3" + }, + { + "character": "Arnold", + "voice": "VR6AewLTigWG4xSOukaG", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "crisp", + "middle-aged" + ], + "order": 3, + "name": "Malay (Malaysia)", + "locale": "ms-MY", + "icon": "my", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-vr6aewltigwg4xsoukag-ms-my.mp3" + }, + { + "character": "Adam", + "voice": "pNInz6obpgDQGcFmaJgB", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "middle-aged" + ], + "order": 4, + "name": "Malay (Malaysia)", + "locale": "ms-MY", + "icon": "my", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pninz6obpgdqgcfmajgb-ms-my.mp3" + }, + { + "character": "Bill", + "voice": "pqHfZKP75CvOlQylNhV4", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "strong", + "middle-aged" + ], + "order": 5, + "name": "Malay (Malaysia)", + "locale": "ms-MY", + "icon": "my", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pqhfzkp75cvolqylnhv4-ms-my.mp3" + }, + { + "character": "Jessie", + "voice": "t0jbNlBVZ17f02VDIeMI", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "fast-paced", + "old" + ], + "order": 6, + "name": "Malay (Malaysia)", + "locale": "ms-MY", + "icon": "my", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-t0jbnlbvz17f02vdiemi-ms-my.mp3" + }, + { + "character": "Michael", + "voice": "flq6f7yk4E4fJM5XTYuZ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "orutund", + "old" + ], + "order": 7, + "name": "Malay (Malaysia)", + "locale": "ms-MY", + "icon": "my", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-flq6f7yk4e4fjm5xtyuz-ms-my.mp3" + }, + { + "character": "Liam", + "voice": "TX3LPaxmHKxFdv7VOQHJ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "neutral", + "young" + ], + "order": 8, + "name": "Malay (Malaysia)", + "locale": "ms-MY", + "icon": "my", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-tx3lpaxmhkxfdv7voqhj-ms-my.mp3" + }, + { + "character": "Harry", + "voice": "SOYHLrjzK2X1ezoPC6cr", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "anxious", + "young" + ], + "order": 9, + "name": "Malay (Malaysia)", + "locale": "ms-MY", + "icon": "my", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-soyhlrjzk2x1ezopc6cr-ms-my.mp3" + }, + { + "character": "Patrick", + "voice": "ODq5zmih8GrVes37Dizd", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "shouty", + "middle-aged" + ], + "order": 10, + "name": "Malay (Malaysia)", + "locale": "ms-MY", + "icon": "my", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-odq5zmih8grves37dizd-ms-my.mp3" + }, + { + "character": "Thomas", + "voice": "GBv7mTt0atIp3Br8iCZE", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 11, + "name": "Malay (Malaysia)", + "locale": "ms-MY", + "icon": "my", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-gbv7mtt0atip3br8icze-ms-my.mp3" + }, + { + "character": "Drew", + "voice": "29vD33N1CtxCmqQRPOHJ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "well-rounded", + "middle-aged" + ], + "order": 12, + "name": "Malay (Malaysia)", + "locale": "ms-MY", + "icon": "my", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-29vd33n1ctxcmqqrpohj-ms-my.mp3" + }, + { + "character": "Paul", + "voice": "5Q0t7uMcjvnagumLfvZi", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "narration", + "middle-aged" + ], + "order": 13, + "name": "Malay (Malaysia)", + "locale": "ms-MY", + "icon": "my", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-5q0t7umcjvnagumlfvzi-ms-my.mp3" + }, + { + "character": "Callum", + "voice": "N2lVS1w4EtoT3dr4eOWO", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "masculine", + "middle-aged" + ], + "order": 14, + "name": "Malay (Malaysia)", + "locale": "ms-MY", + "icon": "my", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-n2lvs1w4etot3dr4eowo-ms-my.mp3" + }, + { + "character": "Giovanni", + "voice": "zcAOhNBS3c14rBihAFp1", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "italian-accent", + "young" + ], + "order": 15, + "name": "Malay (Malaysia)", + "locale": "ms-MY", + "icon": "my", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zcaohnbs3c14rbihafp1-ms-my.mp3" + }, + { + "character": "Clyde", + "voice": "2EiwWnXFnvU5JabPnv8n", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "masculine", + "middle-aged" + ], + "order": 17, + "name": "Malay (Malaysia)", + "locale": "ms-MY", + "icon": "my", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-2eiwwnxfnvu5jabpnv8n-ms-my.mp3" + }, + { + "character": "George", + "voice": "JBFqnCBsd6RMkjVDRZzb", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "raspy", + "narration" + ], + "order": 19, + "name": "Malay (Malaysia)", + "locale": "ms-MY", + "icon": "my", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-jbfqncbsd6rmkjvdrzzb-ms-my.mp3" + }, + { + "character": "Dave", + "voice": "CYw3kZ02Hs0563khs1Fj", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "essex-accent", + "young" + ], + "order": 20, + "name": "Malay (Malaysia)", + "locale": "ms-MY", + "icon": "my", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-cyw3kz02hs0563khs1fj-ms-my.mp3" + }, + { + "character": "Joseph", + "voice": "Zlb1dXrM653N07WRdFW3", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "upbeat", + "middle-aged" + ], + "order": 21, + "name": "Malay (Malaysia)", + "locale": "ms-MY", + "icon": "my", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zlb1dxrm653n07wrdfw3-ms-my.mp3" + }, + { + "character": "Daniel", + "voice": "onwK4e9ZLuTAKqWW03F9", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "middle-aged" + ], + "order": 22, + "name": "Malay (Malaysia)", + "locale": "ms-MY", + "icon": "my", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-onwk4e9zlutakqww03f9-ms-my.mp3" + }, + { + "character": "Charlie", + "voice": "IKne3meq5aSn9XLyUdCD", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "casual", + "middle-aged" + ], + "order": 23, + "name": "Malay (Malaysia)", + "locale": "ms-MY", + "icon": "my", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-ikne3meq5asn9xlyudcd-ms-my.mp3" + }, + { + "character": "James", + "voice": "ZQe5CZNOzWyzPSCn5a3c", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "old" + ], + "order": 24, + "name": "Malay (Malaysia)", + "locale": "ms-MY", + "icon": "my", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zqe5cznozwyzpscn5a3c-ms-my.mp3" + }, + { + "character": "Fin", + "voice": "D38z5RcWu1voky8WS1ja", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "sailor", + "old" + ], + "order": 25, + "name": "Malay (Malaysia)", + "locale": "ms-MY", + "icon": "my", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-d38z5rcwu1voky8ws1ja-ms-my.mp3" + }, + { + "character": "Jeremy", + "voice": "bVMeCyTHy58xNoL34h3p", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "excited", + "young" + ], + "order": 26, + "name": "Malay (Malaysia)", + "locale": "ms-MY", + "icon": "my", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-bvmecythy58xnol34h3p-ms-my.mp3" + }, + { + "character": "Chris", + "voice": "iP95p4xoKVk53GoZ742B", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Malay (Malaysia)", + "locale": "ms-MY", + "icon": "my", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-ip95p4xokvk53goz742b-ms-my.mp3" + }, + { + "character": "Brian", + "voice": "nPczCjzI2devNBz1zQrb", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Malay (Malaysia)", + "locale": "ms-MY", + "icon": "my", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-npczcjzi2devnbz1zqrb-ms-my.mp3" + }, + { + "character": "Sam", + "voice": "yoZ06aMxZJJ28mfd3POQ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "fast-paced", + "young" + ], + "order": 99999, + "name": "Malay (Malaysia)", + "locale": "ms-MY", + "icon": "my", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-yoz06amxzjj28mfd3poq-ms-my.mp3" + }, + { + "character": "Oscar B", + "name": "Malay-MY", + "voice": "ms-MY-Wavenet-B", + "icon": "my", + "voiceProvider": "google", + "locale": "ms-MY", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-ms-my-wavenet-b-ms-my.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Miles D", + "name": "Malay-MY", + "voice": "ms-MY-Wavenet-D", + "icon": "my", + "voiceProvider": "google", + "locale": "ms-MY", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-ms-my-wavenet-d-ms-my.mp3", + "approxDurationCoeficient": 21 + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Yasmin", + "name": "Malay (Malaysia)", + "locale": "ms-MY", + "voice": "ms-MY-YasminNeural", + "icon": "my", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ms-my-yasminneural-ms-my.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Rachel", + "voice": "21m00Tcm4TlvDq8ikWAM", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 1, + "name": "Malay (Malaysia)", + "locale": "ms-MY", + "icon": "my", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-21m00tcm4tlvdq8ikwam-ms-my.mp3" + }, + { + "character": "Matilda", + "voice": "XrExE9yKIg1WjnnlVkGX", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 3, + "name": "Malay (Malaysia)", + "locale": "ms-MY", + "icon": "my", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xrexe9ykig1wjnnlvkgx-ms-my.mp3" + }, + { + "character": "Grace", + "voice": "oWAxZDx7w5VEj9dCyTzz", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "southern-accent", + "young" + ], + "order": 4, + "name": "Malay (Malaysia)", + "locale": "ms-MY", + "icon": "my", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-owaxzdx7w5vej9dcytzz-ms-my.mp3" + }, + { + "character": "Domi", + "voice": "AZnzlk1XvdvUeBnXmlld", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "upbeat", + "young" + ], + "order": 5, + "name": "Malay (Malaysia)", + "locale": "ms-MY", + "icon": "my", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-aznzlk1xvdvuebnxmlld-ms-my.mp3" + }, + { + "character": "Gigi", + "voice": "jBpfuIE2acCO8z3wKNLl", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "childish", + "young" + ], + "order": 6, + "name": "Malay (Malaysia)", + "locale": "ms-MY", + "icon": "my", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-jbpfuie2acco8z3wknll-ms-my.mp3" + }, + { + "character": "Serena", + "voice": "pMsXgVXv3BLzUgSXRplE", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "order": 7, + "name": "Malay (Malaysia)", + "locale": "ms-MY", + "icon": "my", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pmsxgvxv3blzugsxrple-ms-my.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "Glinda", + "voice": "z9fAnlkpzviPz146aGWa", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "strong", + "middle-aged" + ], + "order": 8, + "name": "Malay (Malaysia)", + "locale": "ms-MY", + "icon": "my", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-z9fanlkpzvipz146agwa-ms-my.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Mimi", + "voice": "zrHiDhphv9ZnVXBqCLjz", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "childish", + "young" + ], + "order": 9, + "name": "Malay (Malaysia)", + "locale": "ms-MY", + "icon": "my", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zrhidhphv9znvxbqcljz-ms-my.mp3" + }, + { + "character": "Emily", + "voice": "LcfcDJNUP1GQjkzn1xUU", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "order": 10, + "name": "Malay (Malaysia)", + "locale": "ms-MY", + "icon": "my", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-lcfcdjnup1gqjkzn1xuu-ms-my.mp3" + }, + { + "character": "Lily", + "voice": "pFZP5JQG7iQjIQuC4Bku", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "raspy", + "middle-aged" + ], + "order": 11, + "name": "Malay (Malaysia)", + "locale": "ms-MY", + "icon": "my", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pfzp5jqg7iqjiquc4bku-ms-my.mp3" + }, + { + "character": "Charlotte", + "voice": "XB0fDUnXU5powFXDhCwa", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "swedish-accent", + "young" + ], + "order": 12, + "name": "Malay (Malaysia)", + "locale": "ms-MY", + "icon": "my", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xb0fdunxu5powfxdhcwa-ms-my.mp3" + }, + { + "character": "Dorothy", + "voice": "ThT5KcBeYPX3keUQqHPh", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 13, + "name": "Malay (Malaysia)", + "locale": "ms-MY", + "icon": "my", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-tht5kcbeypx3keuqqhph-ms-my.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "Sarah", + "voice": "EXAVITQu4vr4xnSDxMaL", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 99999, + "name": "Malay (Malaysia)", + "locale": "ms-MY", + "icon": "my", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-exavitqu4vr4xnsdxmal-ms-my.mp3" + }, + { + "character": "Alice", + "voice": "Xb7hH8MSUJpSbSDYk0k2", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Malay (Malaysia)", + "locale": "ms-MY", + "icon": "my", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xb7hh8msujpsbsdyk0k2-ms-my.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Elanor A", + "name": "Malay-MY", + "voice": "ms-MY-Wavenet-A", + "icon": "my", + "voiceProvider": "google", + "locale": "ms-MY", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-ms-my-wavenet-a-ms-my.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Lucy C", + "name": "Malay-MY", + "voice": "ms-MY-Wavenet-C", + "icon": "my", + "voiceProvider": "google", + "locale": "ms-MY", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-ms-my-wavenet-c-ms-my.mp3", + "approxDurationCoeficient": 16 + } + ] + }, + { + "name": "Malayalam", + "male": [ + { + "voiceProvider": "azure", + "character": "Midhun", + "name": "Malayalam (India)", + "locale": "ml-IN", + "voice": "ml-IN-MidhunNeural", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ml-in-midhunneural-ml-in.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Oscar B", + "name": "Malayalam-IN", + "voice": "ml-IN-Wavenet-B", + "icon": "in", + "voiceProvider": "google", + "locale": "ml-IN", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-ml-in-wavenet-b-ml-in.mp3", + "approxDurationCoeficient": 18 + }, + { + "character": "Miles D", + "name": "Malayalam-IN", + "voice": "ml-IN-Wavenet-D", + "icon": "in", + "voiceProvider": "google", + "locale": "ml-IN", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-ml-in-wavenet-d-ml-in.mp3", + "approxDurationCoeficient": 19 + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Sobhana", + "name": "Malayalam (India)", + "locale": "ml-IN", + "voice": "ml-IN-SobhanaNeural", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ml-in-sobhananeural-ml-in.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Elanor A", + "name": "Malayalam-IN", + "voice": "ml-IN-Wavenet-A", + "icon": "in", + "voiceProvider": "google", + "locale": "ml-IN", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-ml-in-wavenet-a-ml-in.mp3", + "approxDurationCoeficient": 18 + }, + { + "character": "Lucy C", + "name": "Malayalam-IN", + "voice": "ml-IN-Wavenet-C", + "icon": "in", + "voiceProvider": "google", + "locale": "ml-IN", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-ml-in-wavenet-c-ml-in.mp3", + "approxDurationCoeficient": 19 + } + ] + }, + { + "name": "Maltese", + "male": [ + { + "voiceProvider": "azure", + "character": "Joseph", + "name": "Maltese (Malta)", + "locale": "mt-MT", + "voice": "mt-MT-JosephNeural", + "icon": "mt", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-mt-mt-josephneural-mt-mt.mp3", + "approxDurationCoeficient": 16 + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Grace", + "name": "Maltese (Malta)", + "locale": "mt-MT", + "voice": "mt-MT-GraceNeural", + "icon": "mt", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-mt-mt-graceneural-mt-mt.mp3", + "approxDurationCoeficient": 13 + } + ] + }, + { + "name": "Marathi", + "male": [ + { + "voiceProvider": "azure", + "character": "Manohar", + "name": "Marathi (India)", + "locale": "mr-IN", + "voice": "mr-IN-ManoharNeural", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-mr-in-manoharneural-mr-in.mp3", + "approxDurationCoeficient": 13 + }, + { + "character": "Oscar B", + "name": "Marathi-IN", + "voice": "mr-IN-Wavenet-B", + "icon": "in", + "voiceProvider": "google", + "locale": "mr-IN", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-mr-in-wavenet-b-mr-in.mp3", + "approxDurationCoeficient": 21 + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Aarohi", + "name": "Marathi (India)", + "locale": "mr-IN", + "voice": "mr-IN-AarohiNeural", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-mr-in-aarohineural-mr-in.mp3", + "approxDurationCoeficient": 12 + }, + { + "character": "Elanor A", + "name": "Marathi-IN", + "voice": "mr-IN-Wavenet-A", + "icon": "in", + "voiceProvider": "google", + "locale": "mr-IN", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-mr-in-wavenet-a-mr-in.mp3", + "approxDurationCoeficient": 18 + }, + { + "character": "Lucy C", + "name": "Marathi-IN", + "voice": "mr-IN-Wavenet-C", + "icon": "in", + "voiceProvider": "google", + "locale": "mr-IN", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-mr-in-wavenet-c-mr-in.mp3", + "approxDurationCoeficient": 16 + } + ] + }, + { + "name": "Mongolian", + "male": [ + { + "voiceProvider": "azure", + "character": "Bataa", + "name": "Mongolian (Mongolia)", + "locale": "mn-MN", + "voice": "mn-MN-BataaNeural", + "icon": "mn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-mn-mn-bataaneural-mn-mn.mp3", + "approxDurationCoeficient": 19 + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Yesui", + "name": "Mongolian (Mongolia)", + "locale": "mn-MN", + "voice": "mn-MN-YesuiNeural", + "icon": "mn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-mn-mn-yesuineural-mn-mn.mp3", + "approxDurationCoeficient": 18 + } + ] + }, + { + "name": "Nepali", + "male": [ + { + "voiceProvider": "azure", + "character": "Sagar", + "name": "Nepali (Nepal)", + "locale": "ne-NP", + "voice": "ne-NP-SagarNeural", + "icon": "np", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ne-np-sagarneural-ne-np.mp3", + "approxDurationCoeficient": 15 + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Hemkala", + "name": "Nepali (Nepal)", + "locale": "ne-NP", + "voice": "ne-NP-HemkalaNeural", + "icon": "np", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ne-np-hemkalaneural-ne-np.mp3", + "approxDurationCoeficient": 14 + } + ] + }, + { + "name": "Norwegian", + "male": [ + { + "voiceProvider": "azure", + "character": "Finn", + "name": "Norwegian Bokmål (Norway)", + "locale": "nb-NO", + "voice": "nb-NO-FinnNeural", + "icon": "no", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-nb-no-finnneural-nb-no.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Oscar B", + "name": "Norwegian-NO", + "voice": "nb-NO-Wavenet-B", + "icon": "no", + "voiceProvider": "google", + "locale": "nb-NO", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-nb-no-wavenet-b-nb-no.mp3", + "approxDurationCoeficient": 6 + }, + { + "character": "Miles D", + "name": "Norwegian-NO", + "voice": "nb-NO-Wavenet-D", + "icon": "no", + "voiceProvider": "google", + "locale": "nb-NO", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-nb-no-wavenet-d-nb-no.mp3", + "approxDurationCoeficient": 15 + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Pernille", + "name": "Norwegian Bokmål (Norway)", + "locale": "nb-NO", + "voice": "nb-NO-PernilleNeural", + "icon": "no", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-nb-no-pernilleneural-nb-no.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Iselin", + "name": "Norwegian Bokmål (Norway)", + "locale": "nb-NO", + "voice": "nb-NO-IselinNeural", + "icon": "no", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-nb-no-iselinneural-nb-no.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Elanor A", + "name": "Norwegian-NO", + "voice": "nb-NO-Wavenet-A", + "icon": "no", + "voiceProvider": "google", + "locale": "nb-NO", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-nb-no-wavenet-a-nb-no.mp3", + "approxDurationCoeficient": 18 + }, + { + "character": "Lucy C", + "name": "Norwegian-NO", + "voice": "nb-NO-Wavenet-C", + "icon": "no", + "voiceProvider": "google", + "locale": "nb-NO", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-nb-no-wavenet-c-nb-no.mp3", + "approxDurationCoeficient": 18 + }, + { + "character": "Daisy E", + "name": "Norwegian-NO", + "voice": "nb-NO-Wavenet-E", + "icon": "no", + "voiceProvider": "google", + "locale": "nb-NO", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-nb-no-wavenet-e-nb-no.mp3", + "approxDurationCoeficient": 19 + } + ] + }, + { + "name": "Pashto", + "male": [ + { + "voiceProvider": "azure", + "character": "Gul Nawaz", + "name": "Pashto (Afghanistan)", + "locale": "ps-AF", + "voice": "ps-AF-GulNawazNeural", + "icon": "af", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ps-af-gulnawazneural-ps-af.mp3", + "approxDurationCoeficient": 19 + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Latifa", + "name": "Pashto (Afghanistan)", + "locale": "ps-AF", + "voice": "ps-AF-LatifaNeural", + "icon": "af", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ps-af-latifaneural-ps-af.mp3", + "approxDurationCoeficient": 15 + } + ] + }, + { + "name": "Persian", + "male": [ + { + "voiceProvider": "azure", + "character": "Farid", + "name": "Persian (Iran)", + "locale": "fa-IR", + "voice": "fa-IR-FaridNeural", + "icon": "ir", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-fa-ir-faridneural-fa-ir.mp3", + "approxDurationCoeficient": 14 + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Dilara", + "name": "Persian (Iran)", + "locale": "fa-IR", + "voice": "fa-IR-DilaraNeural", + "icon": "ir", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-fa-ir-dilaraneural-fa-ir.mp3", + "approxDurationCoeficient": 13 + } + ] + }, + { + "name": "Polish", + "male": [ + { + "voiceProvider": "azure", + "character": "Marek", + "name": "Polish (Poland)", + "locale": "pl-PL", + "voice": "pl-PL-MarekNeural", + "icon": "pl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-pl-pl-marekneural-pl-pl.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Antoni", + "voice": "ErXwobaYiN019PkySvjV", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "well-rounded", + "calm" + ], + "order": 1, + "name": "Polish (Poland)", + "locale": "pl-PL", + "icon": "pl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-erxwobayin019pkysvjv-pl-pl.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Josh", + "voice": "TxGEqnHWrfWFTfGW9XjX", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "young" + ], + "order": 2, + "name": "Polish (Poland)", + "locale": "pl-PL", + "icon": "pl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-txgeqnhwrfwftfgw9xjx-pl-pl.mp3", + "approxDurationCoeficient": 19 + }, + { + "character": "Arnold", + "voice": "VR6AewLTigWG4xSOukaG", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "crisp", + "middle-aged" + ], + "order": 3, + "name": "Polish (Poland)", + "locale": "pl-PL", + "icon": "pl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-vr6aewltigwg4xsoukag-pl-pl.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Adam", + "voice": "pNInz6obpgDQGcFmaJgB", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "middle-aged" + ], + "order": 4, + "name": "Polish (Poland)", + "locale": "pl-PL", + "icon": "pl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pninz6obpgdqgcfmajgb-pl-pl.mp3" + }, + { + "character": "Bill", + "voice": "pqHfZKP75CvOlQylNhV4", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "strong", + "middle-aged" + ], + "order": 5, + "name": "Polish (Poland)", + "locale": "pl-PL", + "icon": "pl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pqhfzkp75cvolqylnhv4-pl-pl.mp3", + "approxDurationCoeficient": 19 + }, + { + "character": "Jessie", + "voice": "t0jbNlBVZ17f02VDIeMI", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "fast-paced", + "old" + ], + "order": 6, + "name": "Polish (Poland)", + "locale": "pl-PL", + "icon": "pl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-t0jbnlbvz17f02vdiemi-pl-pl.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Michael", + "voice": "flq6f7yk4E4fJM5XTYuZ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "orutund", + "old" + ], + "order": 7, + "name": "Polish (Poland)", + "locale": "pl-PL", + "icon": "pl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-flq6f7yk4e4fjm5xtyuz-pl-pl.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Liam", + "voice": "TX3LPaxmHKxFdv7VOQHJ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "neutral", + "young" + ], + "order": 8, + "name": "Polish (Poland)", + "locale": "pl-PL", + "icon": "pl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-tx3lpaxmhkxfdv7voqhj-pl-pl.mp3", + "approxDurationCoeficient": 19 + }, + { + "character": "Harry", + "voice": "SOYHLrjzK2X1ezoPC6cr", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "anxious", + "young" + ], + "order": 9, + "name": "Polish (Poland)", + "locale": "pl-PL", + "icon": "pl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-soyhlrjzk2x1ezopc6cr-pl-pl.mp3", + "approxDurationCoeficient": 18 + }, + { + "character": "Patrick", + "voice": "ODq5zmih8GrVes37Dizd", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "shouty", + "middle-aged" + ], + "order": 10, + "name": "Polish (Poland)", + "locale": "pl-PL", + "icon": "pl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-odq5zmih8grves37dizd-pl-pl.mp3" + }, + { + "character": "Thomas", + "voice": "GBv7mTt0atIp3Br8iCZE", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 11, + "name": "Polish (Poland)", + "locale": "pl-PL", + "icon": "pl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-gbv7mtt0atip3br8icze-pl-pl.mp3", + "approxDurationCoeficient": 12 + }, + { + "character": "Drew", + "voice": "29vD33N1CtxCmqQRPOHJ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "well-rounded", + "middle-aged" + ], + "order": 12, + "name": "Polish (Poland)", + "locale": "pl-PL", + "icon": "pl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-29vd33n1ctxcmqqrpohj-pl-pl.mp3" + }, + { + "character": "Paul", + "voice": "5Q0t7uMcjvnagumLfvZi", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "narration", + "middle-aged" + ], + "order": 13, + "name": "Polish (Poland)", + "locale": "pl-PL", + "icon": "pl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-5q0t7umcjvnagumlfvzi-pl-pl.mp3" + }, + { + "character": "Callum", + "voice": "N2lVS1w4EtoT3dr4eOWO", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "masculine", + "middle-aged" + ], + "order": 14, + "name": "Polish (Poland)", + "locale": "pl-PL", + "icon": "pl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-n2lvs1w4etot3dr4eowo-pl-pl.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Giovanni", + "voice": "zcAOhNBS3c14rBihAFp1", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "italian-accent", + "young" + ], + "order": 15, + "name": "Polish (Poland)", + "locale": "pl-PL", + "icon": "pl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zcaohnbs3c14rbihafp1-pl-pl.mp3" + }, + { + "character": "Clyde", + "voice": "2EiwWnXFnvU5JabPnv8n", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "masculine", + "middle-aged" + ], + "order": 17, + "name": "Polish (Poland)", + "locale": "pl-PL", + "icon": "pl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-2eiwwnxfnvu5jabpnv8n-pl-pl.mp3" + }, + { + "character": "George", + "voice": "JBFqnCBsd6RMkjVDRZzb", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "raspy", + "narration" + ], + "order": 19, + "name": "Polish (Poland)", + "locale": "pl-PL", + "icon": "pl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-jbfqncbsd6rmkjvdrzzb-pl-pl.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "Dave", + "voice": "CYw3kZ02Hs0563khs1Fj", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "essex-accent", + "young" + ], + "order": 20, + "name": "Polish (Poland)", + "locale": "pl-PL", + "icon": "pl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-cyw3kz02hs0563khs1fj-pl-pl.mp3" + }, + { + "character": "Joseph", + "voice": "Zlb1dXrM653N07WRdFW3", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "upbeat", + "middle-aged" + ], + "order": 21, + "name": "Polish (Poland)", + "locale": "pl-PL", + "icon": "pl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zlb1dxrm653n07wrdfw3-pl-pl.mp3" + }, + { + "character": "Daniel", + "voice": "onwK4e9ZLuTAKqWW03F9", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "middle-aged" + ], + "order": 22, + "name": "Polish (Poland)", + "locale": "pl-PL", + "icon": "pl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-onwk4e9zlutakqww03f9-pl-pl.mp3" + }, + { + "character": "Charlie", + "voice": "IKne3meq5aSn9XLyUdCD", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "casual", + "middle-aged" + ], + "order": 23, + "name": "Polish (Poland)", + "locale": "pl-PL", + "icon": "pl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-ikne3meq5asn9xlyudcd-pl-pl.mp3" + }, + { + "character": "James", + "voice": "ZQe5CZNOzWyzPSCn5a3c", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "old" + ], + "order": 24, + "name": "Polish (Poland)", + "locale": "pl-PL", + "icon": "pl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zqe5cznozwyzpscn5a3c-pl-pl.mp3" + }, + { + "character": "Fin", + "voice": "D38z5RcWu1voky8WS1ja", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "sailor", + "old" + ], + "order": 25, + "name": "Polish (Poland)", + "locale": "pl-PL", + "icon": "pl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-d38z5rcwu1voky8ws1ja-pl-pl.mp3" + }, + { + "character": "Jeremy", + "voice": "bVMeCyTHy58xNoL34h3p", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "excited", + "young" + ], + "order": 26, + "name": "Polish (Poland)", + "locale": "pl-PL", + "icon": "pl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-bvmecythy58xnol34h3p-pl-pl.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Chris", + "voice": "iP95p4xoKVk53GoZ742B", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Polish (Poland)", + "locale": "pl-PL", + "icon": "pl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-ip95p4xokvk53goz742b-pl-pl.mp3" + }, + { + "character": "Brian", + "voice": "nPczCjzI2devNBz1zQrb", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Polish (Poland)", + "locale": "pl-PL", + "icon": "pl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-npczcjzi2devnbz1zqrb-pl-pl.mp3" + }, + { + "character": "Sam", + "voice": "yoZ06aMxZJJ28mfd3POQ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "fast-paced", + "young" + ], + "order": 99999, + "name": "Polish (Poland)", + "locale": "pl-PL", + "icon": "pl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-yoz06amxzjj28mfd3poq-pl-pl.mp3", + "approxDurationCoeficient": 19 + }, + { + "character": "Oscar B", + "name": "Polish-PL", + "voice": "pl-PL-Wavenet-B", + "icon": "pl", + "voiceProvider": "google", + "locale": "pl-PL", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-pl-pl-wavenet-b-pl-pl.mp3", + "approxDurationCoeficient": 18 + }, + { + "character": "Miles C", + "name": "Polish-PL", + "voice": "pl-PL-Wavenet-C", + "icon": "pl", + "voiceProvider": "google", + "locale": "pl-PL", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-pl-pl-wavenet-c-pl-pl.mp3", + "approxDurationCoeficient": 16 + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Agnieszka", + "name": "Polish (Poland)", + "locale": "pl-PL", + "voice": "pl-PL-AgnieszkaNeural", + "icon": "pl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-pl-pl-agnieszkaneural-pl-pl.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "Rachel", + "voice": "21m00Tcm4TlvDq8ikWAM", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 1, + "name": "Polish (Poland)", + "locale": "pl-PL", + "icon": "pl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-21m00tcm4tlvdq8ikwam-pl-pl.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Matilda", + "voice": "XrExE9yKIg1WjnnlVkGX", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 3, + "name": "Polish (Poland)", + "locale": "pl-PL", + "icon": "pl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xrexe9ykig1wjnnlvkgx-pl-pl.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Grace", + "voice": "oWAxZDx7w5VEj9dCyTzz", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "southern-accent", + "young" + ], + "order": 4, + "name": "Polish (Poland)", + "locale": "pl-PL", + "icon": "pl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-owaxzdx7w5vej9dcytzz-pl-pl.mp3", + "approxDurationCoeficient": 18 + }, + { + "character": "Domi", + "voice": "AZnzlk1XvdvUeBnXmlld", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "upbeat", + "young" + ], + "order": 5, + "name": "Polish (Poland)", + "locale": "pl-PL", + "icon": "pl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-aznzlk1xvdvuebnxmlld-pl-pl.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Gigi", + "voice": "jBpfuIE2acCO8z3wKNLl", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "childish", + "young" + ], + "order": 6, + "name": "Polish (Poland)", + "locale": "pl-PL", + "icon": "pl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-jbpfuie2acco8z3wknll-pl-pl.mp3" + }, + { + "character": "Serena", + "voice": "pMsXgVXv3BLzUgSXRplE", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "order": 7, + "name": "Polish (Poland)", + "locale": "pl-PL", + "icon": "pl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pmsxgvxv3blzugsxrple-pl-pl.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "Glinda", + "voice": "z9fAnlkpzviPz146aGWa", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "strong", + "middle-aged" + ], + "order": 8, + "name": "Polish (Poland)", + "locale": "pl-PL", + "icon": "pl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-z9fanlkpzvipz146agwa-pl-pl.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Mimi", + "voice": "zrHiDhphv9ZnVXBqCLjz", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "childish", + "young" + ], + "order": 9, + "name": "Polish (Poland)", + "locale": "pl-PL", + "icon": "pl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zrhidhphv9znvxbqcljz-pl-pl.mp3" + }, + { + "character": "Emily", + "voice": "LcfcDJNUP1GQjkzn1xUU", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "order": 10, + "name": "Polish (Poland)", + "locale": "pl-PL", + "icon": "pl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-lcfcdjnup1gqjkzn1xuu-pl-pl.mp3", + "approxDurationCoeficient": 11 + }, + { + "character": "Lily", + "voice": "pFZP5JQG7iQjIQuC4Bku", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "raspy", + "middle-aged" + ], + "order": 11, + "name": "Polish (Poland)", + "locale": "pl-PL", + "icon": "pl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pfzp5jqg7iqjiquc4bku-pl-pl.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "Charlotte", + "voice": "XB0fDUnXU5powFXDhCwa", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "swedish-accent", + "young" + ], + "order": 12, + "name": "Polish (Poland)", + "locale": "pl-PL", + "icon": "pl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xb0fdunxu5powfxdhcwa-pl-pl.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "Dorothy", + "voice": "ThT5KcBeYPX3keUQqHPh", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 13, + "name": "Polish (Poland)", + "locale": "pl-PL", + "icon": "pl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-tht5kcbeypx3keuqqhph-pl-pl.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Sarah", + "voice": "EXAVITQu4vr4xnSDxMaL", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 99999, + "name": "Polish (Poland)", + "locale": "pl-PL", + "icon": "pl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-exavitqu4vr4xnsdxmal-pl-pl.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Alice", + "voice": "Xb7hH8MSUJpSbSDYk0k2", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Polish (Poland)", + "locale": "pl-PL", + "icon": "pl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xb7hh8msujpsbsdyk0k2-pl-pl.mp3" + }, + { + "voiceProvider": "azure", + "character": "Zofia", + "name": "Polish (Poland)", + "locale": "pl-PL", + "voice": "pl-PL-ZofiaNeural", + "icon": "pl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-pl-pl-zofianeural-pl-pl.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Elanor A", + "name": "Polish-PL", + "voice": "pl-PL-Wavenet-A", + "icon": "pl", + "voiceProvider": "google", + "locale": "pl-PL", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-pl-pl-wavenet-a-pl-pl.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Lucy D", + "name": "Polish-PL", + "voice": "pl-PL-Wavenet-D", + "icon": "pl", + "voiceProvider": "google", + "locale": "pl-PL", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-pl-pl-wavenet-d-pl-pl.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Daisy E", + "name": "Polish-PL", + "voice": "pl-PL-Wavenet-E", + "icon": "pl", + "voiceProvider": "google", + "locale": "pl-PL", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-pl-pl-wavenet-e-pl-pl.mp3", + "approxDurationCoeficient": 17 + } + ] + }, + { + "name": "Portuguese", + "male": [ + { + "voiceProvider": "azure", + "character": "Duarte", + "name": "Portuguese (Portugal)", + "locale": "pt-PT", + "voice": "pt-PT-DuarteNeural", + "icon": "pt", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-pt-pt-duarteneural-pt-pt.mp3", + "approxDurationCoeficient": 21 + }, + { + "voiceProvider": "azure", + "character": "Valerio", + "name": "Portuguese (Brazil)", + "locale": "pt-BR", + "voice": "pt-BR-ValerioNeural", + "icon": "br", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-pt-br-valerioneural-pt-pt.mp3", + "approxDurationCoeficient": 16 + }, + { + "voiceProvider": "azure", + "character": "Nicolau", + "name": "Portuguese (Brazil)", + "locale": "pt-BR", + "voice": "pt-BR-NicolauNeural", + "icon": "br", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-pt-br-nicolauneural-pt-pt.mp3", + "approxDurationCoeficient": 16 + }, + { + "voiceProvider": "azure", + "character": "Julio", + "name": "Portuguese (Brazil)", + "locale": "pt-BR", + "voice": "pt-BR-JulioNeural", + "icon": "br", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-pt-br-julioneural-pt-pt.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Antoni", + "voice": "ErXwobaYiN019PkySvjV:eleven_multilingual_v2", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "well-rounded", + "calm" + ], + "order": 1, + "name": "Portuguese (Portugal)", + "locale": "pt-PT", + "icon": "br", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-erxwobayin019pkysvjv:eleven_multilingual_v2-pt-pt.mp3" + }, + { + "character": "Josh", + "voice": "TxGEqnHWrfWFTfGW9XjX:eleven_multilingual_v2", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "young" + ], + "order": 2, + "name": "Portuguese (Portugal)", + "locale": "pt-PT", + "icon": "br", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-txgeqnhwrfwftfgw9xjx:eleven_multilingual_v2-pt-pt.mp3" + }, + { + "character": "Arnold", + "voice": "VR6AewLTigWG4xSOukaG:eleven_multilingual_v2", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "crisp", + "middle-aged" + ], + "order": 3, + "name": "Portuguese (Portugal)", + "locale": "pt-PT", + "icon": "br", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-vr6aewltigwg4xsoukag:eleven_multilingual_v2-pt-pt.mp3" + }, + { + "character": "Adam", + "voice": "pNInz6obpgDQGcFmaJgB:eleven_multilingual_v2", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "middle-aged" + ], + "order": 4, + "name": "Portuguese (Portugal)", + "locale": "pt-PT", + "icon": "br", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pninz6obpgdqgcfmajgb:eleven_multilingual_v2-pt-pt.mp3" + }, + { + "character": "Bill", + "voice": "pqHfZKP75CvOlQylNhV4:eleven_multilingual_v2", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "strong", + "middle-aged" + ], + "order": 5, + "name": "Portuguese (Portugal)", + "locale": "pt-PT", + "icon": "br", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pqhfzkp75cvolqylnhv4:eleven_multilingual_v2-pt-pt.mp3" + }, + { + "character": "Jessie", + "voice": "t0jbNlBVZ17f02VDIeMI:eleven_multilingual_v1", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "fast-paced", + "old" + ], + "order": 6, + "name": "Portuguese (Portugal)", + "locale": "pt-PT", + "icon": "br", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-t0jbnlbvz17f02vdiemi:eleven_multilingual_v1-pt-pt.mp3" + }, + { + "character": "Michael", + "voice": "flq6f7yk4E4fJM5XTYuZ:eleven_multilingual_v1", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "orutund", + "old" + ], + "order": 7, + "name": "Portuguese (Portugal)", + "locale": "pt-PT", + "icon": "br", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-flq6f7yk4e4fjm5xtyuz:eleven_multilingual_v1-pt-pt.mp3" + }, + { + "character": "Liam", + "voice": "TX3LPaxmHKxFdv7VOQHJ:eleven_multilingual_v1", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "neutral", + "young" + ], + "order": 8, + "name": "Portuguese (Portugal)", + "locale": "pt-PT", + "icon": "br", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-tx3lpaxmhkxfdv7voqhj:eleven_multilingual_v1-pt-pt.mp3" + }, + { + "character": "Harry", + "voice": "SOYHLrjzK2X1ezoPC6cr:eleven_multilingual_v1", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "anxious", + "young" + ], + "order": 9, + "name": "Portuguese (Portugal)", + "locale": "pt-PT", + "icon": "br", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-soyhlrjzk2x1ezopc6cr:eleven_multilingual_v1-pt-pt.mp3" + }, + { + "character": "Patrick", + "voice": "ODq5zmih8GrVes37Dizd:eleven_multilingual_v1", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "shouty", + "middle-aged" + ], + "order": 10, + "name": "Portuguese (Portugal)", + "locale": "pt-PT", + "icon": "br", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-odq5zmih8grves37dizd:eleven_multilingual_v1-pt-pt.mp3" + }, + { + "character": "Thomas", + "voice": "GBv7mTt0atIp3Br8iCZE:eleven_multilingual_v1", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 11, + "name": "Portuguese (Portugal)", + "locale": "pt-PT", + "icon": "br", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-gbv7mtt0atip3br8icze:eleven_multilingual_v1-pt-pt.mp3" + }, + { + "character": "Drew", + "voice": "29vD33N1CtxCmqQRPOHJ:eleven_multilingual_v2", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "well-rounded", + "middle-aged" + ], + "order": 12, + "name": "Portuguese (Portugal)", + "locale": "pt-PT", + "icon": "br", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-29vd33n1ctxcmqqrpohj:eleven_multilingual_v2-pt-pt.mp3" + }, + { + "character": "Paul", + "voice": "5Q0t7uMcjvnagumLfvZi:eleven_multilingual_v2", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "narration", + "middle-aged" + ], + "order": 13, + "name": "Portuguese (Portugal)", + "locale": "pt-PT", + "icon": "br", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-5q0t7umcjvnagumlfvzi:eleven_multilingual_v2-pt-pt.mp3" + }, + { + "character": "Callum", + "voice": "N2lVS1w4EtoT3dr4eOWO:eleven_multilingual_v1", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "masculine", + "middle-aged" + ], + "order": 14, + "name": "Portuguese (Portugal)", + "locale": "pt-PT", + "icon": "br", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-n2lvs1w4etot3dr4eowo:eleven_multilingual_v1-pt-pt.mp3" + }, + { + "character": "Giovanni", + "voice": "zcAOhNBS3c14rBihAFp1:eleven_multilingual_v1", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "italian-accent", + "young" + ], + "order": 15, + "name": "Portuguese (Portugal)", + "locale": "pt-PT", + "icon": "br", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zcaohnbs3c14rbihafp1:eleven_multilingual_v1-pt-pt.mp3" + }, + { + "character": "Clyde", + "voice": "2EiwWnXFnvU5JabPnv8n:eleven_multilingual_v1", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "masculine", + "middle-aged" + ], + "order": 17, + "name": "Portuguese (Portugal)", + "locale": "pt-PT", + "icon": "br", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-2eiwwnxfnvu5jabpnv8n:eleven_multilingual_v1-pt-pt.mp3" + }, + { + "character": "George", + "voice": "JBFqnCBsd6RMkjVDRZzb:eleven_multilingual_v2", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "raspy", + "narration" + ], + "order": 19, + "name": "Portuguese (Portugal)", + "locale": "pt-PT", + "icon": "br", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-jbfqncbsd6rmkjvdrzzb:eleven_multilingual_v2-pt-pt.mp3" + }, + { + "character": "Dave", + "voice": "CYw3kZ02Hs0563khs1Fj:eleven_multilingual_v1", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "essex-accent", + "young" + ], + "order": 20, + "name": "Portuguese (Portugal)", + "locale": "pt-PT", + "icon": "br", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-cyw3kz02hs0563khs1fj:eleven_multilingual_v1-pt-pt.mp3" + }, + { + "character": "Joseph", + "voice": "Zlb1dXrM653N07WRdFW3:eleven_multilingual_v1", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "upbeat", + "middle-aged" + ], + "order": 21, + "name": "Portuguese (Portugal)", + "locale": "pt-PT", + "icon": "br", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zlb1dxrm653n07wrdfw3:eleven_multilingual_v1-pt-pt.mp3" + }, + { + "character": "Daniel", + "voice": "onwK4e9ZLuTAKqWW03F9:eleven_multilingual_v1", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "middle-aged" + ], + "order": 22, + "name": "Portuguese (Portugal)", + "locale": "pt-PT", + "icon": "br", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-onwk4e9zlutakqww03f9:eleven_multilingual_v1-pt-pt.mp3" + }, + { + "character": "Charlie", + "voice": "IKne3meq5aSn9XLyUdCD:eleven_multilingual_v1", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "casual", + "middle-aged" + ], + "order": 23, + "name": "Portuguese (Portugal)", + "locale": "pt-PT", + "icon": "br", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-ikne3meq5asn9xlyudcd:eleven_multilingual_v1-pt-pt.mp3" + }, + { + "character": "James", + "voice": "ZQe5CZNOzWyzPSCn5a3c:eleven_multilingual_v1", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "old" + ], + "order": 24, + "name": "Portuguese (Portugal)", + "locale": "pt-PT", + "icon": "br", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zqe5cznozwyzpscn5a3c:eleven_multilingual_v1-pt-pt.mp3" + }, + { + "character": "Fin", + "voice": "D38z5RcWu1voky8WS1ja:eleven_multilingual_v1", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "sailor", + "old" + ], + "order": 25, + "name": "Portuguese (Portugal)", + "locale": "pt-PT", + "icon": "br", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-d38z5rcwu1voky8ws1ja:eleven_multilingual_v1-pt-pt.mp3" + }, + { + "character": "Jeremy", + "voice": "bVMeCyTHy58xNoL34h3p:eleven_multilingual_v1", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "excited", + "young" + ], + "order": 26, + "name": "Portuguese (Portugal)", + "locale": "pt-PT", + "icon": "br", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-bvmecythy58xnol34h3p:eleven_multilingual_v1-pt-pt.mp3" + }, + { + "character": "Chris", + "voice": "iP95p4xoKVk53GoZ742B:eleven_multilingual_v1", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Portuguese (Portugal)", + "locale": "pt-PT", + "icon": "br", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-ip95p4xokvk53goz742b:eleven_multilingual_v1-pt-pt.mp3" + }, + { + "character": "Brian", + "voice": "nPczCjzI2devNBz1zQrb:eleven_multilingual_v1", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Portuguese (Portugal)", + "locale": "pt-PT", + "icon": "br", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-npczcjzi2devnbz1zqrb:eleven_multilingual_v1-pt-pt.mp3" + }, + { + "character": "Sam", + "voice": "yoZ06aMxZJJ28mfd3POQ:eleven_multilingual_v1", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "fast-paced", + "young" + ], + "order": 99999, + "name": "Portuguese (Portugal)", + "locale": "pt-PT", + "icon": "br", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-yoz06amxzjj28mfd3poq:eleven_multilingual_v1-pt-pt.mp3" + }, + { + "voiceProvider": "azure", + "character": "Antonio", + "name": "Portuguese (Brazil)", + "locale": "pt-BR", + "voice": "pt-BR-AntonioNeural", + "icon": "br", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-pt-br-antonioneural-pt-pt.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Donato", + "name": "Portuguese (Brazil)", + "locale": "pt-BR", + "voice": "pt-BR-DonatoNeural", + "icon": "br", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-pt-br-donatoneural-pt-pt.mp3", + "approxDurationCoeficient": 19 + }, + { + "voiceProvider": "azure", + "character": "Fabio", + "name": "Portuguese (Brazil)", + "locale": "pt-BR", + "voice": "pt-BR-FabioNeural", + "icon": "br", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-pt-br-fabioneural-pt-pt.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Humberto", + "name": "Portuguese (Brazil)", + "locale": "pt-BR", + "voice": "pt-BR-HumbertoNeural", + "icon": "br", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-pt-br-humbertoneural-pt-pt.mp3", + "approxDurationCoeficient": 18 + }, + { + "character": "Oscar B", + "name": "Portuguese-BR", + "voice": "pt-BR-Neural2-B", + "icon": "br", + "voiceProvider": "google", + "locale": "pt-BR", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-pt-br-neural2-b-pt-pt.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Miles B", + "name": "Portuguese-PT", + "voice": "pt-PT-Wavenet-B", + "icon": "pt", + "voiceProvider": "google", + "locale": "pt-PT", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-pt-pt-wavenet-b-pt-pt.mp3", + "approxDurationCoeficient": 18 + }, + { + "character": "James C", + "name": "Portuguese-PT", + "voice": "pt-PT-Wavenet-C", + "icon": "pt", + "voiceProvider": "google", + "locale": "pt-PT", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-pt-pt-wavenet-c-pt-pt.mp3", + "approxDurationCoeficient": 18 + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Fernanda", + "name": "Portuguese (Portugal)", + "locale": "pt-PT", + "voice": "pt-PT-FernandaNeural", + "icon": "pt", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-pt-pt-fernandaneural-pt-pt.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Raquel", + "name": "Portuguese (Portugal)", + "locale": "pt-PT", + "voice": "pt-PT-RaquelNeural", + "icon": "pt", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-pt-pt-raquelneural-pt-pt.mp3", + "approxDurationCoeficient": 16 + }, + { + "voiceProvider": "azure", + "character": "Francisca", + "name": "Portuguese (Brazil)", + "locale": "pt-BR", + "voice": "pt-BR-FranciscaNeural", + "icon": "br", + "styleList": [ + "calm" + ], + "stylePreview": { + "calm": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-pt-br-franciscaneural:calm-pt-pt.mp3" + }, + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-pt-br-franciscaneural-pt-pt.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Yara", + "name": "Portuguese (Brazil)", + "locale": "pt-BR", + "voice": "pt-BR-YaraNeural", + "icon": "br", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-pt-br-yaraneural-pt-pt.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Rachel", + "voice": "21m00Tcm4TlvDq8ikWAM:eleven_multilingual_v2", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 1, + "name": "Portuguese (Portugal)", + "locale": "pt-PT", + "icon": "br", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-21m00tcm4tlvdq8ikwam:eleven_multilingual_v2-pt-pt.mp3" + }, + { + "character": "Lily", + "voice": "pFZP5JQG7iQjIQuC4Bku:eleven_multilingual_v2", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "raspy", + "middle-aged" + ], + "order": 11, + "name": "Portuguese (Portugal)", + "locale": "pt-PT", + "icon": "br", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pfzp5jqg7iqjiquc4bku:eleven_multilingual_v2-pt-pt.mp3" + }, + { + "character": "Domi", + "voice": "AZnzlk1XvdvUeBnXmlld:eleven_multilingual_v2", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "upbeat", + "young" + ], + "order": 5, + "name": "Portuguese (Portugal)", + "locale": "pt-PT", + "icon": "br", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-aznzlk1xvdvuebnxmlld:eleven_multilingual_v2-pt-pt.mp3" + }, + { + "character": "Grace", + "voice": "oWAxZDx7w5VEj9dCyTzz:eleven_multilingual_v1", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "southern-accent", + "young" + ], + "order": 4, + "name": "Portuguese (Portugal)", + "locale": "pt-PT", + "icon": "br", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-owaxzdx7w5vej9dcytzz:eleven_multilingual_v1-pt-pt.mp3" + }, + { + "character": "Gigi", + "voice": "jBpfuIE2acCO8z3wKNLl:eleven_multilingual_v1", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "childish", + "young" + ], + "order": 6, + "name": "Portuguese (Portugal)", + "locale": "pt-PT", + "icon": "br", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-jbpfuie2acco8z3wknll:eleven_multilingual_v1-pt-pt.mp3" + }, + { + "character": "Serena", + "voice": "pMsXgVXv3BLzUgSXRplE:eleven_multilingual_v1", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "order": 7, + "name": "Portuguese (Portugal)", + "locale": "pt-PT", + "icon": "br", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pmsxgvxv3blzugsxrple:eleven_multilingual_v1-pt-pt.mp3" + }, + { + "character": "Glinda", + "voice": "z9fAnlkpzviPz146aGWa:eleven_multilingual_v1", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "strong", + "middle-aged" + ], + "order": 8, + "name": "Portuguese (Portugal)", + "locale": "pt-PT", + "icon": "br", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-z9fanlkpzvipz146agwa:eleven_multilingual_v1-pt-pt.mp3" + }, + { + "character": "Mimi", + "voice": "zrHiDhphv9ZnVXBqCLjz:eleven_multilingual_v1", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "childish", + "young" + ], + "order": 9, + "name": "Portuguese (Portugal)", + "locale": "pt-PT", + "icon": "br", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zrhidhphv9znvxbqcljz:eleven_multilingual_v1-pt-pt.mp3" + }, + { + "character": "Emily", + "voice": "LcfcDJNUP1GQjkzn1xUU:eleven_multilingual_v1", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "order": 10, + "name": "Portuguese (Portugal)", + "locale": "pt-PT", + "icon": "br", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-lcfcdjnup1gqjkzn1xuu:eleven_multilingual_v1-pt-pt.mp3" + }, + { + "character": "Matilda", + "voice": "XrExE9yKIg1WjnnlVkGX:eleven_multilingual_v1", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 3, + "name": "Portuguese (Portugal)", + "locale": "pt-PT", + "icon": "br", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xrexe9ykig1wjnnlvkgx:eleven_multilingual_v1-pt-pt.mp3" + }, + { + "character": "Charlotte", + "voice": "XB0fDUnXU5powFXDhCwa:eleven_multilingual_v1", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "swedish-accent", + "young" + ], + "order": 12, + "name": "Portuguese (Portugal)", + "locale": "pt-PT", + "icon": "br", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xb0fdunxu5powfxdhcwa:eleven_multilingual_v1-pt-pt.mp3" + }, + { + "character": "Dorothy", + "voice": "ThT5KcBeYPX3keUQqHPh:eleven_multilingual_v1", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 13, + "name": "Portuguese (Portugal)", + "locale": "pt-PT", + "icon": "br", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-tht5kcbeypx3keuqqhph:eleven_multilingual_v1-pt-pt.mp3" + }, + { + "character": "Sarah", + "voice": "EXAVITQu4vr4xnSDxMaL:eleven_multilingual_v1", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 99999, + "name": "Portuguese (Portugal)", + "locale": "pt-PT", + "icon": "br", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-exavitqu4vr4xnsdxmal:eleven_multilingual_v1-pt-pt.mp3" + }, + { + "character": "Alice", + "voice": "Xb7hH8MSUJpSbSDYk0k2:eleven_multilingual_v1", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Portuguese (Portugal)", + "locale": "pt-PT", + "icon": "br", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xb7hh8msujpsbsdyk0k2:eleven_multilingual_v1-pt-pt.mp3" + }, + { + "voiceProvider": "azure", + "character": "Brenda", + "name": "Portuguese (Brazil)", + "locale": "pt-BR", + "voice": "pt-BR-BrendaNeural", + "icon": "br", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-pt-br-brendaneural-pt-pt.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Elza", + "name": "Portuguese (Brazil)", + "locale": "pt-BR", + "voice": "pt-BR-ElzaNeural", + "icon": "br", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-pt-br-elzaneural-pt-pt.mp3", + "approxDurationCoeficient": 16 + }, + { + "voiceProvider": "azure", + "character": "Giovanna", + "name": "Portuguese (Brazil)", + "locale": "pt-BR", + "voice": "pt-BR-GiovannaNeural", + "icon": "br", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-pt-br-giovannaneural-pt-pt.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Leila", + "name": "Portuguese (Brazil)", + "locale": "pt-BR", + "voice": "pt-BR-LeilaNeural", + "icon": "br", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-pt-br-leilaneural-pt-pt.mp3", + "approxDurationCoeficient": 19 + }, + { + "voiceProvider": "azure", + "character": "Leticia", + "name": "Portuguese (Brazil)", + "locale": "pt-BR", + "voice": "pt-BR-LeticiaNeural", + "icon": "br", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-pt-br-leticianeural-pt-pt.mp3", + "approxDurationCoeficient": 16 + }, + { + "voiceProvider": "azure", + "character": "Manuela", + "name": "Portuguese (Brazil)", + "locale": "pt-BR", + "voice": "pt-BR-ManuelaNeural", + "icon": "br", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-pt-br-manuelaneural-pt-pt.mp3", + "approxDurationCoeficient": 16 + }, + { + "voiceProvider": "azure", + "character": "Thalita", + "name": "Portuguese (Brazil)", + "locale": "pt-BR", + "voice": "pt-BR-ThalitaNeural", + "icon": "br", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-pt-br-thalitaneural-pt-pt.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Elanor A", + "name": "Portuguese-BR", + "voice": "pt-BR-Neural2-A", + "icon": "br", + "voiceProvider": "google", + "locale": "pt-BR", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-pt-br-neural2-a-pt-pt.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "Lucy C", + "name": "Portuguese-BR", + "voice": "pt-BR-Neural2-C", + "icon": "br", + "voiceProvider": "google", + "locale": "pt-BR", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-pt-br-neural2-c-pt-pt.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "Daisy A", + "name": "Portuguese-PT", + "voice": "pt-PT-Wavenet-A", + "icon": "pt", + "voiceProvider": "google", + "locale": "pt-PT", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-pt-pt-wavenet-a-pt-pt.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Scarlett D", + "name": "Portuguese-PT", + "voice": "pt-PT-Wavenet-D", + "icon": "pt", + "voiceProvider": "google", + "locale": "pt-PT", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-pt-pt-wavenet-d-pt-pt.mp3", + "approxDurationCoeficient": 17 + } + ] + }, + { + "name": "Punjabi", + "male": [ + { + "character": "Oscar B", + "name": "Punjabi-IN", + "voice": "pa-IN-Wavenet-B", + "icon": "in", + "voiceProvider": "google", + "locale": "pa-IN", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-pa-in-wavenet-b-pa-in.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "Miles D", + "name": "Punjabi-IN", + "voice": "pa-IN-Wavenet-D", + "icon": "in", + "voiceProvider": "google", + "locale": "pa-IN", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-pa-in-wavenet-d-pa-in.mp3", + "approxDurationCoeficient": 14 + } + ], + "female": [ + { + "character": "Elanor A", + "name": "Punjabi-IN", + "voice": "pa-IN-Wavenet-A", + "icon": "in", + "voiceProvider": "google", + "locale": "pa-IN", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-pa-in-wavenet-a-pa-in.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "Lucy C", + "name": "Punjabi-IN", + "voice": "pa-IN-Wavenet-C", + "icon": "in", + "voiceProvider": "google", + "locale": "pa-IN", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-pa-in-wavenet-c-pa-in.mp3", + "approxDurationCoeficient": 14 + } + ] + }, + { + "name": "Romanian", + "male": [ + { + "voiceProvider": "azure", + "character": "Emil", + "name": "Romanian (Romania)", + "locale": "ro-RO", + "voice": "ro-RO-EmilNeural", + "icon": "ro", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ro-ro-emilneural-ro-ro.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Antoni", + "voice": "ErXwobaYiN019PkySvjV", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "well-rounded", + "calm" + ], + "order": 1, + "name": "Romanian (Romania)", + "locale": "ro-RO", + "icon": "ro", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-erxwobayin019pkysvjv-ro-ro.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "Josh", + "voice": "TxGEqnHWrfWFTfGW9XjX", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "young" + ], + "order": 2, + "name": "Romanian (Romania)", + "locale": "ro-RO", + "icon": "ro", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-txgeqnhwrfwftfgw9xjx-ro-ro.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Arnold", + "voice": "VR6AewLTigWG4xSOukaG", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "crisp", + "middle-aged" + ], + "order": 3, + "name": "Romanian (Romania)", + "locale": "ro-RO", + "icon": "ro", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-vr6aewltigwg4xsoukag-ro-ro.mp3" + }, + { + "character": "Adam", + "voice": "pNInz6obpgDQGcFmaJgB", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "middle-aged" + ], + "order": 4, + "name": "Romanian (Romania)", + "locale": "ro-RO", + "icon": "ro", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pninz6obpgdqgcfmajgb-ro-ro.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "Bill", + "voice": "pqHfZKP75CvOlQylNhV4", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "strong", + "middle-aged" + ], + "order": 5, + "name": "Romanian (Romania)", + "locale": "ro-RO", + "icon": "ro", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pqhfzkp75cvolqylnhv4-ro-ro.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "Jessie", + "voice": "t0jbNlBVZ17f02VDIeMI", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "fast-paced", + "old" + ], + "order": 6, + "name": "Romanian (Romania)", + "locale": "ro-RO", + "icon": "ro", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-t0jbnlbvz17f02vdiemi-ro-ro.mp3" + }, + { + "character": "Michael", + "voice": "flq6f7yk4E4fJM5XTYuZ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "orutund", + "old" + ], + "order": 7, + "name": "Romanian (Romania)", + "locale": "ro-RO", + "icon": "ro", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-flq6f7yk4e4fjm5xtyuz-ro-ro.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "Liam", + "voice": "TX3LPaxmHKxFdv7VOQHJ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "neutral", + "young" + ], + "order": 8, + "name": "Romanian (Romania)", + "locale": "ro-RO", + "icon": "ro", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-tx3lpaxmhkxfdv7voqhj-ro-ro.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Harry", + "voice": "SOYHLrjzK2X1ezoPC6cr", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "anxious", + "young" + ], + "order": 9, + "name": "Romanian (Romania)", + "locale": "ro-RO", + "icon": "ro", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-soyhlrjzk2x1ezopc6cr-ro-ro.mp3" + }, + { + "character": "Patrick", + "voice": "ODq5zmih8GrVes37Dizd", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "shouty", + "middle-aged" + ], + "order": 10, + "name": "Romanian (Romania)", + "locale": "ro-RO", + "icon": "ro", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-odq5zmih8grves37dizd-ro-ro.mp3" + }, + { + "character": "Thomas", + "voice": "GBv7mTt0atIp3Br8iCZE", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 11, + "name": "Romanian (Romania)", + "locale": "ro-RO", + "icon": "ro", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-gbv7mtt0atip3br8icze-ro-ro.mp3" + }, + { + "character": "Drew", + "voice": "29vD33N1CtxCmqQRPOHJ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "well-rounded", + "middle-aged" + ], + "order": 12, + "name": "Romanian (Romania)", + "locale": "ro-RO", + "icon": "ro", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-29vd33n1ctxcmqqrpohj-ro-ro.mp3" + }, + { + "character": "Paul", + "voice": "5Q0t7uMcjvnagumLfvZi", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "narration", + "middle-aged" + ], + "order": 13, + "name": "Romanian (Romania)", + "locale": "ro-RO", + "icon": "ro", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-5q0t7umcjvnagumlfvzi-ro-ro.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "Callum", + "voice": "N2lVS1w4EtoT3dr4eOWO", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "masculine", + "middle-aged" + ], + "order": 14, + "name": "Romanian (Romania)", + "locale": "ro-RO", + "icon": "ro", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-n2lvs1w4etot3dr4eowo-ro-ro.mp3" + }, + { + "character": "Giovanni", + "voice": "zcAOhNBS3c14rBihAFp1", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "italian-accent", + "young" + ], + "order": 15, + "name": "Romanian (Romania)", + "locale": "ro-RO", + "icon": "ro", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zcaohnbs3c14rbihafp1-ro-ro.mp3" + }, + { + "character": "Clyde", + "voice": "2EiwWnXFnvU5JabPnv8n", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "masculine", + "middle-aged" + ], + "order": 17, + "name": "Romanian (Romania)", + "locale": "ro-RO", + "icon": "ro", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-2eiwwnxfnvu5jabpnv8n-ro-ro.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "George", + "voice": "JBFqnCBsd6RMkjVDRZzb", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "raspy", + "narration" + ], + "order": 19, + "name": "Romanian (Romania)", + "locale": "ro-RO", + "icon": "ro", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-jbfqncbsd6rmkjvdrzzb-ro-ro.mp3" + }, + { + "character": "Dave", + "voice": "CYw3kZ02Hs0563khs1Fj", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "essex-accent", + "young" + ], + "order": 20, + "name": "Romanian (Romania)", + "locale": "ro-RO", + "icon": "ro", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-cyw3kz02hs0563khs1fj-ro-ro.mp3" + }, + { + "character": "Joseph", + "voice": "Zlb1dXrM653N07WRdFW3", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "upbeat", + "middle-aged" + ], + "order": 21, + "name": "Romanian (Romania)", + "locale": "ro-RO", + "icon": "ro", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zlb1dxrm653n07wrdfw3-ro-ro.mp3" + }, + { + "character": "Daniel", + "voice": "onwK4e9ZLuTAKqWW03F9", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "middle-aged" + ], + "order": 22, + "name": "Romanian (Romania)", + "locale": "ro-RO", + "icon": "ro", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-onwk4e9zlutakqww03f9-ro-ro.mp3" + }, + { + "character": "Charlie", + "voice": "IKne3meq5aSn9XLyUdCD", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "casual", + "middle-aged" + ], + "order": 23, + "name": "Romanian (Romania)", + "locale": "ro-RO", + "icon": "ro", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-ikne3meq5asn9xlyudcd-ro-ro.mp3", + "approxDurationCoeficient": 12 + }, + { + "character": "James", + "voice": "ZQe5CZNOzWyzPSCn5a3c", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "old" + ], + "order": 24, + "name": "Romanian (Romania)", + "locale": "ro-RO", + "icon": "ro", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zqe5cznozwyzpscn5a3c-ro-ro.mp3" + }, + { + "character": "Fin", + "voice": "D38z5RcWu1voky8WS1ja", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "sailor", + "old" + ], + "order": 25, + "name": "Romanian (Romania)", + "locale": "ro-RO", + "icon": "ro", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-d38z5rcwu1voky8ws1ja-ro-ro.mp3" + }, + { + "character": "Jeremy", + "voice": "bVMeCyTHy58xNoL34h3p", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "excited", + "young" + ], + "order": 26, + "name": "Romanian (Romania)", + "locale": "ro-RO", + "icon": "ro", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-bvmecythy58xnol34h3p-ro-ro.mp3" + }, + { + "character": "Chris", + "voice": "iP95p4xoKVk53GoZ742B", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Romanian (Romania)", + "locale": "ro-RO", + "icon": "ro", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-ip95p4xokvk53goz742b-ro-ro.mp3" + }, + { + "character": "Brian", + "voice": "nPczCjzI2devNBz1zQrb", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Romanian (Romania)", + "locale": "ro-RO", + "icon": "ro", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-npczcjzi2devnbz1zqrb-ro-ro.mp3" + }, + { + "character": "Sam", + "voice": "yoZ06aMxZJJ28mfd3POQ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "fast-paced", + "young" + ], + "order": 99999, + "name": "Romanian (Romania)", + "locale": "ro-RO", + "icon": "ro", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-yoz06amxzjj28mfd3poq-ro-ro.mp3" + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Alina", + "name": "Romanian (Romania)", + "locale": "ro-RO", + "voice": "ro-RO-AlinaNeural", + "icon": "ro", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ro-ro-alinaneural-ro-ro.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Rachel", + "voice": "21m00Tcm4TlvDq8ikWAM", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 1, + "name": "Romanian (Romania)", + "locale": "ro-RO", + "icon": "ro", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-21m00tcm4tlvdq8ikwam-ro-ro.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Matilda", + "voice": "XrExE9yKIg1WjnnlVkGX", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 3, + "name": "Romanian (Romania)", + "locale": "ro-RO", + "icon": "ro", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xrexe9ykig1wjnnlvkgx-ro-ro.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Grace", + "voice": "oWAxZDx7w5VEj9dCyTzz", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "southern-accent", + "young" + ], + "order": 4, + "name": "Romanian (Romania)", + "locale": "ro-RO", + "icon": "ro", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-owaxzdx7w5vej9dcytzz-ro-ro.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Domi", + "voice": "AZnzlk1XvdvUeBnXmlld", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "upbeat", + "young" + ], + "order": 5, + "name": "Romanian (Romania)", + "locale": "ro-RO", + "icon": "ro", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-aznzlk1xvdvuebnxmlld-ro-ro.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Gigi", + "voice": "jBpfuIE2acCO8z3wKNLl", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "childish", + "young" + ], + "order": 6, + "name": "Romanian (Romania)", + "locale": "ro-RO", + "icon": "ro", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-jbpfuie2acco8z3wknll-ro-ro.mp3" + }, + { + "character": "Serena", + "voice": "pMsXgVXv3BLzUgSXRplE", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "order": 7, + "name": "Romanian (Romania)", + "locale": "ro-RO", + "icon": "ro", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pmsxgvxv3blzugsxrple-ro-ro.mp3" + }, + { + "character": "Glinda", + "voice": "z9fAnlkpzviPz146aGWa", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "strong", + "middle-aged" + ], + "order": 8, + "name": "Romanian (Romania)", + "locale": "ro-RO", + "icon": "ro", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-z9fanlkpzvipz146agwa-ro-ro.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "Mimi", + "voice": "zrHiDhphv9ZnVXBqCLjz", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "childish", + "young" + ], + "order": 9, + "name": "Romanian (Romania)", + "locale": "ro-RO", + "icon": "ro", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zrhidhphv9znvxbqcljz-ro-ro.mp3" + }, + { + "character": "Emily", + "voice": "LcfcDJNUP1GQjkzn1xUU", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "order": 10, + "name": "Romanian (Romania)", + "locale": "ro-RO", + "icon": "ro", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-lcfcdjnup1gqjkzn1xuu-ro-ro.mp3" + }, + { + "character": "Lily", + "voice": "pFZP5JQG7iQjIQuC4Bku", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "raspy", + "middle-aged" + ], + "order": 11, + "name": "Romanian (Romania)", + "locale": "ro-RO", + "icon": "ro", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pfzp5jqg7iqjiquc4bku-ro-ro.mp3" + }, + { + "character": "Charlotte", + "voice": "XB0fDUnXU5powFXDhCwa", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "swedish-accent", + "young" + ], + "order": 12, + "name": "Romanian (Romania)", + "locale": "ro-RO", + "icon": "ro", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xb0fdunxu5powfxdhcwa-ro-ro.mp3" + }, + { + "character": "Dorothy", + "voice": "ThT5KcBeYPX3keUQqHPh", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 13, + "name": "Romanian (Romania)", + "locale": "ro-RO", + "icon": "ro", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-tht5kcbeypx3keuqqhph-ro-ro.mp3" + }, + { + "character": "Sarah", + "voice": "EXAVITQu4vr4xnSDxMaL", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 99999, + "name": "Romanian (Romania)", + "locale": "ro-RO", + "icon": "ro", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-exavitqu4vr4xnsdxmal-ro-ro.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Alice", + "voice": "Xb7hH8MSUJpSbSDYk0k2", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Romanian (Romania)", + "locale": "ro-RO", + "icon": "ro", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xb7hh8msujpsbsdyk0k2-ro-ro.mp3" + }, + { + "character": "Elanor A", + "name": "Romanian-RO", + "voice": "ro-RO-Wavenet-A", + "icon": "ro", + "voiceProvider": "google", + "locale": "ro-RO", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-ro-ro-wavenet-a-ro-ro.mp3", + "approxDurationCoeficient": 14 + } + ] + }, + { + "name": "Russian", + "male": [ + { + "voiceProvider": "azure", + "character": "Dmitry", + "name": "Russian (Russia)", + "locale": "ru-RU", + "voice": "ru-RU-DmitryNeural", + "icon": "ru", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ru-ru-dmitryneural-ru-ru.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Oscar B", + "name": "Russian-RU", + "voice": "ru-RU-Wavenet-B", + "icon": "ru", + "voiceProvider": "google", + "locale": "ru-RU", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-ru-ru-wavenet-b-ru-ru.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Miles D", + "name": "Russian-RU", + "voice": "ru-RU-Wavenet-D", + "icon": "ru", + "voiceProvider": "google", + "locale": "ru-RU", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-ru-ru-wavenet-d-ru-ru.mp3", + "approxDurationCoeficient": 16 + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Svetlana", + "name": "Russian (Russia)", + "locale": "ru-RU", + "voice": "ru-RU-SvetlanaNeural", + "icon": "ru", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ru-ru-svetlananeural-ru-ru.mp3", + "approxDurationCoeficient": 15 + }, + { + "voiceProvider": "azure", + "character": "Dariya", + "name": "Russian (Russia)", + "locale": "ru-RU", + "voice": "ru-RU-DariyaNeural", + "icon": "ru", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ru-ru-dariyaneural-ru-ru.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Elanor A", + "name": "Russian-RU", + "voice": "ru-RU-Wavenet-A", + "icon": "ru", + "voiceProvider": "google", + "locale": "ru-RU", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-ru-ru-wavenet-a-ru-ru.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Lucy C", + "name": "Russian-RU", + "voice": "ru-RU-Wavenet-C", + "icon": "ru", + "voiceProvider": "google", + "locale": "ru-RU", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-ru-ru-wavenet-c-ru-ru.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Daisy E", + "name": "Russian-RU", + "voice": "ru-RU-Wavenet-E", + "icon": "ru", + "voiceProvider": "google", + "locale": "ru-RU", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-ru-ru-wavenet-e-ru-ru.mp3", + "approxDurationCoeficient": 16 + } + ] + }, + { + "name": "Serbian", + "male": [ + { + "voiceProvider": "azure", + "character": "Nicholas", + "name": "Serbian (Latin, Serbia)", + "locale": "sr-Latn-RS", + "voice": "sr-Latn-RS-NicholasNeural", + "icon": "rs", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-sr-latn-rs-nicholasneural-sr-latn-rs.mp3" + }, + { + "voiceProvider": "azure", + "character": "Nicholas", + "name": "Serbian (Cyrillic, Serbia)", + "locale": "sr-RS", + "voice": "sr-RS-NicholasNeural", + "icon": "rs", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-sr-rs-nicholasneural-sr-latn-rs.mp3", + "approxDurationCoeficient": 16 + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Sophie", + "name": "Serbian (Latin, Serbia)", + "locale": "sr-Latn-RS", + "voice": "sr-Latn-RS-SophieNeural", + "icon": "rs", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-sr-latn-rs-sophieneural-sr-latn-rs.mp3" + }, + { + "voiceProvider": "azure", + "character": "Sophie", + "name": "Serbian (Cyrillic, Serbia)", + "locale": "sr-RS", + "voice": "sr-RS-SophieNeural", + "icon": "rs", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-sr-rs-sophieneural-sr-latn-rs.mp3", + "approxDurationCoeficient": 16 + } + ] + }, + { + "name": "Sinhala", + "male": [ + { + "voiceProvider": "azure", + "character": "Sameera", + "name": "Sinhala (Sri Lanka)", + "locale": "si-LK", + "voice": "si-LK-SameeraNeural", + "icon": "lk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-si-lk-sameeraneural-si-lk.mp3", + "approxDurationCoeficient": 18 + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Thilini", + "name": "Sinhala (Sri Lanka)", + "locale": "si-LK", + "voice": "si-LK-ThiliniNeural", + "icon": "lk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-si-lk-thilinineural-si-lk.mp3", + "approxDurationCoeficient": 16 + } + ] + }, + { + "name": "Slovak", + "male": [ + { + "voiceProvider": "azure", + "character": "Lukas", + "name": "Slovak (Slovakia)", + "locale": "sk-SK", + "voice": "sk-SK-LukasNeural", + "icon": "sk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-sk-sk-lukasneural-sk-sk.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Antoni", + "voice": "ErXwobaYiN019PkySvjV", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "well-rounded", + "calm" + ], + "order": 1, + "name": "Slovak (Slovakia)", + "locale": "sk-SK", + "icon": "sk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-erxwobayin019pkysvjv-sk-sk.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Josh", + "voice": "TxGEqnHWrfWFTfGW9XjX", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "young" + ], + "order": 2, + "name": "Slovak (Slovakia)", + "locale": "sk-SK", + "icon": "sk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-txgeqnhwrfwftfgw9xjx-sk-sk.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Arnold", + "voice": "VR6AewLTigWG4xSOukaG", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "crisp", + "middle-aged" + ], + "order": 3, + "name": "Slovak (Slovakia)", + "locale": "sk-SK", + "icon": "sk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-vr6aewltigwg4xsoukag-sk-sk.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Adam", + "voice": "pNInz6obpgDQGcFmaJgB", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "middle-aged" + ], + "order": 4, + "name": "Slovak (Slovakia)", + "locale": "sk-SK", + "icon": "sk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pninz6obpgdqgcfmajgb-sk-sk.mp3" + }, + { + "character": "Bill", + "voice": "pqHfZKP75CvOlQylNhV4", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "strong", + "middle-aged" + ], + "order": 5, + "name": "Slovak (Slovakia)", + "locale": "sk-SK", + "icon": "sk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pqhfzkp75cvolqylnhv4-sk-sk.mp3" + }, + { + "character": "Jessie", + "voice": "t0jbNlBVZ17f02VDIeMI", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "fast-paced", + "old" + ], + "order": 6, + "name": "Slovak (Slovakia)", + "locale": "sk-SK", + "icon": "sk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-t0jbnlbvz17f02vdiemi-sk-sk.mp3" + }, + { + "character": "Michael", + "voice": "flq6f7yk4E4fJM5XTYuZ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "orutund", + "old" + ], + "order": 7, + "name": "Slovak (Slovakia)", + "locale": "sk-SK", + "icon": "sk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-flq6f7yk4e4fjm5xtyuz-sk-sk.mp3" + }, + { + "character": "Liam", + "voice": "TX3LPaxmHKxFdv7VOQHJ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "neutral", + "young" + ], + "order": 8, + "name": "Slovak (Slovakia)", + "locale": "sk-SK", + "icon": "sk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-tx3lpaxmhkxfdv7voqhj-sk-sk.mp3" + }, + { + "character": "Harry", + "voice": "SOYHLrjzK2X1ezoPC6cr", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "anxious", + "young" + ], + "order": 9, + "name": "Slovak (Slovakia)", + "locale": "sk-SK", + "icon": "sk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-soyhlrjzk2x1ezopc6cr-sk-sk.mp3" + }, + { + "character": "Patrick", + "voice": "ODq5zmih8GrVes37Dizd", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "shouty", + "middle-aged" + ], + "order": 10, + "name": "Slovak (Slovakia)", + "locale": "sk-SK", + "icon": "sk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-odq5zmih8grves37dizd-sk-sk.mp3" + }, + { + "character": "Thomas", + "voice": "GBv7mTt0atIp3Br8iCZE", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 11, + "name": "Slovak (Slovakia)", + "locale": "sk-SK", + "icon": "sk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-gbv7mtt0atip3br8icze-sk-sk.mp3" + }, + { + "character": "Drew", + "voice": "29vD33N1CtxCmqQRPOHJ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "well-rounded", + "middle-aged" + ], + "order": 12, + "name": "Slovak (Slovakia)", + "locale": "sk-SK", + "icon": "sk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-29vd33n1ctxcmqqrpohj-sk-sk.mp3" + }, + { + "character": "Paul", + "voice": "5Q0t7uMcjvnagumLfvZi", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "narration", + "middle-aged" + ], + "order": 13, + "name": "Slovak (Slovakia)", + "locale": "sk-SK", + "icon": "sk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-5q0t7umcjvnagumlfvzi-sk-sk.mp3" + }, + { + "character": "Callum", + "voice": "N2lVS1w4EtoT3dr4eOWO", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "masculine", + "middle-aged" + ], + "order": 14, + "name": "Slovak (Slovakia)", + "locale": "sk-SK", + "icon": "sk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-n2lvs1w4etot3dr4eowo-sk-sk.mp3" + }, + { + "character": "Giovanni", + "voice": "zcAOhNBS3c14rBihAFp1", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "italian-accent", + "young" + ], + "order": 15, + "name": "Slovak (Slovakia)", + "locale": "sk-SK", + "icon": "sk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zcaohnbs3c14rbihafp1-sk-sk.mp3" + }, + { + "character": "Clyde", + "voice": "2EiwWnXFnvU5JabPnv8n", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "masculine", + "middle-aged" + ], + "order": 17, + "name": "Slovak (Slovakia)", + "locale": "sk-SK", + "icon": "sk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-2eiwwnxfnvu5jabpnv8n-sk-sk.mp3" + }, + { + "character": "George", + "voice": "JBFqnCBsd6RMkjVDRZzb", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "raspy", + "narration" + ], + "order": 19, + "name": "Slovak (Slovakia)", + "locale": "sk-SK", + "icon": "sk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-jbfqncbsd6rmkjvdrzzb-sk-sk.mp3" + }, + { + "character": "Dave", + "voice": "CYw3kZ02Hs0563khs1Fj", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "essex-accent", + "young" + ], + "order": 20, + "name": "Slovak (Slovakia)", + "locale": "sk-SK", + "icon": "sk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-cyw3kz02hs0563khs1fj-sk-sk.mp3" + }, + { + "character": "Joseph", + "voice": "Zlb1dXrM653N07WRdFW3", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "upbeat", + "middle-aged" + ], + "order": 21, + "name": "Slovak (Slovakia)", + "locale": "sk-SK", + "icon": "sk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zlb1dxrm653n07wrdfw3-sk-sk.mp3" + }, + { + "character": "Daniel", + "voice": "onwK4e9ZLuTAKqWW03F9", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "middle-aged" + ], + "order": 22, + "name": "Slovak (Slovakia)", + "locale": "sk-SK", + "icon": "sk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-onwk4e9zlutakqww03f9-sk-sk.mp3" + }, + { + "character": "Charlie", + "voice": "IKne3meq5aSn9XLyUdCD", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "casual", + "middle-aged" + ], + "order": 23, + "name": "Slovak (Slovakia)", + "locale": "sk-SK", + "icon": "sk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-ikne3meq5asn9xlyudcd-sk-sk.mp3" + }, + { + "character": "James", + "voice": "ZQe5CZNOzWyzPSCn5a3c", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "old" + ], + "order": 24, + "name": "Slovak (Slovakia)", + "locale": "sk-SK", + "icon": "sk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zqe5cznozwyzpscn5a3c-sk-sk.mp3" + }, + { + "character": "Fin", + "voice": "D38z5RcWu1voky8WS1ja", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "sailor", + "old" + ], + "order": 25, + "name": "Slovak (Slovakia)", + "locale": "sk-SK", + "icon": "sk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-d38z5rcwu1voky8ws1ja-sk-sk.mp3" + }, + { + "character": "Jeremy", + "voice": "bVMeCyTHy58xNoL34h3p", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "excited", + "young" + ], + "order": 26, + "name": "Slovak (Slovakia)", + "locale": "sk-SK", + "icon": "sk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-bvmecythy58xnol34h3p-sk-sk.mp3" + }, + { + "character": "Chris", + "voice": "iP95p4xoKVk53GoZ742B", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Slovak (Slovakia)", + "locale": "sk-SK", + "icon": "sk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-ip95p4xokvk53goz742b-sk-sk.mp3" + }, + { + "character": "Brian", + "voice": "nPczCjzI2devNBz1zQrb", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Slovak (Slovakia)", + "locale": "sk-SK", + "icon": "sk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-npczcjzi2devnbz1zqrb-sk-sk.mp3" + }, + { + "character": "Sam", + "voice": "yoZ06aMxZJJ28mfd3POQ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "fast-paced", + "young" + ], + "order": 99999, + "name": "Slovak (Slovakia)", + "locale": "sk-SK", + "icon": "sk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-yoz06amxzjj28mfd3poq-sk-sk.mp3" + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Viktoria", + "name": "Slovak (Slovakia)", + "locale": "sk-SK", + "voice": "sk-SK-ViktoriaNeural", + "icon": "sk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-sk-sk-viktorianeural-sk-sk.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Rachel", + "voice": "21m00Tcm4TlvDq8ikWAM", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 1, + "name": "Slovak (Slovakia)", + "locale": "sk-SK", + "icon": "sk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-21m00tcm4tlvdq8ikwam-sk-sk.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Matilda", + "voice": "XrExE9yKIg1WjnnlVkGX", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 3, + "name": "Slovak (Slovakia)", + "locale": "sk-SK", + "icon": "sk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xrexe9ykig1wjnnlvkgx-sk-sk.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Grace", + "voice": "oWAxZDx7w5VEj9dCyTzz", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "southern-accent", + "young" + ], + "order": 4, + "name": "Slovak (Slovakia)", + "locale": "sk-SK", + "icon": "sk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-owaxzdx7w5vej9dcytzz-sk-sk.mp3" + }, + { + "character": "Domi", + "voice": "AZnzlk1XvdvUeBnXmlld", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "upbeat", + "young" + ], + "order": 5, + "name": "Slovak (Slovakia)", + "locale": "sk-SK", + "icon": "sk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-aznzlk1xvdvuebnxmlld-sk-sk.mp3" + }, + { + "character": "Gigi", + "voice": "jBpfuIE2acCO8z3wKNLl", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "childish", + "young" + ], + "order": 6, + "name": "Slovak (Slovakia)", + "locale": "sk-SK", + "icon": "sk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-jbpfuie2acco8z3wknll-sk-sk.mp3" + }, + { + "character": "Serena", + "voice": "pMsXgVXv3BLzUgSXRplE", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "order": 7, + "name": "Slovak (Slovakia)", + "locale": "sk-SK", + "icon": "sk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pmsxgvxv3blzugsxrple-sk-sk.mp3" + }, + { + "character": "Glinda", + "voice": "z9fAnlkpzviPz146aGWa", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "strong", + "middle-aged" + ], + "order": 8, + "name": "Slovak (Slovakia)", + "locale": "sk-SK", + "icon": "sk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-z9fanlkpzvipz146agwa-sk-sk.mp3", + "approxDurationCoeficient": 13 + }, + { + "character": "Mimi", + "voice": "zrHiDhphv9ZnVXBqCLjz", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "childish", + "young" + ], + "order": 9, + "name": "Slovak (Slovakia)", + "locale": "sk-SK", + "icon": "sk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zrhidhphv9znvxbqcljz-sk-sk.mp3" + }, + { + "character": "Emily", + "voice": "LcfcDJNUP1GQjkzn1xUU", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "order": 10, + "name": "Slovak (Slovakia)", + "locale": "sk-SK", + "icon": "sk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-lcfcdjnup1gqjkzn1xuu-sk-sk.mp3" + }, + { + "character": "Lily", + "voice": "pFZP5JQG7iQjIQuC4Bku", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "raspy", + "middle-aged" + ], + "order": 11, + "name": "Slovak (Slovakia)", + "locale": "sk-SK", + "icon": "sk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pfzp5jqg7iqjiquc4bku-sk-sk.mp3" + }, + { + "character": "Charlotte", + "voice": "XB0fDUnXU5powFXDhCwa", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "swedish-accent", + "young" + ], + "order": 12, + "name": "Slovak (Slovakia)", + "locale": "sk-SK", + "icon": "sk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xb0fdunxu5powfxdhcwa-sk-sk.mp3" + }, + { + "character": "Dorothy", + "voice": "ThT5KcBeYPX3keUQqHPh", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 13, + "name": "Slovak (Slovakia)", + "locale": "sk-SK", + "icon": "sk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-tht5kcbeypx3keuqqhph-sk-sk.mp3" + }, + { + "character": "Sarah", + "voice": "EXAVITQu4vr4xnSDxMaL", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 99999, + "name": "Slovak (Slovakia)", + "locale": "sk-SK", + "icon": "sk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-exavitqu4vr4xnsdxmal-sk-sk.mp3" + }, + { + "character": "Alice", + "voice": "Xb7hH8MSUJpSbSDYk0k2", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Slovak (Slovakia)", + "locale": "sk-SK", + "icon": "sk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xb7hh8msujpsbsdyk0k2-sk-sk.mp3" + }, + { + "character": "Elanor A", + "name": "Slovak-SK", + "voice": "sk-SK-Wavenet-A", + "icon": "sk", + "voiceProvider": "google", + "locale": "sk-SK", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-sk-sk-wavenet-a-sk-sk.mp3", + "approxDurationCoeficient": 15 + } + ] + }, + { + "name": "Slovenian", + "male": [ + { + "voiceProvider": "azure", + "character": "Rok", + "name": "Slovenian (Slovenia)", + "locale": "sl-SI", + "voice": "sl-SI-RokNeural", + "icon": "si", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-sl-si-rokneural-sl-si.mp3", + "approxDurationCoeficient": 15 + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Petra", + "name": "Slovenian (Slovenia)", + "locale": "sl-SI", + "voice": "sl-SI-PetraNeural", + "icon": "si", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-sl-si-petraneural-sl-si.mp3", + "approxDurationCoeficient": 17 + } + ] + }, + { + "name": "Somali", + "male": [ + { + "voiceProvider": "azure", + "character": "Muuse", + "name": "Somali (Somalia)", + "locale": "so-SO", + "voice": "so-SO-MuuseNeural", + "icon": "so", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-so-so-muuseneural-so-so.mp3", + "approxDurationCoeficient": 16 + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Ubax", + "name": "Somali (Somalia)", + "locale": "so-SO", + "voice": "so-SO-UbaxNeural", + "icon": "so", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-so-so-ubaxneural-so-so.mp3", + "approxDurationCoeficient": 15 + } + ] + }, + { + "name": "Spanish", + "male": [ + { + "voiceProvider": "azure", + "character": "Saul", + "name": "Spanish (Spain)", + "locale": "es-ES", + "voice": "es-ES-SaulNeural", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-es-saulneural-es-es.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Arnau", + "name": "Spanish (Spain)", + "locale": "es-ES", + "voice": "es-ES-ArnauNeural", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-es-arnauneural-es-es.mp3", + "approxDurationCoeficient": 16 + }, + { + "voiceProvider": "azure", + "character": "Teo", + "name": "Spanish (Spain)", + "locale": "es-ES", + "voice": "es-ES-TeoNeural", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-es-teoneural-es-es.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Jorge", + "name": "Spanish (Mexico)", + "locale": "es-MX", + "voice": "es-MX-JorgeNeural", + "icon": "mx", + "styleList": [ + "cheerful", + "chat" + ], + "stylePreview": { + "cheerful": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-mx-jorgeneural:cheerful-es-es.mp3", + "chat": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-mx-jorgeneural:chat-es-es.mp3" + }, + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-mx-jorgeneural-es-es.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Cecilio", + "name": "Spanish (Mexico)", + "locale": "es-MX", + "voice": "es-MX-CecilioNeural", + "icon": "mx", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-mx-cecilioneural-es-es.mp3", + "approxDurationCoeficient": 18 + }, + { + "character": "Antoni", + "voice": "ErXwobaYiN019PkySvjV", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "well-rounded", + "calm" + ], + "order": 1, + "name": "Spanish (Spain)", + "locale": "es-ES", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-erxwobayin019pkysvjv-es-es.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Josh", + "voice": "TxGEqnHWrfWFTfGW9XjX", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "young" + ], + "order": 2, + "name": "Spanish (Spain)", + "locale": "es-ES", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-txgeqnhwrfwftfgw9xjx-es-es.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Arnold", + "voice": "VR6AewLTigWG4xSOukaG", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "crisp", + "middle-aged" + ], + "order": 3, + "name": "Spanish (Spain)", + "locale": "es-ES", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-vr6aewltigwg4xsoukag-es-es.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Adam", + "voice": "pNInz6obpgDQGcFmaJgB", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "middle-aged" + ], + "order": 4, + "name": "Spanish (Spain)", + "locale": "es-ES", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pninz6obpgdqgcfmajgb-es-es.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Bill", + "voice": "pqHfZKP75CvOlQylNhV4", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "strong", + "middle-aged" + ], + "order": 5, + "name": "Spanish (Spain)", + "locale": "es-ES", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pqhfzkp75cvolqylnhv4-es-es.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Jessie", + "voice": "t0jbNlBVZ17f02VDIeMI", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "fast-paced", + "old" + ], + "order": 6, + "name": "Spanish (Spain)", + "locale": "es-ES", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-t0jbnlbvz17f02vdiemi-es-es.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Michael", + "voice": "flq6f7yk4E4fJM5XTYuZ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "orutund", + "old" + ], + "order": 7, + "name": "Spanish (Spain)", + "locale": "es-ES", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-flq6f7yk4e4fjm5xtyuz-es-es.mp3", + "approxDurationCoeficient": 13 + }, + { + "character": "Liam", + "voice": "TX3LPaxmHKxFdv7VOQHJ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "neutral", + "young" + ], + "order": 8, + "name": "Spanish (Spain)", + "locale": "es-ES", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-tx3lpaxmhkxfdv7voqhj-es-es.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Harry", + "voice": "SOYHLrjzK2X1ezoPC6cr", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "anxious", + "young" + ], + "order": 9, + "name": "Spanish (Spain)", + "locale": "es-ES", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-soyhlrjzk2x1ezopc6cr-es-es.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Patrick", + "voice": "ODq5zmih8GrVes37Dizd", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "shouty", + "middle-aged" + ], + "order": 10, + "name": "Spanish (Spain)", + "locale": "es-ES", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-odq5zmih8grves37dizd-es-es.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Thomas", + "voice": "GBv7mTt0atIp3Br8iCZE", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 11, + "name": "Spanish (Spain)", + "locale": "es-ES", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-gbv7mtt0atip3br8icze-es-es.mp3", + "approxDurationCoeficient": 12 + }, + { + "character": "Drew", + "voice": "29vD33N1CtxCmqQRPOHJ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "well-rounded", + "middle-aged" + ], + "order": 12, + "name": "Spanish (Spain)", + "locale": "es-ES", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-29vd33n1ctxcmqqrpohj-es-es.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Paul", + "voice": "5Q0t7uMcjvnagumLfvZi", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "narration", + "middle-aged" + ], + "order": 13, + "name": "Spanish (Spain)", + "locale": "es-ES", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-5q0t7umcjvnagumlfvzi-es-es.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "Callum", + "voice": "N2lVS1w4EtoT3dr4eOWO", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "masculine", + "middle-aged" + ], + "order": 14, + "name": "Spanish (Spain)", + "locale": "es-ES", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-n2lvs1w4etot3dr4eowo-es-es.mp3" + }, + { + "character": "Giovanni", + "voice": "zcAOhNBS3c14rBihAFp1", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "italian-accent", + "young" + ], + "order": 15, + "name": "Spanish (Spain)", + "locale": "es-ES", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zcaohnbs3c14rbihafp1-es-es.mp3" + }, + { + "character": "Clyde", + "voice": "2EiwWnXFnvU5JabPnv8n", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "masculine", + "middle-aged" + ], + "order": 17, + "name": "Spanish (Spain)", + "locale": "es-ES", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-2eiwwnxfnvu5jabpnv8n-es-es.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "George", + "voice": "JBFqnCBsd6RMkjVDRZzb", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "raspy", + "narration" + ], + "order": 19, + "name": "Spanish (Spain)", + "locale": "es-ES", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-jbfqncbsd6rmkjvdrzzb-es-es.mp3" + }, + { + "character": "Dave", + "voice": "CYw3kZ02Hs0563khs1Fj", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "essex-accent", + "young" + ], + "order": 20, + "name": "Spanish (Spain)", + "locale": "es-ES", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-cyw3kz02hs0563khs1fj-es-es.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "Joseph", + "voice": "Zlb1dXrM653N07WRdFW3", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "upbeat", + "middle-aged" + ], + "order": 21, + "name": "Spanish (Spain)", + "locale": "es-ES", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zlb1dxrm653n07wrdfw3-es-es.mp3" + }, + { + "character": "Daniel", + "voice": "onwK4e9ZLuTAKqWW03F9", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "middle-aged" + ], + "order": 22, + "name": "Spanish (Spain)", + "locale": "es-ES", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-onwk4e9zlutakqww03f9-es-es.mp3" + }, + { + "character": "Charlie", + "voice": "IKne3meq5aSn9XLyUdCD", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "casual", + "middle-aged" + ], + "order": 23, + "name": "Spanish (Spain)", + "locale": "es-ES", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-ikne3meq5asn9xlyudcd-es-es.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "James", + "voice": "ZQe5CZNOzWyzPSCn5a3c", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "old" + ], + "order": 24, + "name": "Spanish (Spain)", + "locale": "es-ES", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zqe5cznozwyzpscn5a3c-es-es.mp3" + }, + { + "character": "Fin", + "voice": "D38z5RcWu1voky8WS1ja", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "sailor", + "old" + ], + "order": 25, + "name": "Spanish (Spain)", + "locale": "es-ES", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-d38z5rcwu1voky8ws1ja-es-es.mp3" + }, + { + "character": "Jeremy", + "voice": "bVMeCyTHy58xNoL34h3p", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "excited", + "young" + ], + "order": 26, + "name": "Spanish (Spain)", + "locale": "es-ES", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-bvmecythy58xnol34h3p-es-es.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "Chris", + "voice": "iP95p4xoKVk53GoZ742B", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Spanish (Spain)", + "locale": "es-ES", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-ip95p4xokvk53goz742b-es-es.mp3" + }, + { + "character": "Brian", + "voice": "nPczCjzI2devNBz1zQrb", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Spanish (Spain)", + "locale": "es-ES", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-npczcjzi2devnbz1zqrb-es-es.mp3" + }, + { + "character": "Sam", + "voice": "yoZ06aMxZJJ28mfd3POQ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "fast-paced", + "young" + ], + "order": 99999, + "name": "Spanish (Spain)", + "locale": "es-ES", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-yoz06amxzjj28mfd3poq-es-es.mp3" + }, + { + "voiceProvider": "azure", + "character": "Alvaro", + "name": "Spanish (Spain)", + "locale": "es-ES", + "voice": "es-ES-AlvaroNeural", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-es-alvaroneural-es-es.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Dario", + "name": "Spanish (Spain)", + "locale": "es-ES", + "voice": "es-ES-DarioNeural", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-es-darioneural-es-es.mp3" + }, + { + "voiceProvider": "azure", + "character": "Elias", + "name": "Spanish (Spain)", + "locale": "es-ES", + "voice": "es-ES-EliasNeural", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-es-eliasneural-es-es.mp3", + "approxDurationCoeficient": 19 + }, + { + "voiceProvider": "azure", + "character": "Nil", + "name": "Spanish (Spain)", + "locale": "es-ES", + "voice": "es-ES-NilNeural", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-es-nilneural-es-es.mp3" + }, + { + "character": "Hugo B", + "name": "Spanish-ES", + "voice": "es-ES-Neural2-B", + "icon": "es", + "voiceProvider": "google", + "locale": "es-ES", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-es-es-neural2-b-es-es.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Arlo F", + "name": "Spanish-ES", + "voice": "es-ES-Neural2-F", + "icon": "es", + "voiceProvider": "google", + "locale": "es-ES", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-es-es-neural2-f-es-es.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Gerardo", + "name": "Spanish (Mexico)", + "locale": "es-MX", + "voice": "es-MX-GerardoNeural", + "icon": "mx", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-mx-gerardoneural-es-es.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Liberto", + "name": "Spanish (Mexico)", + "locale": "es-MX", + "voice": "es-MX-LibertoNeural", + "icon": "mx", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-mx-libertoneural-es-es.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Luciano", + "name": "Spanish (Mexico)", + "locale": "es-MX", + "voice": "es-MX-LucianoNeural", + "icon": "mx", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-mx-lucianoneural-es-es.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Pelayo", + "name": "Spanish (Mexico)", + "locale": "es-MX", + "voice": "es-MX-PelayoNeural", + "icon": "mx", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-mx-pelayoneural-es-es.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Yago", + "name": "Spanish (Mexico)", + "locale": "es-MX", + "voice": "es-MX-YagoNeural", + "icon": "mx", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-mx-yagoneural-es-es.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Tomas", + "name": "Spanish (Argentina)", + "locale": "es-AR", + "voice": "es-AR-TomasNeural", + "icon": "ar", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-ar-tomasneural-es-es.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Marcelo", + "name": "Spanish (Bolivia)", + "locale": "es-BO", + "voice": "es-BO-MarceloNeural", + "icon": "bo", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-bo-marceloneural-es-es.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Lorenzo", + "name": "Spanish (Chile)", + "locale": "es-CL", + "voice": "es-CL-LorenzoNeural", + "icon": "cl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-cl-lorenzoneural-es-es.mp3", + "approxDurationCoeficient": 19 + }, + { + "voiceProvider": "azure", + "character": "Gonzalo", + "name": "Spanish (Colombia)", + "locale": "es-CO", + "voice": "es-CO-GonzaloNeural", + "icon": "co", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-co-gonzaloneural-es-es.mp3", + "approxDurationCoeficient": 19 + }, + { + "voiceProvider": "azure", + "character": "Juan", + "name": "Spanish (Costa Rica)", + "locale": "es-CR", + "voice": "es-CR-JuanNeural", + "icon": "cr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-cr-juanneural-es-es.mp3", + "approxDurationCoeficient": 16 + }, + { + "voiceProvider": "azure", + "character": "Manuel", + "name": "Spanish (Cuba)", + "locale": "es-CU", + "voice": "es-CU-ManuelNeural", + "icon": "cu", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-cu-manuelneural-es-es.mp3", + "approxDurationCoeficient": 16 + }, + { + "voiceProvider": "azure", + "character": "Emilio", + "name": "Spanish (Dominican Republic)", + "locale": "es-DO", + "voice": "es-DO-EmilioNeural", + "icon": "do", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-do-emilioneural-es-es.mp3", + "approxDurationCoeficient": 16 + }, + { + "voiceProvider": "azure", + "character": "Luis", + "name": "Spanish (Ecuador)", + "locale": "es-EC", + "voice": "es-EC-LuisNeural", + "icon": "ec", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-ec-luisneural-es-es.mp3", + "approxDurationCoeficient": 16 + }, + { + "voiceProvider": "azure", + "character": "Javier", + "name": "Spanish (Equatorial Guinea)", + "locale": "es-GQ", + "voice": "es-GQ-JavierNeural", + "icon": "gq", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-gq-javierneural-es-es.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Andres", + "name": "Spanish (Guatemala)", + "locale": "es-GT", + "voice": "es-GT-AndresNeural", + "icon": "gt", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-gt-andresneural-es-es.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Carlos", + "name": "Spanish (Honduras)", + "locale": "es-HN", + "voice": "es-HN-CarlosNeural", + "icon": "hn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-hn-carlosneural-es-es.mp3", + "approxDurationCoeficient": 19 + }, + { + "voiceProvider": "azure", + "character": "Federico", + "name": "Spanish (Nicaragua)", + "locale": "es-NI", + "voice": "es-NI-FedericoNeural", + "icon": "ni", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-ni-federiconeural-es-es.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Roberto", + "name": "Spanish (Panama)", + "locale": "es-PA", + "voice": "es-PA-RobertoNeural", + "icon": "pa", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-pa-robertoneural-es-es.mp3", + "approxDurationCoeficient": 15 + }, + { + "voiceProvider": "azure", + "character": "Alex", + "name": "Spanish (Peru)", + "locale": "es-PE", + "voice": "es-PE-AlexNeural", + "icon": "pe", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-pe-alexneural-es-es.mp3", + "approxDurationCoeficient": 16 + }, + { + "voiceProvider": "azure", + "character": "Victor", + "name": "Spanish (Puerto Rico)", + "locale": "es-PR", + "voice": "es-PR-VictorNeural", + "icon": "pr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-pr-victorneural-es-es.mp3", + "approxDurationCoeficient": 16 + }, + { + "voiceProvider": "azure", + "character": "Mario", + "name": "Spanish (Paraguay)", + "locale": "es-PY", + "voice": "es-PY-MarioNeural", + "icon": "py", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-py-marioneural-es-es.mp3", + "approxDurationCoeficient": 20 + }, + { + "voiceProvider": "azure", + "character": "Rodrigo", + "name": "Spanish (El Salvador)", + "locale": "es-SV", + "voice": "es-SV-RodrigoNeural", + "icon": "sv", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-sv-rodrigoneural-es-es.mp3", + "approxDurationCoeficient": 19 + }, + { + "voiceProvider": "azure", + "character": "Alonso", + "name": "Spanish (United States)", + "locale": "es-US", + "voice": "es-US-AlonsoNeural", + "icon": "us", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-us-alonsoneural-es-es.mp3", + "approxDurationCoeficient": 16 + }, + { + "voiceProvider": "azure", + "character": "Mateo", + "name": "Spanish (Uruguay)", + "locale": "es-UY", + "voice": "es-UY-MateoNeural", + "icon": "uy", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-uy-mateoneural-es-es.mp3", + "approxDurationCoeficient": 19 + }, + { + "voiceProvider": "azure", + "character": "Sebastian", + "name": "Spanish (Venezuela)", + "locale": "es-VE", + "voice": "es-VE-SebastianNeural", + "icon": "ve", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-ve-sebastianneural-es-es.mp3", + "approxDurationCoeficient": 19 + }, + { + "character": "Mateo B", + "name": "Spanish-US", + "voice": "es-US-Neural2-B", + "icon": "us", + "voiceProvider": "google", + "locale": "es-US", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-es-us-neural2-b-es-es.mp3", + "approxDurationCoeficient": 19 + }, + { + "character": "Diego C", + "name": "Spanish-US", + "voice": "es-US-Neural2-C", + "icon": "us", + "voiceProvider": "google", + "locale": "es-US", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-es-us-neural2-c-es-es.mp3", + "approxDurationCoeficient": 21 + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Elvira", + "name": "Spanish (Spain)", + "locale": "es-ES", + "voice": "es-ES-ElviraNeural", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-es-elviraneural-es-es.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Abril", + "name": "Spanish (Spain)", + "locale": "es-ES", + "voice": "es-ES-AbrilNeural", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-es-abrilneural-es-es.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Estrella", + "name": "Spanish (Spain)", + "locale": "es-ES", + "voice": "es-ES-EstrellaNeural", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-es-estrellaneural-es-es.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Carlota", + "name": "Spanish (Mexico)", + "locale": "es-MX", + "voice": "es-MX-CarlotaNeural", + "icon": "mx", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-mx-carlotaneural-es-es.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Beatriz", + "name": "Spanish (Mexico)", + "locale": "es-MX", + "voice": "es-MX-BeatrizNeural", + "icon": "mx", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-mx-beatrizneural-es-es.mp3", + "approxDurationCoeficient": 19 + }, + { + "character": "Rachel", + "voice": "21m00Tcm4TlvDq8ikWAM", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 1, + "name": "Spanish (Spain)", + "locale": "es-ES", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-21m00tcm4tlvdq8ikwam-es-es.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Matilda", + "voice": "XrExE9yKIg1WjnnlVkGX", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 3, + "name": "Spanish (Spain)", + "locale": "es-ES", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xrexe9ykig1wjnnlvkgx-es-es.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Grace", + "voice": "oWAxZDx7w5VEj9dCyTzz", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "southern-accent", + "young" + ], + "order": 4, + "name": "Spanish (Spain)", + "locale": "es-ES", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-owaxzdx7w5vej9dcytzz-es-es.mp3", + "approxDurationCoeficient": 20 + }, + { + "character": "Domi", + "voice": "AZnzlk1XvdvUeBnXmlld", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "upbeat", + "young" + ], + "order": 5, + "name": "Spanish (Spain)", + "locale": "es-ES", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-aznzlk1xvdvuebnxmlld-es-es.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Gigi", + "voice": "jBpfuIE2acCO8z3wKNLl", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "childish", + "young" + ], + "order": 6, + "name": "Spanish (Spain)", + "locale": "es-ES", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-jbpfuie2acco8z3wknll-es-es.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Serena", + "voice": "pMsXgVXv3BLzUgSXRplE", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "order": 7, + "name": "Spanish (Spain)", + "locale": "es-ES", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pmsxgvxv3blzugsxrple-es-es.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "Glinda", + "voice": "z9fAnlkpzviPz146aGWa", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "strong", + "middle-aged" + ], + "order": 8, + "name": "Spanish (Spain)", + "locale": "es-ES", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-z9fanlkpzvipz146agwa-es-es.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Mimi", + "voice": "zrHiDhphv9ZnVXBqCLjz", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "childish", + "young" + ], + "order": 9, + "name": "Spanish (Spain)", + "locale": "es-ES", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zrhidhphv9znvxbqcljz-es-es.mp3", + "approxDurationCoeficient": 11 + }, + { + "character": "Emily", + "voice": "LcfcDJNUP1GQjkzn1xUU", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "order": 10, + "name": "Spanish (Spain)", + "locale": "es-ES", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-lcfcdjnup1gqjkzn1xuu-es-es.mp3", + "approxDurationCoeficient": 11 + }, + { + "character": "Lily", + "voice": "pFZP5JQG7iQjIQuC4Bku", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "raspy", + "middle-aged" + ], + "order": 11, + "name": "Spanish (Spain)", + "locale": "es-ES", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pfzp5jqg7iqjiquc4bku-es-es.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Charlotte", + "voice": "XB0fDUnXU5powFXDhCwa", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "swedish-accent", + "young" + ], + "order": 12, + "name": "Spanish (Spain)", + "locale": "es-ES", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xb0fdunxu5powfxdhcwa-es-es.mp3", + "approxDurationCoeficient": 12 + }, + { + "character": "Dorothy", + "voice": "ThT5KcBeYPX3keUQqHPh", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 13, + "name": "Spanish (Spain)", + "locale": "es-ES", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-tht5kcbeypx3keuqqhph-es-es.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Sarah", + "voice": "EXAVITQu4vr4xnSDxMaL", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 99999, + "name": "Spanish (Spain)", + "locale": "es-ES", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-exavitqu4vr4xnsdxmal-es-es.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Alice", + "voice": "Xb7hH8MSUJpSbSDYk0k2", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Spanish (Spain)", + "locale": "es-ES", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xb7hh8msujpsbsdyk0k2-es-es.mp3" + }, + { + "voiceProvider": "azure", + "character": "Irene", + "name": "Spanish (Spain)", + "locale": "es-ES", + "voice": "es-ES-IreneNeural", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-es-ireneneural-es-es.mp3" + }, + { + "voiceProvider": "azure", + "character": "Laia", + "name": "Spanish (Spain)", + "locale": "es-ES", + "voice": "es-ES-LaiaNeural", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-es-laianeural-es-es.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Lia", + "name": "Spanish (Spain)", + "locale": "es-ES", + "voice": "es-ES-LiaNeural", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-es-lianeural-es-es.mp3", + "approxDurationCoeficient": 20 + }, + { + "voiceProvider": "azure", + "character": "Triana", + "name": "Spanish (Spain)", + "locale": "es-ES", + "voice": "es-ES-TrianaNeural", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-es-triananeural-es-es.mp3", + "approxDurationCoeficient": 19 + }, + { + "voiceProvider": "azure", + "character": "Vera", + "name": "Spanish (Spain)", + "locale": "es-ES", + "voice": "es-ES-VeraNeural", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-es-veraneural-es-es.mp3", + "approxDurationCoeficient": 19 + }, + { + "voiceProvider": "azure", + "character": "Ximena", + "name": "Spanish (Spain)", + "locale": "es-ES", + "voice": "es-ES-XimenaNeural", + "icon": "es", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-es-ximenaneural-es-es.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Isla A", + "name": "Spanish-ES", + "voice": "es-ES-Neural2-A", + "icon": "es", + "voiceProvider": "google", + "locale": "es-ES", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-es-es-neural2-a-es-es.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "Elena C", + "name": "Spanish-ES", + "voice": "es-ES-Neural2-C", + "icon": "es", + "voiceProvider": "google", + "locale": "es-ES", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-es-es-neural2-c-es-es.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Lucia D", + "name": "Spanish-ES", + "voice": "es-ES-Neural2-D", + "icon": "es", + "voiceProvider": "google", + "locale": "es-ES", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-es-es-neural2-d-es-es.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Maya E", + "name": "Spanish-ES", + "voice": "es-ES-Neural2-E", + "icon": "es", + "voiceProvider": "google", + "locale": "es-ES", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-es-es-neural2-e-es-es.mp3", + "approxDurationCoeficient": 15 + }, + { + "voiceProvider": "azure", + "character": "Dalia", + "name": "Spanish (Mexico)", + "locale": "es-MX", + "voice": "es-MX-DaliaNeural", + "icon": "mx", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-mx-dalianeural-es-es.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Candela", + "name": "Spanish (Mexico)", + "locale": "es-MX", + "voice": "es-MX-CandelaNeural", + "icon": "mx", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-mx-candelaneural-es-es.mp3", + "approxDurationCoeficient": 16 + }, + { + "voiceProvider": "azure", + "character": "Larissa", + "name": "Spanish (Mexico)", + "locale": "es-MX", + "voice": "es-MX-LarissaNeural", + "icon": "mx", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-mx-larissaneural-es-es.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Marina", + "name": "Spanish (Mexico)", + "locale": "es-MX", + "voice": "es-MX-MarinaNeural", + "icon": "mx", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-mx-marinaneural-es-es.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Nuria", + "name": "Spanish (Mexico)", + "locale": "es-MX", + "voice": "es-MX-NuriaNeural", + "icon": "mx", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-mx-nurianeural-es-es.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Renata", + "name": "Spanish (Mexico)", + "locale": "es-MX", + "voice": "es-MX-RenataNeural", + "icon": "mx", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-mx-renataneural-es-es.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Elena", + "name": "Spanish (Argentina)", + "locale": "es-AR", + "voice": "es-AR-ElenaNeural", + "icon": "ar", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-ar-elenaneural-es-es.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Sofia", + "name": "Spanish (Bolivia)", + "locale": "es-BO", + "voice": "es-BO-SofiaNeural", + "icon": "bo", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-bo-sofianeural-es-es.mp3", + "approxDurationCoeficient": 19 + }, + { + "voiceProvider": "azure", + "character": "Catalina", + "name": "Spanish (Chile)", + "locale": "es-CL", + "voice": "es-CL-CatalinaNeural", + "icon": "cl", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-cl-catalinaneural-es-es.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Salome", + "name": "Spanish (Colombia)", + "locale": "es-CO", + "voice": "es-CO-SalomeNeural", + "icon": "co", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-co-salomeneural-es-es.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Maria", + "name": "Spanish (Costa Rica)", + "locale": "es-CR", + "voice": "es-CR-MariaNeural", + "icon": "cr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-cr-marianeural-es-es.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Belkys", + "name": "Spanish (Cuba)", + "locale": "es-CU", + "voice": "es-CU-BelkysNeural", + "icon": "cu", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-cu-belkysneural-es-es.mp3", + "approxDurationCoeficient": 19 + }, + { + "voiceProvider": "azure", + "character": "Ramona", + "name": "Spanish (Dominican Republic)", + "locale": "es-DO", + "voice": "es-DO-RamonaNeural", + "icon": "do", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-do-ramonaneural-es-es.mp3", + "approxDurationCoeficient": 15 + }, + { + "voiceProvider": "azure", + "character": "Andrea", + "name": "Spanish (Ecuador)", + "locale": "es-EC", + "voice": "es-EC-AndreaNeural", + "icon": "ec", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-ec-andreaneural-es-es.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Teresa", + "name": "Spanish (Equatorial Guinea)", + "locale": "es-GQ", + "voice": "es-GQ-TeresaNeural", + "icon": "gq", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-gq-teresaneural-es-es.mp3", + "approxDurationCoeficient": 19 + }, + { + "voiceProvider": "azure", + "character": "Marta", + "name": "Spanish (Guatemala)", + "locale": "es-GT", + "voice": "es-GT-MartaNeural", + "icon": "gt", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-gt-martaneural-es-es.mp3", + "approxDurationCoeficient": 19 + }, + { + "voiceProvider": "azure", + "character": "Karla", + "name": "Spanish (Honduras)", + "locale": "es-HN", + "voice": "es-HN-KarlaNeural", + "icon": "hn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-hn-karlaneural-es-es.mp3", + "approxDurationCoeficient": 16 + }, + { + "voiceProvider": "azure", + "character": "Yolanda", + "name": "Spanish (Nicaragua)", + "locale": "es-NI", + "voice": "es-NI-YolandaNeural", + "icon": "ni", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-ni-yolandaneural-es-es.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Margarita", + "name": "Spanish (Panama)", + "locale": "es-PA", + "voice": "es-PA-MargaritaNeural", + "icon": "pa", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-pa-margaritaneural-es-es.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Camila", + "name": "Spanish (Peru)", + "locale": "es-PE", + "voice": "es-PE-CamilaNeural", + "icon": "pe", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-pe-camilaneural-es-es.mp3", + "approxDurationCoeficient": 20 + }, + { + "voiceProvider": "azure", + "character": "Karina", + "name": "Spanish (Puerto Rico)", + "locale": "es-PR", + "voice": "es-PR-KarinaNeural", + "icon": "pr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-pr-karinaneural-es-es.mp3", + "approxDurationCoeficient": 16 + }, + { + "voiceProvider": "azure", + "character": "Tania", + "name": "Spanish (Paraguay)", + "locale": "es-PY", + "voice": "es-PY-TaniaNeural", + "icon": "py", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-py-tanianeural-es-es.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Lorena", + "name": "Spanish (El Salvador)", + "locale": "es-SV", + "voice": "es-SV-LorenaNeural", + "icon": "sv", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-sv-lorenaneural-es-es.mp3", + "approxDurationCoeficient": 19 + }, + { + "voiceProvider": "azure", + "character": "Paloma", + "name": "Spanish (United States)", + "locale": "es-US", + "voice": "es-US-PalomaNeural", + "icon": "us", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-us-palomaneural-es-es.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Valentina", + "name": "Spanish (Uruguay)", + "locale": "es-UY", + "voice": "es-UY-ValentinaNeural", + "icon": "uy", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-uy-valentinaneural-es-es.mp3", + "approxDurationCoeficient": 18 + }, + { + "voiceProvider": "azure", + "character": "Paola", + "name": "Spanish (Venezuela)", + "locale": "es-VE", + "voice": "es-VE-PaolaNeural", + "icon": "ve", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-es-ve-paolaneural-es-es.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Lola A", + "name": "Spanish-US", + "voice": "es-US-Neural2-A", + "icon": "us", + "voiceProvider": "google", + "locale": "es-US", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-es-us-neural2-a-es-es.mp3", + "approxDurationCoeficient": 18 + } + ] + }, + { + "name": "Sundanese", + "male": [ + { + "voiceProvider": "azure", + "character": "Jajang", + "name": "Sundanese (Indonesia)", + "locale": "su-ID", + "voice": "su-ID-JajangNeural", + "icon": "id", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-su-id-jajangneural-su-id.mp3", + "approxDurationCoeficient": 15 + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Tuti", + "name": "Sundanese (Indonesia)", + "locale": "su-ID", + "voice": "su-ID-TutiNeural", + "icon": "id", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-su-id-tutineural-su-id.mp3", + "approxDurationCoeficient": 12 + } + ] + }, + { + "name": "Swahili", + "male": [ + { + "voiceProvider": "azure", + "character": "Rafiki", + "name": "Swahili (Kenya)", + "locale": "sw-KE", + "voice": "sw-KE-RafikiNeural", + "icon": "ke", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-sw-ke-rafikineural-sw-ke.mp3", + "approxDurationCoeficient": 17 + }, + { + "voiceProvider": "azure", + "character": "Daudi", + "name": "Swahili (Tanzania)", + "locale": "sw-TZ", + "voice": "sw-TZ-DaudiNeural", + "icon": "tz", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-sw-tz-daudineural-sw-ke.mp3", + "approxDurationCoeficient": 14 + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Zuri", + "name": "Swahili (Kenya)", + "locale": "sw-KE", + "voice": "sw-KE-ZuriNeural", + "icon": "ke", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-sw-ke-zurineural-sw-ke.mp3", + "approxDurationCoeficient": 15 + }, + { + "voiceProvider": "azure", + "character": "Rehema", + "name": "Swahili (Tanzania)", + "locale": "sw-TZ", + "voice": "sw-TZ-RehemaNeural", + "icon": "tz", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-sw-tz-rehemaneural-sw-ke.mp3", + "approxDurationCoeficient": 12 + } + ] + }, + { + "name": "Swedish", + "male": [ + { + "voiceProvider": "azure", + "character": "Mattias", + "name": "Swedish (Sweden)", + "locale": "sv-SE", + "voice": "sv-SE-MattiasNeural", + "icon": "se", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-sv-se-mattiasneural-sv-se.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Antoni", + "voice": "ErXwobaYiN019PkySvjV", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "well-rounded", + "calm" + ], + "order": 1, + "name": "Swedish (Sweden)", + "locale": "sv-SE", + "icon": "se", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-erxwobayin019pkysvjv-sv-se.mp3" + }, + { + "character": "Josh", + "voice": "TxGEqnHWrfWFTfGW9XjX", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "young" + ], + "order": 2, + "name": "Swedish (Sweden)", + "locale": "sv-SE", + "icon": "se", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-txgeqnhwrfwftfgw9xjx-sv-se.mp3" + }, + { + "character": "Arnold", + "voice": "VR6AewLTigWG4xSOukaG", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "crisp", + "middle-aged" + ], + "order": 3, + "name": "Swedish (Sweden)", + "locale": "sv-SE", + "icon": "se", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-vr6aewltigwg4xsoukag-sv-se.mp3" + }, + { + "character": "Adam", + "voice": "pNInz6obpgDQGcFmaJgB", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "middle-aged" + ], + "order": 4, + "name": "Swedish (Sweden)", + "locale": "sv-SE", + "icon": "se", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pninz6obpgdqgcfmajgb-sv-se.mp3" + }, + { + "character": "Bill", + "voice": "pqHfZKP75CvOlQylNhV4", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "strong", + "middle-aged" + ], + "order": 5, + "name": "Swedish (Sweden)", + "locale": "sv-SE", + "icon": "se", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pqhfzkp75cvolqylnhv4-sv-se.mp3" + }, + { + "character": "Jessie", + "voice": "t0jbNlBVZ17f02VDIeMI", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "fast-paced", + "old" + ], + "order": 6, + "name": "Swedish (Sweden)", + "locale": "sv-SE", + "icon": "se", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-t0jbnlbvz17f02vdiemi-sv-se.mp3" + }, + { + "character": "Michael", + "voice": "flq6f7yk4E4fJM5XTYuZ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "orutund", + "old" + ], + "order": 7, + "name": "Swedish (Sweden)", + "locale": "sv-SE", + "icon": "se", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-flq6f7yk4e4fjm5xtyuz-sv-se.mp3", + "approxDurationCoeficient": 13 + }, + { + "character": "Liam", + "voice": "TX3LPaxmHKxFdv7VOQHJ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "neutral", + "young" + ], + "order": 8, + "name": "Swedish (Sweden)", + "locale": "sv-SE", + "icon": "se", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-tx3lpaxmhkxfdv7voqhj-sv-se.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Harry", + "voice": "SOYHLrjzK2X1ezoPC6cr", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "anxious", + "young" + ], + "order": 9, + "name": "Swedish (Sweden)", + "locale": "sv-SE", + "icon": "se", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-soyhlrjzk2x1ezopc6cr-sv-se.mp3" + }, + { + "character": "Patrick", + "voice": "ODq5zmih8GrVes37Dizd", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "shouty", + "middle-aged" + ], + "order": 10, + "name": "Swedish (Sweden)", + "locale": "sv-SE", + "icon": "se", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-odq5zmih8grves37dizd-sv-se.mp3" + }, + { + "character": "Thomas", + "voice": "GBv7mTt0atIp3Br8iCZE", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 11, + "name": "Swedish (Sweden)", + "locale": "sv-SE", + "icon": "se", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-gbv7mtt0atip3br8icze-sv-se.mp3" + }, + { + "character": "Drew", + "voice": "29vD33N1CtxCmqQRPOHJ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "well-rounded", + "middle-aged" + ], + "order": 12, + "name": "Swedish (Sweden)", + "locale": "sv-SE", + "icon": "se", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-29vd33n1ctxcmqqrpohj-sv-se.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Paul", + "voice": "5Q0t7uMcjvnagumLfvZi", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "narration", + "middle-aged" + ], + "order": 13, + "name": "Swedish (Sweden)", + "locale": "sv-SE", + "icon": "se", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-5q0t7umcjvnagumlfvzi-sv-se.mp3" + }, + { + "character": "Callum", + "voice": "N2lVS1w4EtoT3dr4eOWO", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "masculine", + "middle-aged" + ], + "order": 14, + "name": "Swedish (Sweden)", + "locale": "sv-SE", + "icon": "se", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-n2lvs1w4etot3dr4eowo-sv-se.mp3" + }, + { + "character": "Giovanni", + "voice": "zcAOhNBS3c14rBihAFp1", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "italian-accent", + "young" + ], + "order": 15, + "name": "Swedish (Sweden)", + "locale": "sv-SE", + "icon": "se", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zcaohnbs3c14rbihafp1-sv-se.mp3" + }, + { + "character": "Clyde", + "voice": "2EiwWnXFnvU5JabPnv8n", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "masculine", + "middle-aged" + ], + "order": 17, + "name": "Swedish (Sweden)", + "locale": "sv-SE", + "icon": "se", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-2eiwwnxfnvu5jabpnv8n-sv-se.mp3" + }, + { + "character": "George", + "voice": "JBFqnCBsd6RMkjVDRZzb", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "raspy", + "narration" + ], + "order": 19, + "name": "Swedish (Sweden)", + "locale": "sv-SE", + "icon": "se", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-jbfqncbsd6rmkjvdrzzb-sv-se.mp3" + }, + { + "character": "Dave", + "voice": "CYw3kZ02Hs0563khs1Fj", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "essex-accent", + "young" + ], + "order": 20, + "name": "Swedish (Sweden)", + "locale": "sv-SE", + "icon": "se", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-cyw3kz02hs0563khs1fj-sv-se.mp3" + }, + { + "character": "Joseph", + "voice": "Zlb1dXrM653N07WRdFW3", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "upbeat", + "middle-aged" + ], + "order": 21, + "name": "Swedish (Sweden)", + "locale": "sv-SE", + "icon": "se", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zlb1dxrm653n07wrdfw3-sv-se.mp3" + }, + { + "character": "Daniel", + "voice": "onwK4e9ZLuTAKqWW03F9", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "middle-aged" + ], + "order": 22, + "name": "Swedish (Sweden)", + "locale": "sv-SE", + "icon": "se", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-onwk4e9zlutakqww03f9-sv-se.mp3", + "approxDurationCoeficient": 13 + }, + { + "character": "Charlie", + "voice": "IKne3meq5aSn9XLyUdCD", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "casual", + "middle-aged" + ], + "order": 23, + "name": "Swedish (Sweden)", + "locale": "sv-SE", + "icon": "se", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-ikne3meq5asn9xlyudcd-sv-se.mp3", + "approxDurationCoeficient": 18 + }, + { + "character": "James", + "voice": "ZQe5CZNOzWyzPSCn5a3c", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "old" + ], + "order": 24, + "name": "Swedish (Sweden)", + "locale": "sv-SE", + "icon": "se", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zqe5cznozwyzpscn5a3c-sv-se.mp3" + }, + { + "character": "Fin", + "voice": "D38z5RcWu1voky8WS1ja", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "sailor", + "old" + ], + "order": 25, + "name": "Swedish (Sweden)", + "locale": "sv-SE", + "icon": "se", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-d38z5rcwu1voky8ws1ja-sv-se.mp3" + }, + { + "character": "Jeremy", + "voice": "bVMeCyTHy58xNoL34h3p", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "excited", + "young" + ], + "order": 26, + "name": "Swedish (Sweden)", + "locale": "sv-SE", + "icon": "se", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-bvmecythy58xnol34h3p-sv-se.mp3" + }, + { + "character": "Chris", + "voice": "iP95p4xoKVk53GoZ742B", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Swedish (Sweden)", + "locale": "sv-SE", + "icon": "se", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-ip95p4xokvk53goz742b-sv-se.mp3" + }, + { + "character": "Brian", + "voice": "nPczCjzI2devNBz1zQrb", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Swedish (Sweden)", + "locale": "sv-SE", + "icon": "se", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-npczcjzi2devnbz1zqrb-sv-se.mp3" + }, + { + "character": "Sam", + "voice": "yoZ06aMxZJJ28mfd3POQ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "fast-paced", + "young" + ], + "order": 99999, + "name": "Swedish (Sweden)", + "locale": "sv-SE", + "icon": "se", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-yoz06amxzjj28mfd3poq-sv-se.mp3" + }, + { + "character": "Oscar C", + "name": "Swedish-SE", + "voice": "sv-SE-Wavenet-C", + "icon": "se", + "voiceProvider": "google", + "locale": "sv-SE", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-sv-se-wavenet-c-sv-se.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Miles E", + "name": "Swedish-SE", + "voice": "sv-SE-Wavenet-E", + "icon": "se", + "voiceProvider": "google", + "locale": "sv-SE", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-sv-se-wavenet-e-sv-se.mp3", + "approxDurationCoeficient": 15 + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Sofie", + "name": "Swedish (Sweden)", + "locale": "sv-SE", + "voice": "sv-SE-SofieNeural", + "icon": "se", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-sv-se-sofieneural-sv-se.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Rachel", + "voice": "21m00Tcm4TlvDq8ikWAM", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 1, + "name": "Swedish (Sweden)", + "locale": "sv-SE", + "icon": "se", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-21m00tcm4tlvdq8ikwam-sv-se.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Matilda", + "voice": "XrExE9yKIg1WjnnlVkGX", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 3, + "name": "Swedish (Sweden)", + "locale": "sv-SE", + "icon": "se", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xrexe9ykig1wjnnlvkgx-sv-se.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Grace", + "voice": "oWAxZDx7w5VEj9dCyTzz", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "southern-accent", + "young" + ], + "order": 4, + "name": "Swedish (Sweden)", + "locale": "sv-SE", + "icon": "se", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-owaxzdx7w5vej9dcytzz-sv-se.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Domi", + "voice": "AZnzlk1XvdvUeBnXmlld", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "upbeat", + "young" + ], + "order": 5, + "name": "Swedish (Sweden)", + "locale": "sv-SE", + "icon": "se", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-aznzlk1xvdvuebnxmlld-sv-se.mp3" + }, + { + "character": "Gigi", + "voice": "jBpfuIE2acCO8z3wKNLl", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "childish", + "young" + ], + "order": 6, + "name": "Swedish (Sweden)", + "locale": "sv-SE", + "icon": "se", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-jbpfuie2acco8z3wknll-sv-se.mp3" + }, + { + "character": "Serena", + "voice": "pMsXgVXv3BLzUgSXRplE", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "order": 7, + "name": "Swedish (Sweden)", + "locale": "sv-SE", + "icon": "se", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pmsxgvxv3blzugsxrple-sv-se.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "Glinda", + "voice": "z9fAnlkpzviPz146aGWa", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "strong", + "middle-aged" + ], + "order": 8, + "name": "Swedish (Sweden)", + "locale": "sv-SE", + "icon": "se", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-z9fanlkpzvipz146agwa-sv-se.mp3" + }, + { + "character": "Mimi", + "voice": "zrHiDhphv9ZnVXBqCLjz", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "childish", + "young" + ], + "order": 9, + "name": "Swedish (Sweden)", + "locale": "sv-SE", + "icon": "se", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zrhidhphv9znvxbqcljz-sv-se.mp3" + }, + { + "character": "Emily", + "voice": "LcfcDJNUP1GQjkzn1xUU", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "order": 10, + "name": "Swedish (Sweden)", + "locale": "sv-SE", + "icon": "se", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-lcfcdjnup1gqjkzn1xuu-sv-se.mp3" + }, + { + "character": "Lily", + "voice": "pFZP5JQG7iQjIQuC4Bku", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "raspy", + "middle-aged" + ], + "order": 11, + "name": "Swedish (Sweden)", + "locale": "sv-SE", + "icon": "se", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pfzp5jqg7iqjiquc4bku-sv-se.mp3", + "approxDurationCoeficient": 19 + }, + { + "character": "Charlotte", + "voice": "XB0fDUnXU5powFXDhCwa", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "swedish-accent", + "young" + ], + "order": 12, + "name": "Swedish (Sweden)", + "locale": "sv-SE", + "icon": "se", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xb0fdunxu5powfxdhcwa-sv-se.mp3" + }, + { + "character": "Dorothy", + "voice": "ThT5KcBeYPX3keUQqHPh", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 13, + "name": "Swedish (Sweden)", + "locale": "sv-SE", + "icon": "se", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-tht5kcbeypx3keuqqhph-sv-se.mp3" + }, + { + "character": "Sarah", + "voice": "EXAVITQu4vr4xnSDxMaL", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 99999, + "name": "Swedish (Sweden)", + "locale": "sv-SE", + "icon": "se", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-exavitqu4vr4xnsdxmal-sv-se.mp3" + }, + { + "character": "Alice", + "voice": "Xb7hH8MSUJpSbSDYk0k2", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Swedish (Sweden)", + "locale": "sv-SE", + "icon": "se", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xb7hh8msujpsbsdyk0k2-sv-se.mp3" + }, + { + "voiceProvider": "azure", + "character": "Hillevi", + "name": "Swedish (Sweden)", + "locale": "sv-SE", + "voice": "sv-SE-HilleviNeural", + "icon": "se", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-sv-se-hillevineural-sv-se.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Elanor A", + "name": "Swedish-SE", + "voice": "sv-SE-Wavenet-A", + "icon": "se", + "voiceProvider": "google", + "locale": "sv-SE", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-sv-se-wavenet-a-sv-se.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Lucy B", + "name": "Swedish-SE", + "voice": "sv-SE-Wavenet-B", + "icon": "se", + "voiceProvider": "google", + "locale": "sv-SE", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-sv-se-wavenet-b-sv-se.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "Daisy D", + "name": "Swedish-SE", + "voice": "sv-SE-Wavenet-D", + "icon": "se", + "voiceProvider": "google", + "locale": "sv-SE", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-sv-se-wavenet-d-sv-se.mp3", + "approxDurationCoeficient": 18 + } + ] + }, + { + "name": "Tamil", + "male": [ + { + "voiceProvider": "azure", + "character": "Valluvar", + "name": "Tamil (India)", + "locale": "ta-IN", + "voice": "ta-IN-ValluvarNeural", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ta-in-valluvarneural-ta-in.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Antoni", + "voice": "ErXwobaYiN019PkySvjV", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "well-rounded", + "calm" + ], + "order": 1, + "name": "Tamil (India)", + "locale": "ta-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-erxwobayin019pkysvjv-ta-in.mp3" + }, + { + "character": "Josh", + "voice": "TxGEqnHWrfWFTfGW9XjX", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "young" + ], + "order": 2, + "name": "Tamil (India)", + "locale": "ta-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-txgeqnhwrfwftfgw9xjx-ta-in.mp3" + }, + { + "character": "Arnold", + "voice": "VR6AewLTigWG4xSOukaG", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "crisp", + "middle-aged" + ], + "order": 3, + "name": "Tamil (India)", + "locale": "ta-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-vr6aewltigwg4xsoukag-ta-in.mp3" + }, + { + "character": "Adam", + "voice": "pNInz6obpgDQGcFmaJgB", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "middle-aged" + ], + "order": 4, + "name": "Tamil (India)", + "locale": "ta-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pninz6obpgdqgcfmajgb-ta-in.mp3" + }, + { + "character": "Bill", + "voice": "pqHfZKP75CvOlQylNhV4", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "strong", + "middle-aged" + ], + "order": 5, + "name": "Tamil (India)", + "locale": "ta-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pqhfzkp75cvolqylnhv4-ta-in.mp3" + }, + { + "character": "Jessie", + "voice": "t0jbNlBVZ17f02VDIeMI", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "fast-paced", + "old" + ], + "order": 6, + "name": "Tamil (India)", + "locale": "ta-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-t0jbnlbvz17f02vdiemi-ta-in.mp3" + }, + { + "character": "Michael", + "voice": "flq6f7yk4E4fJM5XTYuZ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "orutund", + "old" + ], + "order": 7, + "name": "Tamil (India)", + "locale": "ta-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-flq6f7yk4e4fjm5xtyuz-ta-in.mp3" + }, + { + "character": "Liam", + "voice": "TX3LPaxmHKxFdv7VOQHJ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "neutral", + "young" + ], + "order": 8, + "name": "Tamil (India)", + "locale": "ta-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-tx3lpaxmhkxfdv7voqhj-ta-in.mp3" + }, + { + "character": "Harry", + "voice": "SOYHLrjzK2X1ezoPC6cr", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "anxious", + "young" + ], + "order": 9, + "name": "Tamil (India)", + "locale": "ta-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-soyhlrjzk2x1ezopc6cr-ta-in.mp3" + }, + { + "character": "Patrick", + "voice": "ODq5zmih8GrVes37Dizd", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "shouty", + "middle-aged" + ], + "order": 10, + "name": "Tamil (India)", + "locale": "ta-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-odq5zmih8grves37dizd-ta-in.mp3" + }, + { + "character": "Thomas", + "voice": "GBv7mTt0atIp3Br8iCZE", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 11, + "name": "Tamil (India)", + "locale": "ta-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-gbv7mtt0atip3br8icze-ta-in.mp3" + }, + { + "character": "Drew", + "voice": "29vD33N1CtxCmqQRPOHJ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "well-rounded", + "middle-aged" + ], + "order": 12, + "name": "Tamil (India)", + "locale": "ta-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-29vd33n1ctxcmqqrpohj-ta-in.mp3" + }, + { + "character": "Paul", + "voice": "5Q0t7uMcjvnagumLfvZi", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "narration", + "middle-aged" + ], + "order": 13, + "name": "Tamil (India)", + "locale": "ta-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-5q0t7umcjvnagumlfvzi-ta-in.mp3" + }, + { + "character": "Callum", + "voice": "N2lVS1w4EtoT3dr4eOWO", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "masculine", + "middle-aged" + ], + "order": 14, + "name": "Tamil (India)", + "locale": "ta-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-n2lvs1w4etot3dr4eowo-ta-in.mp3" + }, + { + "character": "Giovanni", + "voice": "zcAOhNBS3c14rBihAFp1", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "italian-accent", + "young" + ], + "order": 15, + "name": "Tamil (India)", + "locale": "ta-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zcaohnbs3c14rbihafp1-ta-in.mp3" + }, + { + "character": "Clyde", + "voice": "2EiwWnXFnvU5JabPnv8n", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "masculine", + "middle-aged" + ], + "order": 17, + "name": "Tamil (India)", + "locale": "ta-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-2eiwwnxfnvu5jabpnv8n-ta-in.mp3" + }, + { + "character": "George", + "voice": "JBFqnCBsd6RMkjVDRZzb", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "raspy", + "narration" + ], + "order": 19, + "name": "Tamil (India)", + "locale": "ta-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-jbfqncbsd6rmkjvdrzzb-ta-in.mp3" + }, + { + "character": "Dave", + "voice": "CYw3kZ02Hs0563khs1Fj", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "essex-accent", + "young" + ], + "order": 20, + "name": "Tamil (India)", + "locale": "ta-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-cyw3kz02hs0563khs1fj-ta-in.mp3" + }, + { + "character": "Joseph", + "voice": "Zlb1dXrM653N07WRdFW3", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "upbeat", + "middle-aged" + ], + "order": 21, + "name": "Tamil (India)", + "locale": "ta-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zlb1dxrm653n07wrdfw3-ta-in.mp3" + }, + { + "character": "Daniel", + "voice": "onwK4e9ZLuTAKqWW03F9", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "middle-aged" + ], + "order": 22, + "name": "Tamil (India)", + "locale": "ta-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-onwk4e9zlutakqww03f9-ta-in.mp3" + }, + { + "character": "Charlie", + "voice": "IKne3meq5aSn9XLyUdCD", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "casual", + "middle-aged" + ], + "order": 23, + "name": "Tamil (India)", + "locale": "ta-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-ikne3meq5asn9xlyudcd-ta-in.mp3" + }, + { + "character": "James", + "voice": "ZQe5CZNOzWyzPSCn5a3c", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "old" + ], + "order": 24, + "name": "Tamil (India)", + "locale": "ta-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zqe5cznozwyzpscn5a3c-ta-in.mp3" + }, + { + "character": "Fin", + "voice": "D38z5RcWu1voky8WS1ja", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "sailor", + "old" + ], + "order": 25, + "name": "Tamil (India)", + "locale": "ta-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-d38z5rcwu1voky8ws1ja-ta-in.mp3" + }, + { + "character": "Jeremy", + "voice": "bVMeCyTHy58xNoL34h3p", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "excited", + "young" + ], + "order": 26, + "name": "Tamil (India)", + "locale": "ta-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-bvmecythy58xnol34h3p-ta-in.mp3" + }, + { + "character": "Chris", + "voice": "iP95p4xoKVk53GoZ742B", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Tamil (India)", + "locale": "ta-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-ip95p4xokvk53goz742b-ta-in.mp3" + }, + { + "character": "Brian", + "voice": "nPczCjzI2devNBz1zQrb", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Tamil (India)", + "locale": "ta-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-npczcjzi2devnbz1zqrb-ta-in.mp3" + }, + { + "character": "Sam", + "voice": "yoZ06aMxZJJ28mfd3POQ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "fast-paced", + "young" + ], + "order": 99999, + "name": "Tamil (India)", + "locale": "ta-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-yoz06amxzjj28mfd3poq-ta-in.mp3" + }, + { + "voiceProvider": "azure", + "character": "Kumar", + "name": "Tamil (Sri Lanka)", + "locale": "ta-LK", + "voice": "ta-LK-KumarNeural", + "icon": "lk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ta-lk-kumarneural-ta-in.mp3", + "approxDurationCoeficient": 15 + }, + { + "voiceProvider": "azure", + "character": "Surya", + "name": "Tamil (Malaysia)", + "locale": "ta-MY", + "voice": "ta-MY-SuryaNeural", + "icon": "my", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ta-my-suryaneural-ta-in.mp3", + "approxDurationCoeficient": 15 + }, + { + "voiceProvider": "azure", + "character": "Anbu", + "name": "Tamil (Singapore)", + "locale": "ta-SG", + "voice": "ta-SG-AnbuNeural", + "icon": "sg", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ta-sg-anbuneural-ta-in.mp3", + "approxDurationCoeficient": 18 + }, + { + "character": "Oscar B", + "name": "Tamil-IN", + "voice": "ta-IN-Wavenet-B", + "icon": "in", + "voiceProvider": "google", + "locale": "ta-IN", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-ta-in-wavenet-b-ta-in.mp3", + "approxDurationCoeficient": 18 + }, + { + "character": "Miles D", + "name": "Tamil-IN", + "voice": "ta-IN-Wavenet-D", + "icon": "in", + "voiceProvider": "google", + "locale": "ta-IN", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-ta-in-wavenet-d-ta-in.mp3", + "approxDurationCoeficient": 17 + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Pallavi", + "name": "Tamil (India)", + "locale": "ta-IN", + "voice": "ta-IN-PallaviNeural", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ta-in-pallavineural-ta-in.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "Rachel", + "voice": "21m00Tcm4TlvDq8ikWAM", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 1, + "name": "Tamil (India)", + "locale": "ta-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-21m00tcm4tlvdq8ikwam-ta-in.mp3", + "approxDurationCoeficient": 26 + }, + { + "character": "Matilda", + "voice": "XrExE9yKIg1WjnnlVkGX", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 3, + "name": "Tamil (India)", + "locale": "ta-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xrexe9ykig1wjnnlvkgx-ta-in.mp3" + }, + { + "character": "Grace", + "voice": "oWAxZDx7w5VEj9dCyTzz", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "southern-accent", + "young" + ], + "order": 4, + "name": "Tamil (India)", + "locale": "ta-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-owaxzdx7w5vej9dcytzz-ta-in.mp3" + }, + { + "character": "Domi", + "voice": "AZnzlk1XvdvUeBnXmlld", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "upbeat", + "young" + ], + "order": 5, + "name": "Tamil (India)", + "locale": "ta-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-aznzlk1xvdvuebnxmlld-ta-in.mp3" + }, + { + "character": "Gigi", + "voice": "jBpfuIE2acCO8z3wKNLl", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "childish", + "young" + ], + "order": 6, + "name": "Tamil (India)", + "locale": "ta-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-jbpfuie2acco8z3wknll-ta-in.mp3" + }, + { + "character": "Serena", + "voice": "pMsXgVXv3BLzUgSXRplE", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "order": 7, + "name": "Tamil (India)", + "locale": "ta-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pmsxgvxv3blzugsxrple-ta-in.mp3" + }, + { + "character": "Glinda", + "voice": "z9fAnlkpzviPz146aGWa", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "strong", + "middle-aged" + ], + "order": 8, + "name": "Tamil (India)", + "locale": "ta-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-z9fanlkpzvipz146agwa-ta-in.mp3" + }, + { + "character": "Mimi", + "voice": "zrHiDhphv9ZnVXBqCLjz", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "childish", + "young" + ], + "order": 9, + "name": "Tamil (India)", + "locale": "ta-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zrhidhphv9znvxbqcljz-ta-in.mp3" + }, + { + "character": "Emily", + "voice": "LcfcDJNUP1GQjkzn1xUU", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "order": 10, + "name": "Tamil (India)", + "locale": "ta-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-lcfcdjnup1gqjkzn1xuu-ta-in.mp3" + }, + { + "character": "Lily", + "voice": "pFZP5JQG7iQjIQuC4Bku", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "raspy", + "middle-aged" + ], + "order": 11, + "name": "Tamil (India)", + "locale": "ta-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pfzp5jqg7iqjiquc4bku-ta-in.mp3" + }, + { + "character": "Charlotte", + "voice": "XB0fDUnXU5powFXDhCwa", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "swedish-accent", + "young" + ], + "order": 12, + "name": "Tamil (India)", + "locale": "ta-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xb0fdunxu5powfxdhcwa-ta-in.mp3" + }, + { + "character": "Dorothy", + "voice": "ThT5KcBeYPX3keUQqHPh", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 13, + "name": "Tamil (India)", + "locale": "ta-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-tht5kcbeypx3keuqqhph-ta-in.mp3" + }, + { + "character": "Sarah", + "voice": "EXAVITQu4vr4xnSDxMaL", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 99999, + "name": "Tamil (India)", + "locale": "ta-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-exavitqu4vr4xnsdxmal-ta-in.mp3" + }, + { + "character": "Alice", + "voice": "Xb7hH8MSUJpSbSDYk0k2", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Tamil (India)", + "locale": "ta-IN", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xb7hh8msujpsbsdyk0k2-ta-in.mp3" + }, + { + "voiceProvider": "azure", + "character": "Saranya", + "name": "Tamil (Sri Lanka)", + "locale": "ta-LK", + "voice": "ta-LK-SaranyaNeural", + "icon": "lk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ta-lk-saranyaneural-ta-in.mp3", + "approxDurationCoeficient": 13 + }, + { + "voiceProvider": "azure", + "character": "Kani", + "name": "Tamil (Malaysia)", + "locale": "ta-MY", + "voice": "ta-MY-KaniNeural", + "icon": "my", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ta-my-kanineural-ta-in.mp3", + "approxDurationCoeficient": 19 + }, + { + "voiceProvider": "azure", + "character": "Venba", + "name": "Tamil (Singapore)", + "locale": "ta-SG", + "voice": "ta-SG-VenbaNeural", + "icon": "sg", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ta-sg-venbaneural-ta-in.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "Elanor A", + "name": "Tamil-IN", + "voice": "ta-IN-Wavenet-A", + "icon": "in", + "voiceProvider": "google", + "locale": "ta-IN", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-ta-in-wavenet-a-ta-in.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Lucy C", + "name": "Tamil-IN", + "voice": "ta-IN-Wavenet-C", + "icon": "in", + "voiceProvider": "google", + "locale": "ta-IN", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-ta-in-wavenet-c-ta-in.mp3", + "approxDurationCoeficient": 16 + } + ] + }, + { + "name": "Telugu", + "male": [ + { + "voiceProvider": "azure", + "character": "Mohan", + "name": "Telugu (India)", + "locale": "te-IN", + "voice": "te-IN-MohanNeural", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-te-in-mohanneural-te-in.mp3", + "approxDurationCoeficient": 14 + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Shruti", + "name": "Telugu (India)", + "locale": "te-IN", + "voice": "te-IN-ShrutiNeural", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-te-in-shrutineural-te-in.mp3", + "approxDurationCoeficient": 14 + } + ] + }, + { + "name": "Thai", + "male": [ + { + "voiceProvider": "azure", + "character": "Niwat", + "name": "Thai (Thailand)", + "locale": "th-TH", + "voice": "th-TH-NiwatNeural", + "icon": "th", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-th-th-niwatneural-th-th.mp3", + "approxDurationCoeficient": 14 + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Premwadee", + "name": "Thai (Thailand)", + "locale": "th-TH", + "voice": "th-TH-PremwadeeNeural", + "icon": "th", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-th-th-premwadeeneural-th-th.mp3", + "approxDurationCoeficient": 14 + }, + { + "voiceProvider": "azure", + "character": "Achara", + "name": "Thai (Thailand)", + "locale": "th-TH", + "voice": "th-TH-AcharaNeural", + "icon": "th", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-th-th-acharaneural-th-th.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "Elanor C", + "name": "Thai-TH", + "voice": "th-TH-Neural2-C", + "icon": "th", + "voiceProvider": "google", + "locale": "th-TH", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-th-th-neural2-c-th-th.mp3", + "approxDurationCoeficient": 12 + } + ] + }, + { + "name": "Turkish", + "male": [ + { + "voiceProvider": "azure", + "character": "Ahmet", + "name": "Turkish (Turkey)", + "locale": "tr-TR", + "voice": "tr-TR-AhmetNeural", + "icon": "tr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-tr-tr-ahmetneural-tr-tr.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Antoni", + "voice": "ErXwobaYiN019PkySvjV", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "well-rounded", + "calm" + ], + "order": 1, + "name": "Turkish (Turkey)", + "locale": "tr-TR", + "icon": "tr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-erxwobayin019pkysvjv-tr-tr.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Josh", + "voice": "TxGEqnHWrfWFTfGW9XjX", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "young" + ], + "order": 2, + "name": "Turkish (Turkey)", + "locale": "tr-TR", + "icon": "tr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-txgeqnhwrfwftfgw9xjx-tr-tr.mp3" + }, + { + "character": "Arnold", + "voice": "VR6AewLTigWG4xSOukaG", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "crisp", + "middle-aged" + ], + "order": 3, + "name": "Turkish (Turkey)", + "locale": "tr-TR", + "icon": "tr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-vr6aewltigwg4xsoukag-tr-tr.mp3" + }, + { + "character": "Adam", + "voice": "pNInz6obpgDQGcFmaJgB", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "middle-aged" + ], + "order": 4, + "name": "Turkish (Turkey)", + "locale": "tr-TR", + "icon": "tr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pninz6obpgdqgcfmajgb-tr-tr.mp3" + }, + { + "character": "Bill", + "voice": "pqHfZKP75CvOlQylNhV4", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "strong", + "middle-aged" + ], + "order": 5, + "name": "Turkish (Turkey)", + "locale": "tr-TR", + "icon": "tr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pqhfzkp75cvolqylnhv4-tr-tr.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "Jessie", + "voice": "t0jbNlBVZ17f02VDIeMI", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "fast-paced", + "old" + ], + "order": 6, + "name": "Turkish (Turkey)", + "locale": "tr-TR", + "icon": "tr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-t0jbnlbvz17f02vdiemi-tr-tr.mp3" + }, + { + "character": "Michael", + "voice": "flq6f7yk4E4fJM5XTYuZ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "orutund", + "old" + ], + "order": 7, + "name": "Turkish (Turkey)", + "locale": "tr-TR", + "icon": "tr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-flq6f7yk4e4fjm5xtyuz-tr-tr.mp3" + }, + { + "character": "Liam", + "voice": "TX3LPaxmHKxFdv7VOQHJ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "neutral", + "young" + ], + "order": 8, + "name": "Turkish (Turkey)", + "locale": "tr-TR", + "icon": "tr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-tx3lpaxmhkxfdv7voqhj-tr-tr.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Harry", + "voice": "SOYHLrjzK2X1ezoPC6cr", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "anxious", + "young" + ], + "order": 9, + "name": "Turkish (Turkey)", + "locale": "tr-TR", + "icon": "tr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-soyhlrjzk2x1ezopc6cr-tr-tr.mp3" + }, + { + "character": "Patrick", + "voice": "ODq5zmih8GrVes37Dizd", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "shouty", + "middle-aged" + ], + "order": 10, + "name": "Turkish (Turkey)", + "locale": "tr-TR", + "icon": "tr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-odq5zmih8grves37dizd-tr-tr.mp3", + "approxDurationCoeficient": 18 + }, + { + "character": "Thomas", + "voice": "GBv7mTt0atIp3Br8iCZE", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 11, + "name": "Turkish (Turkey)", + "locale": "tr-TR", + "icon": "tr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-gbv7mtt0atip3br8icze-tr-tr.mp3" + }, + { + "character": "Drew", + "voice": "29vD33N1CtxCmqQRPOHJ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "well-rounded", + "middle-aged" + ], + "order": 12, + "name": "Turkish (Turkey)", + "locale": "tr-TR", + "icon": "tr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-29vd33n1ctxcmqqrpohj-tr-tr.mp3" + }, + { + "character": "Paul", + "voice": "5Q0t7uMcjvnagumLfvZi", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "narration", + "middle-aged" + ], + "order": 13, + "name": "Turkish (Turkey)", + "locale": "tr-TR", + "icon": "tr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-5q0t7umcjvnagumlfvzi-tr-tr.mp3" + }, + { + "character": "Callum", + "voice": "N2lVS1w4EtoT3dr4eOWO", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "masculine", + "middle-aged" + ], + "order": 14, + "name": "Turkish (Turkey)", + "locale": "tr-TR", + "icon": "tr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-n2lvs1w4etot3dr4eowo-tr-tr.mp3" + }, + { + "character": "Giovanni", + "voice": "zcAOhNBS3c14rBihAFp1", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "italian-accent", + "young" + ], + "order": 15, + "name": "Turkish (Turkey)", + "locale": "tr-TR", + "icon": "tr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zcaohnbs3c14rbihafp1-tr-tr.mp3" + }, + { + "character": "Clyde", + "voice": "2EiwWnXFnvU5JabPnv8n", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "masculine", + "middle-aged" + ], + "order": 17, + "name": "Turkish (Turkey)", + "locale": "tr-TR", + "icon": "tr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-2eiwwnxfnvu5jabpnv8n-tr-tr.mp3" + }, + { + "character": "George", + "voice": "JBFqnCBsd6RMkjVDRZzb", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "raspy", + "narration" + ], + "order": 19, + "name": "Turkish (Turkey)", + "locale": "tr-TR", + "icon": "tr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-jbfqncbsd6rmkjvdrzzb-tr-tr.mp3" + }, + { + "character": "Dave", + "voice": "CYw3kZ02Hs0563khs1Fj", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "essex-accent", + "young" + ], + "order": 20, + "name": "Turkish (Turkey)", + "locale": "tr-TR", + "icon": "tr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-cyw3kz02hs0563khs1fj-tr-tr.mp3" + }, + { + "character": "Joseph", + "voice": "Zlb1dXrM653N07WRdFW3", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "upbeat", + "middle-aged" + ], + "order": 21, + "name": "Turkish (Turkey)", + "locale": "tr-TR", + "icon": "tr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zlb1dxrm653n07wrdfw3-tr-tr.mp3" + }, + { + "character": "Daniel", + "voice": "onwK4e9ZLuTAKqWW03F9", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "middle-aged" + ], + "order": 22, + "name": "Turkish (Turkey)", + "locale": "tr-TR", + "icon": "tr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-onwk4e9zlutakqww03f9-tr-tr.mp3" + }, + { + "character": "Charlie", + "voice": "IKne3meq5aSn9XLyUdCD", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "casual", + "middle-aged" + ], + "order": 23, + "name": "Turkish (Turkey)", + "locale": "tr-TR", + "icon": "tr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-ikne3meq5asn9xlyudcd-tr-tr.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "James", + "voice": "ZQe5CZNOzWyzPSCn5a3c", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "old" + ], + "order": 24, + "name": "Turkish (Turkey)", + "locale": "tr-TR", + "icon": "tr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zqe5cznozwyzpscn5a3c-tr-tr.mp3" + }, + { + "character": "Fin", + "voice": "D38z5RcWu1voky8WS1ja", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "sailor", + "old" + ], + "order": 25, + "name": "Turkish (Turkey)", + "locale": "tr-TR", + "icon": "tr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-d38z5rcwu1voky8ws1ja-tr-tr.mp3" + }, + { + "character": "Jeremy", + "voice": "bVMeCyTHy58xNoL34h3p", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "excited", + "young" + ], + "order": 26, + "name": "Turkish (Turkey)", + "locale": "tr-TR", + "icon": "tr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-bvmecythy58xnol34h3p-tr-tr.mp3" + }, + { + "character": "Chris", + "voice": "iP95p4xoKVk53GoZ742B", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Turkish (Turkey)", + "locale": "tr-TR", + "icon": "tr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-ip95p4xokvk53goz742b-tr-tr.mp3" + }, + { + "character": "Brian", + "voice": "nPczCjzI2devNBz1zQrb", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Turkish (Turkey)", + "locale": "tr-TR", + "icon": "tr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-npczcjzi2devnbz1zqrb-tr-tr.mp3" + }, + { + "character": "Sam", + "voice": "yoZ06aMxZJJ28mfd3POQ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "fast-paced", + "young" + ], + "order": 99999, + "name": "Turkish (Turkey)", + "locale": "tr-TR", + "icon": "tr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-yoz06amxzjj28mfd3poq-tr-tr.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Oscar B", + "name": "Turkish-TR", + "voice": "tr-TR-Wavenet-B", + "icon": "tr", + "voiceProvider": "google", + "locale": "tr-TR", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-tr-tr-wavenet-b-tr-tr.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Miles E", + "name": "Turkish-TR", + "voice": "tr-TR-Wavenet-E", + "icon": "tr", + "voiceProvider": "google", + "locale": "tr-TR", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-tr-tr-wavenet-e-tr-tr.mp3", + "approxDurationCoeficient": 18 + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Emel", + "name": "Turkish (Turkey)", + "locale": "tr-TR", + "voice": "tr-TR-EmelNeural", + "icon": "tr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-tr-tr-emelneural-tr-tr.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Rachel", + "voice": "21m00Tcm4TlvDq8ikWAM", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 1, + "name": "Turkish (Turkey)", + "locale": "tr-TR", + "icon": "tr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-21m00tcm4tlvdq8ikwam-tr-tr.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "Matilda", + "voice": "XrExE9yKIg1WjnnlVkGX", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 3, + "name": "Turkish (Turkey)", + "locale": "tr-TR", + "icon": "tr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xrexe9ykig1wjnnlvkgx-tr-tr.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Grace", + "voice": "oWAxZDx7w5VEj9dCyTzz", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "southern-accent", + "young" + ], + "order": 4, + "name": "Turkish (Turkey)", + "locale": "tr-TR", + "icon": "tr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-owaxzdx7w5vej9dcytzz-tr-tr.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Domi", + "voice": "AZnzlk1XvdvUeBnXmlld", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "upbeat", + "young" + ], + "order": 5, + "name": "Turkish (Turkey)", + "locale": "tr-TR", + "icon": "tr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-aznzlk1xvdvuebnxmlld-tr-tr.mp3" + }, + { + "character": "Gigi", + "voice": "jBpfuIE2acCO8z3wKNLl", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "childish", + "young" + ], + "order": 6, + "name": "Turkish (Turkey)", + "locale": "tr-TR", + "icon": "tr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-jbpfuie2acco8z3wknll-tr-tr.mp3" + }, + { + "character": "Serena", + "voice": "pMsXgVXv3BLzUgSXRplE", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "order": 7, + "name": "Turkish (Turkey)", + "locale": "tr-TR", + "icon": "tr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pmsxgvxv3blzugsxrple-tr-tr.mp3" + }, + { + "character": "Glinda", + "voice": "z9fAnlkpzviPz146aGWa", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "strong", + "middle-aged" + ], + "order": 8, + "name": "Turkish (Turkey)", + "locale": "tr-TR", + "icon": "tr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-z9fanlkpzvipz146agwa-tr-tr.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "Mimi", + "voice": "zrHiDhphv9ZnVXBqCLjz", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "childish", + "young" + ], + "order": 9, + "name": "Turkish (Turkey)", + "locale": "tr-TR", + "icon": "tr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zrhidhphv9znvxbqcljz-tr-tr.mp3" + }, + { + "character": "Emily", + "voice": "LcfcDJNUP1GQjkzn1xUU", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "order": 10, + "name": "Turkish (Turkey)", + "locale": "tr-TR", + "icon": "tr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-lcfcdjnup1gqjkzn1xuu-tr-tr.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Lily", + "voice": "pFZP5JQG7iQjIQuC4Bku", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "raspy", + "middle-aged" + ], + "order": 11, + "name": "Turkish (Turkey)", + "locale": "tr-TR", + "icon": "tr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pfzp5jqg7iqjiquc4bku-tr-tr.mp3" + }, + { + "character": "Charlotte", + "voice": "XB0fDUnXU5powFXDhCwa", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "swedish-accent", + "young" + ], + "order": 12, + "name": "Turkish (Turkey)", + "locale": "tr-TR", + "icon": "tr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xb0fdunxu5powfxdhcwa-tr-tr.mp3" + }, + { + "character": "Dorothy", + "voice": "ThT5KcBeYPX3keUQqHPh", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 13, + "name": "Turkish (Turkey)", + "locale": "tr-TR", + "icon": "tr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-tht5kcbeypx3keuqqhph-tr-tr.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Sarah", + "voice": "EXAVITQu4vr4xnSDxMaL", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 99999, + "name": "Turkish (Turkey)", + "locale": "tr-TR", + "icon": "tr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-exavitqu4vr4xnsdxmal-tr-tr.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Alice", + "voice": "Xb7hH8MSUJpSbSDYk0k2", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Turkish (Turkey)", + "locale": "tr-TR", + "icon": "tr", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xb7hh8msujpsbsdyk0k2-tr-tr.mp3", + "approxDurationCoeficient": 18 + }, + { + "character": "Elanor A", + "name": "Turkish-TR", + "voice": "tr-TR-Wavenet-A", + "icon": "tr", + "voiceProvider": "google", + "locale": "tr-TR", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-tr-tr-wavenet-a-tr-tr.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Lucy C", + "name": "Turkish-TR", + "voice": "tr-TR-Wavenet-C", + "icon": "tr", + "voiceProvider": "google", + "locale": "tr-TR", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-tr-tr-wavenet-c-tr-tr.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Daisy D", + "name": "Turkish-TR", + "voice": "tr-TR-Wavenet-D", + "icon": "tr", + "voiceProvider": "google", + "locale": "tr-TR", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-tr-tr-wavenet-d-tr-tr.mp3", + "approxDurationCoeficient": 17 + } + ] + }, + { + "name": "Ukrainian", + "male": [ + { + "voiceProvider": "azure", + "character": "Ostap", + "name": "Ukrainian (Ukraine)", + "locale": "uk-UA", + "voice": "uk-UA-OstapNeural", + "icon": "ua", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-uk-ua-ostapneural-uk-ua.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Antoni", + "voice": "ErXwobaYiN019PkySvjV", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "well-rounded", + "calm" + ], + "order": 1, + "name": "Ukrainian (Ukraine)", + "locale": "uk-UA", + "icon": "ua", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-erxwobayin019pkysvjv-uk-ua.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Josh", + "voice": "TxGEqnHWrfWFTfGW9XjX", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "young" + ], + "order": 2, + "name": "Ukrainian (Ukraine)", + "locale": "uk-UA", + "icon": "ua", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-txgeqnhwrfwftfgw9xjx-uk-ua.mp3", + "approxDurationCoeficient": 17 + }, + { + "character": "Arnold", + "voice": "VR6AewLTigWG4xSOukaG", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "crisp", + "middle-aged" + ], + "order": 3, + "name": "Ukrainian (Ukraine)", + "locale": "uk-UA", + "icon": "ua", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-vr6aewltigwg4xsoukag-uk-ua.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "Adam", + "voice": "pNInz6obpgDQGcFmaJgB", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "middle-aged" + ], + "order": 4, + "name": "Ukrainian (Ukraine)", + "locale": "uk-UA", + "icon": "ua", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pninz6obpgdqgcfmajgb-uk-ua.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Bill", + "voice": "pqHfZKP75CvOlQylNhV4", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "strong", + "middle-aged" + ], + "order": 5, + "name": "Ukrainian (Ukraine)", + "locale": "uk-UA", + "icon": "ua", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pqhfzkp75cvolqylnhv4-uk-ua.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "Jessie", + "voice": "t0jbNlBVZ17f02VDIeMI", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "fast-paced", + "old" + ], + "order": 6, + "name": "Ukrainian (Ukraine)", + "locale": "uk-UA", + "icon": "ua", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-t0jbnlbvz17f02vdiemi-uk-ua.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Michael", + "voice": "flq6f7yk4E4fJM5XTYuZ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "orutund", + "old" + ], + "order": 7, + "name": "Ukrainian (Ukraine)", + "locale": "uk-UA", + "icon": "ua", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-flq6f7yk4e4fjm5xtyuz-uk-ua.mp3", + "approxDurationCoeficient": 13 + }, + { + "character": "Liam", + "voice": "TX3LPaxmHKxFdv7VOQHJ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "neutral", + "young" + ], + "order": 8, + "name": "Ukrainian (Ukraine)", + "locale": "uk-UA", + "icon": "ua", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-tx3lpaxmhkxfdv7voqhj-uk-ua.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Harry", + "voice": "SOYHLrjzK2X1ezoPC6cr", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "anxious", + "young" + ], + "order": 9, + "name": "Ukrainian (Ukraine)", + "locale": "uk-UA", + "icon": "ua", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-soyhlrjzk2x1ezopc6cr-uk-ua.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Patrick", + "voice": "ODq5zmih8GrVes37Dizd", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "shouty", + "middle-aged" + ], + "order": 10, + "name": "Ukrainian (Ukraine)", + "locale": "uk-UA", + "icon": "ua", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-odq5zmih8grves37dizd-uk-ua.mp3", + "approxDurationCoeficient": 20 + }, + { + "character": "Thomas", + "voice": "GBv7mTt0atIp3Br8iCZE", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 11, + "name": "Ukrainian (Ukraine)", + "locale": "uk-UA", + "icon": "ua", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-gbv7mtt0atip3br8icze-uk-ua.mp3", + "approxDurationCoeficient": 11 + }, + { + "character": "Drew", + "voice": "29vD33N1CtxCmqQRPOHJ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "well-rounded", + "middle-aged" + ], + "order": 12, + "name": "Ukrainian (Ukraine)", + "locale": "uk-UA", + "icon": "ua", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-29vd33n1ctxcmqqrpohj-uk-ua.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "Paul", + "voice": "5Q0t7uMcjvnagumLfvZi", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "narration", + "middle-aged" + ], + "order": 13, + "name": "Ukrainian (Ukraine)", + "locale": "uk-UA", + "icon": "ua", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-5q0t7umcjvnagumlfvzi-uk-ua.mp3", + "approxDurationCoeficient": 8 + }, + { + "character": "Callum", + "voice": "N2lVS1w4EtoT3dr4eOWO", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "masculine", + "middle-aged" + ], + "order": 14, + "name": "Ukrainian (Ukraine)", + "locale": "uk-UA", + "icon": "ua", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-n2lvs1w4etot3dr4eowo-uk-ua.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Giovanni", + "voice": "zcAOhNBS3c14rBihAFp1", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "italian-accent", + "young" + ], + "order": 15, + "name": "Ukrainian (Ukraine)", + "locale": "uk-UA", + "icon": "ua", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zcaohnbs3c14rbihafp1-uk-ua.mp3" + }, + { + "character": "Clyde", + "voice": "2EiwWnXFnvU5JabPnv8n", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "masculine", + "middle-aged" + ], + "order": 17, + "name": "Ukrainian (Ukraine)", + "locale": "uk-UA", + "icon": "ua", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-2eiwwnxfnvu5jabpnv8n-uk-ua.mp3", + "approxDurationCoeficient": 6 + }, + { + "character": "George", + "voice": "JBFqnCBsd6RMkjVDRZzb", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "raspy", + "narration" + ], + "order": 19, + "name": "Ukrainian (Ukraine)", + "locale": "uk-UA", + "icon": "ua", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-jbfqncbsd6rmkjvdrzzb-uk-ua.mp3", + "approxDurationCoeficient": 4 + }, + { + "character": "Dave", + "voice": "CYw3kZ02Hs0563khs1Fj", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "essex-accent", + "young" + ], + "order": 20, + "name": "Ukrainian (Ukraine)", + "locale": "uk-UA", + "icon": "ua", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-cyw3kz02hs0563khs1fj-uk-ua.mp3", + "approxDurationCoeficient": 11 + }, + { + "character": "Joseph", + "voice": "Zlb1dXrM653N07WRdFW3", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "upbeat", + "middle-aged" + ], + "order": 21, + "name": "Ukrainian (Ukraine)", + "locale": "uk-UA", + "icon": "ua", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zlb1dxrm653n07wrdfw3-uk-ua.mp3", + "approxDurationCoeficient": 12 + }, + { + "character": "Daniel", + "voice": "onwK4e9ZLuTAKqWW03F9", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "deep", + "middle-aged" + ], + "order": 22, + "name": "Ukrainian (Ukraine)", + "locale": "uk-UA", + "icon": "ua", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-onwk4e9zlutakqww03f9-uk-ua.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "Charlie", + "voice": "IKne3meq5aSn9XLyUdCD", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "casual", + "middle-aged" + ], + "order": 23, + "name": "Ukrainian (Ukraine)", + "locale": "uk-UA", + "icon": "ua", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-ikne3meq5asn9xlyudcd-uk-ua.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "James", + "voice": "ZQe5CZNOzWyzPSCn5a3c", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "old" + ], + "order": 24, + "name": "Ukrainian (Ukraine)", + "locale": "uk-UA", + "icon": "ua", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zqe5cznozwyzpscn5a3c-uk-ua.mp3", + "approxDurationCoeficient": 12 + }, + { + "character": "Fin", + "voice": "D38z5RcWu1voky8WS1ja", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "sailor", + "old" + ], + "order": 25, + "name": "Ukrainian (Ukraine)", + "locale": "uk-UA", + "icon": "ua", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-d38z5rcwu1voky8ws1ja-uk-ua.mp3", + "approxDurationCoeficient": 12 + }, + { + "character": "Jeremy", + "voice": "bVMeCyTHy58xNoL34h3p", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "excited", + "young" + ], + "order": 26, + "name": "Ukrainian (Ukraine)", + "locale": "uk-UA", + "icon": "ua", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-bvmecythy58xnol34h3p-uk-ua.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Chris", + "voice": "iP95p4xoKVk53GoZ742B", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Ukrainian (Ukraine)", + "locale": "uk-UA", + "icon": "ua", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-ip95p4xokvk53goz742b-uk-ua.mp3" + }, + { + "character": "Brian", + "voice": "nPczCjzI2devNBz1zQrb", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Ukrainian (Ukraine)", + "locale": "uk-UA", + "icon": "ua", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-npczcjzi2devnbz1zqrb-uk-ua.mp3" + }, + { + "character": "Sam", + "voice": "yoZ06aMxZJJ28mfd3POQ", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "fast-paced", + "young" + ], + "order": 99999, + "name": "Ukrainian (Ukraine)", + "locale": "uk-UA", + "icon": "ua", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-yoz06amxzjj28mfd3poq-uk-ua.mp3", + "approxDurationCoeficient": 6 + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Polina", + "name": "Ukrainian (Ukraine)", + "locale": "uk-UA", + "voice": "uk-UA-PolinaNeural", + "icon": "ua", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-uk-ua-polinaneural-uk-ua.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Rachel", + "voice": "21m00Tcm4TlvDq8ikWAM", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 1, + "name": "Ukrainian (Ukraine)", + "locale": "uk-UA", + "icon": "ua", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-21m00tcm4tlvdq8ikwam-uk-ua.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Matilda", + "voice": "XrExE9yKIg1WjnnlVkGX", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 3, + "name": "Ukrainian (Ukraine)", + "locale": "uk-UA", + "icon": "ua", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xrexe9ykig1wjnnlvkgx-uk-ua.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Grace", + "voice": "oWAxZDx7w5VEj9dCyTzz", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "southern-accent", + "young" + ], + "order": 4, + "name": "Ukrainian (Ukraine)", + "locale": "uk-UA", + "icon": "ua", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-owaxzdx7w5vej9dcytzz-uk-ua.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Domi", + "voice": "AZnzlk1XvdvUeBnXmlld", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "upbeat", + "young" + ], + "order": 5, + "name": "Ukrainian (Ukraine)", + "locale": "uk-UA", + "icon": "ua", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-aznzlk1xvdvuebnxmlld-uk-ua.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Gigi", + "voice": "jBpfuIE2acCO8z3wKNLl", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "childish", + "young" + ], + "order": 6, + "name": "Ukrainian (Ukraine)", + "locale": "uk-UA", + "icon": "ua", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-jbpfuie2acco8z3wknll-uk-ua.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Serena", + "voice": "pMsXgVXv3BLzUgSXRplE", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "order": 7, + "name": "Ukrainian (Ukraine)", + "locale": "uk-UA", + "icon": "ua", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pmsxgvxv3blzugsxrple-uk-ua.mp3", + "approxDurationCoeficient": 13 + }, + { + "character": "Glinda", + "voice": "z9fAnlkpzviPz146aGWa", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "strong", + "middle-aged" + ], + "order": 8, + "name": "Ukrainian (Ukraine)", + "locale": "uk-UA", + "icon": "ua", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-z9fanlkpzvipz146agwa-uk-ua.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "Mimi", + "voice": "zrHiDhphv9ZnVXBqCLjz", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "childish", + "young" + ], + "order": 9, + "name": "Ukrainian (Ukraine)", + "locale": "uk-UA", + "icon": "ua", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-zrhidhphv9znvxbqcljz-uk-ua.mp3", + "approxDurationCoeficient": 10 + }, + { + "character": "Emily", + "voice": "LcfcDJNUP1GQjkzn1xUU", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "middle-aged" + ], + "order": 10, + "name": "Ukrainian (Ukraine)", + "locale": "uk-UA", + "icon": "ua", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-lcfcdjnup1gqjkzn1xuu-uk-ua.mp3", + "approxDurationCoeficient": 11 + }, + { + "character": "Lily", + "voice": "pFZP5JQG7iQjIQuC4Bku", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "raspy", + "middle-aged" + ], + "order": 11, + "name": "Ukrainian (Ukraine)", + "locale": "uk-UA", + "icon": "ua", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-pfzp5jqg7iqjiquc4bku-uk-ua.mp3", + "approxDurationCoeficient": 13 + }, + { + "character": "Charlotte", + "voice": "XB0fDUnXU5powFXDhCwa", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "swedish-accent", + "young" + ], + "order": 12, + "name": "Ukrainian (Ukraine)", + "locale": "uk-UA", + "icon": "ua", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xb0fdunxu5powfxdhcwa-uk-ua.mp3", + "approxDurationCoeficient": 13 + }, + { + "character": "Dorothy", + "voice": "ThT5KcBeYPX3keUQqHPh", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 13, + "name": "Ukrainian (Ukraine)", + "locale": "uk-UA", + "icon": "ua", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-tht5kcbeypx3keuqqhph-uk-ua.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Sarah", + "voice": "EXAVITQu4vr4xnSDxMaL", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [ + "calm", + "young" + ], + "order": 99999, + "name": "Ukrainian (Ukraine)", + "locale": "uk-UA", + "icon": "ua", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-exavitqu4vr4xnsdxmal-uk-ua.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Alice", + "voice": "Xb7hH8MSUJpSbSDYk0k2", + "voiceProvider": "elevenlabs", + "premium": true, + "tags": [], + "order": 99999, + "name": "Ukrainian (Ukraine)", + "locale": "uk-UA", + "icon": "ua", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/elevenlabs/elevenlabs-xb7hh8msujpsbsdyk0k2-uk-ua.mp3", + "approxDurationCoeficient": 16 + }, + { + "character": "Elanor A", + "name": "Ukrainian-UA", + "voice": "uk-UA-Wavenet-A", + "icon": "ua", + "voiceProvider": "google", + "locale": "uk-UA", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-uk-ua-wavenet-a-uk-ua.mp3", + "approxDurationCoeficient": 16 + } + ] + }, + { + "name": "Urdu", + "male": [ + { + "voiceProvider": "azure", + "character": "Salman", + "name": "Urdu (India)", + "locale": "ur-IN", + "voice": "ur-IN-SalmanNeural", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ur-in-salmanneural-ur-in.mp3", + "approxDurationCoeficient": 14 + }, + { + "voiceProvider": "azure", + "character": "Asad", + "name": "Urdu (Pakistan)", + "locale": "ur-PK", + "voice": "ur-PK-AsadNeural", + "icon": "pk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ur-pk-asadneural-ur-in.mp3", + "approxDurationCoeficient": 14 + }, + { + "character": "Oscar B", + "name": "Urdu-IN", + "voice": "ur-IN-Wavenet-B", + "icon": "in", + "voiceProvider": "google", + "locale": "ur-IN", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-ur-in-wavenet-b-ur-in.mp3" + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Gul", + "name": "Urdu (India)", + "locale": "ur-IN", + "voice": "ur-IN-GulNeural", + "icon": "in", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ur-in-gulneural-ur-in.mp3", + "approxDurationCoeficient": 14 + }, + { + "voiceProvider": "azure", + "character": "Uzma", + "name": "Urdu (Pakistan)", + "locale": "ur-PK", + "voice": "ur-PK-UzmaNeural", + "icon": "pk", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-ur-pk-uzmaneural-ur-in.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Elanor A", + "name": "Urdu-IN", + "voice": "ur-IN-Wavenet-A", + "icon": "in", + "voiceProvider": "google", + "locale": "ur-IN", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-ur-in-wavenet-a-ur-in.mp3", + "approxDurationCoeficient": 8 + } + ] + }, + { + "name": "Uzbek", + "male": [ + { + "voiceProvider": "azure", + "character": "Sardor", + "name": "Uzbek (Latin, Uzbekistan)", + "locale": "uz-UZ", + "voice": "uz-UZ-SardorNeural", + "icon": "uz", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-uz-uz-sardorneural-uz-uz.mp3", + "approxDurationCoeficient": 17 + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Madina", + "name": "Uzbek (Latin, Uzbekistan)", + "locale": "uz-UZ", + "voice": "uz-UZ-MadinaNeural", + "icon": "uz", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-uz-uz-madinaneural-uz-uz.mp3", + "approxDurationCoeficient": 16 + } + ] + }, + { + "name": "Vietnamese", + "male": [ + { + "voiceProvider": "azure", + "character": "NamMinh", + "name": "Vietnamese (Vietnam)", + "locale": "vi-VN", + "voice": "vi-VN-NamMinhNeural", + "icon": "vn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-vi-vn-namminhneural-vi-vn.mp3", + "approxDurationCoeficient": 18 + }, + { + "character": "Oscar D", + "name": "Vietnamese-VN", + "voice": "vi-VN-Neural2-D", + "icon": "vn", + "voiceProvider": "google", + "locale": "vi-VN", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-vi-vn-neural2-d-vi-vn.mp3", + "approxDurationCoeficient": 18 + }, + { + "character": "Miles B", + "name": "Vietnamese-VN", + "voice": "vi-VN-Wavenet-B", + "icon": "vn", + "voiceProvider": "google", + "locale": "vi-VN", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-vi-vn-wavenet-b-vi-vn.mp3", + "approxDurationCoeficient": 19 + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "HoaiMy", + "name": "Vietnamese (Vietnam)", + "locale": "vi-VN", + "voice": "vi-VN-HoaiMyNeural", + "icon": "vn", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-vi-vn-hoaimyneural-vi-vn.mp3", + "approxDurationCoeficient": 18 + }, + { + "character": "Elanor A", + "name": "Vietnamese-VN", + "voice": "vi-VN-Neural2-A", + "icon": "vn", + "voiceProvider": "google", + "locale": "vi-VN", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-vi-vn-neural2-a-vi-vn.mp3", + "approxDurationCoeficient": 15 + }, + { + "character": "Lucy C", + "name": "Vietnamese-VN", + "voice": "vi-VN-Wavenet-C", + "icon": "vn", + "voiceProvider": "google", + "locale": "vi-VN", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/google/google-vi-vn-wavenet-c-vi-vn.mp3", + "approxDurationCoeficient": 18 + } + ] + }, + { + "name": "Welsh", + "male": [ + { + "voiceProvider": "azure", + "character": "Aled", + "name": "Welsh (United Kingdom)", + "locale": "cy-GB", + "voice": "cy-GB-AledNeural", + "icon": "gb", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-cy-gb-aledneural-cy-gb.mp3", + "approxDurationCoeficient": 16 + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Nia", + "name": "Welsh (United Kingdom)", + "locale": "cy-GB", + "voice": "cy-GB-NiaNeural", + "icon": "gb", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-cy-gb-nianeural-cy-gb.mp3", + "approxDurationCoeficient": 15 + } + ] + }, + { + "name": "Zulu", + "male": [ + { + "voiceProvider": "azure", + "character": "Themba", + "name": "Zulu (South Africa)", + "locale": "zu-ZA", + "voice": "zu-ZA-ThembaNeural", + "icon": "za", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zu-za-thembaneural-zu-za.mp3", + "approxDurationCoeficient": 14 + } + ], + "female": [ + { + "voiceProvider": "azure", + "character": "Thando", + "name": "Zulu (South Africa)", + "locale": "zu-ZA", + "voice": "zu-ZA-ThandoNeural", + "icon": "za", + "url": "https://d3u63mhbhkevz8.cloudfront.net/voices/azure/azure-zu-za-thandoneural-zu-za.mp3", + "approxDurationCoeficient": 13 + } + ] + } + ] +} \ No newline at end of file diff --git a/firebase-configs/encoach-staging.json b/firebase-configs/encoach-staging.json index f1489a6..63e4f60 100644 --- a/firebase-configs/encoach-staging.json +++ b/firebase-configs/encoach-staging.json @@ -1,13 +1,13 @@ -{ - "type": "service_account", - "project_id": "encoach-staging", - "private_key_id": "5718a649419776df9637589f8696a258a6a70f6c", - "private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC2C6Es2gY8lLvH\ndVilNtRNm9glSaPXMNw2PzZZbSGuG1uGPFaCzlq1lOb2u17YfMG4GriKIMjIQKXF\nqdvxA8CAmAFRuDjUGmpbO/X1ZW7amOs5Bjed2BYmL01dEqzzwwh7rEfNDjeghRPx\n1uKzH8A6TLT5xq+74I5K1CIgiljBpZimsERu2SDawjkdtZfA7qoylA46Nq66LuwQ\nVyv9CK2SZNpBcT3sunCmRsrCzmSTzKdbcqRPdqUKgZOH/Rjp0sw9VuUgwoxdGZV3\n5SJjObo5ceZ1OSiJm7GwLzp7uq16sqycgSYwppNLI5OtzOfSuWbGD4+a044t2Mlq\n9PHXv7H/AgMBAAECggEAAfhKlFwq8MaL6PggRJq9HbaKgQ4fcOmCmy8AQmPNF1UM\nyVKSKGndjxUfPLCWsaaunUnjZlHoKkvndKXxDyttuVaBE9EiWEqNjRLZ3KpuJ9Jm\nH+CtLbmUCnISQb1n1AlvvZAwhLZbLBL/PhYyWiLapybZAdJAaOWLVKGgBD8gVRQW\nJFCqnszX1O2YlpWHutb979R4qoY/XAf94gyMkTpXZwuETvFqZbau2vxRZ8qARix3\nmic881PwiF6Cod8UPCS9yMK+Q+Se6SomwXU9PCmlummn9xmQBAxYy8gIAVs/J9Fg\n5SvhnImAPDd+zIzzw2cHCiruNWIhroMVZDZJgWdY1QKBgQDjTKKeFOur3ijJJL2/\nWg1SE2jLP0GpXzM5YMx6jdOCNDCzugPngRucRXiTkJ2FnUgyMcQyi6hyrbWXN/6z\nXhx5fwLB4tnTcqOMvNfcay5mDk3RW9ZZJxayB54Sf1Nm/4xiDBnGPT+iHQvK+/pT\nwScWznFkmk60E796o76OLn3PEwKBgQDNCC2uPq+uOcCopIO8HH88gqdxTvpbeHUU\nrdJOmr1VtGNuvay/mfpva9+VEtGbZTFzjhfvfCEIjpj3Llh8Flb9EYa6BmscBiyp\ngszEeFuB3zHndlSCZPnGJ7JiRAdPAEgG3Gl/r9th6PDaEMq0MFS5i7GGhPBIRYCG\nUtmY5eVy5QKBgH5Nuls/YsnJFD7ZNLscziQadvPhvZnhNbSfjmBXaP2EBMAKEFtX\nCcGndN4C0RVLFbAWqWAw7LR0xGA4FEcVd5snsZ+Nb98oZ6sv0H9B67F4J1O7xXsa\n1mitBPBgYjbsr9RXxwa6SB7MJx5vMGXUAeWRZ78wY6V7B76dOKkHOo+TAoGBAJf5\nBOsPueZZFm2qK58GPGVcrsI0+StNuPLP+H+dANQC9mTCIMaQWmm2Oq5jmYwmUKZH\nX4R6rH2MPOOSrbGkWWwRTpyaX1ARX49xzVefoqw8BOB8/Bz+vYjcKcPeitBK9Bhp\nzaUAc4s6PzRTl/xBirtRSQ/df8ECC0cFKBbF6PHlAoGAGqnlpo+k8vAtg6ulCuGu\nx2Y/c5UmvXGHk60pccnW3UtENSDnl99OgMfBz8/qLAMWs6DUQ/kvSlHQPmMBHRWZ\nNTr6ceGXyNs4KdYoj1K7AU3c0Lm0wyQ2giQMoOOUQAm98Xr8z5aiihj10hHPmzzL\n9kwpOmZpjNmC/ERD69imWhY=\n-----END PRIVATE KEY-----\n", - "client_email": "firebase-adminsdk-8rs9e@encoach-staging.iam.gserviceaccount.com", - "client_id": "108221424237414412378", - "auth_uri": "https://accounts.google.com/o/oauth2/auth", - "token_uri": "https://oauth2.googleapis.com/token", - "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", - "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/firebase-adminsdk-8rs9e%40encoach-staging.iam.gserviceaccount.com", - "universe_domain": "googleapis.com" +{ + "type": "service_account", + "project_id": "encoach-staging", + "private_key_id": "5718a649419776df9637589f8696a258a6a70f6c", + "private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC2C6Es2gY8lLvH\ndVilNtRNm9glSaPXMNw2PzZZbSGuG1uGPFaCzlq1lOb2u17YfMG4GriKIMjIQKXF\nqdvxA8CAmAFRuDjUGmpbO/X1ZW7amOs5Bjed2BYmL01dEqzzwwh7rEfNDjeghRPx\n1uKzH8A6TLT5xq+74I5K1CIgiljBpZimsERu2SDawjkdtZfA7qoylA46Nq66LuwQ\nVyv9CK2SZNpBcT3sunCmRsrCzmSTzKdbcqRPdqUKgZOH/Rjp0sw9VuUgwoxdGZV3\n5SJjObo5ceZ1OSiJm7GwLzp7uq16sqycgSYwppNLI5OtzOfSuWbGD4+a044t2Mlq\n9PHXv7H/AgMBAAECggEAAfhKlFwq8MaL6PggRJq9HbaKgQ4fcOmCmy8AQmPNF1UM\nyVKSKGndjxUfPLCWsaaunUnjZlHoKkvndKXxDyttuVaBE9EiWEqNjRLZ3KpuJ9Jm\nH+CtLbmUCnISQb1n1AlvvZAwhLZbLBL/PhYyWiLapybZAdJAaOWLVKGgBD8gVRQW\nJFCqnszX1O2YlpWHutb979R4qoY/XAf94gyMkTpXZwuETvFqZbau2vxRZ8qARix3\nmic881PwiF6Cod8UPCS9yMK+Q+Se6SomwXU9PCmlummn9xmQBAxYy8gIAVs/J9Fg\n5SvhnImAPDd+zIzzw2cHCiruNWIhroMVZDZJgWdY1QKBgQDjTKKeFOur3ijJJL2/\nWg1SE2jLP0GpXzM5YMx6jdOCNDCzugPngRucRXiTkJ2FnUgyMcQyi6hyrbWXN/6z\nXhx5fwLB4tnTcqOMvNfcay5mDk3RW9ZZJxayB54Sf1Nm/4xiDBnGPT+iHQvK+/pT\nwScWznFkmk60E796o76OLn3PEwKBgQDNCC2uPq+uOcCopIO8HH88gqdxTvpbeHUU\nrdJOmr1VtGNuvay/mfpva9+VEtGbZTFzjhfvfCEIjpj3Llh8Flb9EYa6BmscBiyp\ngszEeFuB3zHndlSCZPnGJ7JiRAdPAEgG3Gl/r9th6PDaEMq0MFS5i7GGhPBIRYCG\nUtmY5eVy5QKBgH5Nuls/YsnJFD7ZNLscziQadvPhvZnhNbSfjmBXaP2EBMAKEFtX\nCcGndN4C0RVLFbAWqWAw7LR0xGA4FEcVd5snsZ+Nb98oZ6sv0H9B67F4J1O7xXsa\n1mitBPBgYjbsr9RXxwa6SB7MJx5vMGXUAeWRZ78wY6V7B76dOKkHOo+TAoGBAJf5\nBOsPueZZFm2qK58GPGVcrsI0+StNuPLP+H+dANQC9mTCIMaQWmm2Oq5jmYwmUKZH\nX4R6rH2MPOOSrbGkWWwRTpyaX1ARX49xzVefoqw8BOB8/Bz+vYjcKcPeitBK9Bhp\nzaUAc4s6PzRTl/xBirtRSQ/df8ECC0cFKBbF6PHlAoGAGqnlpo+k8vAtg6ulCuGu\nx2Y/c5UmvXGHk60pccnW3UtENSDnl99OgMfBz8/qLAMWs6DUQ/kvSlHQPmMBHRWZ\nNTr6ceGXyNs4KdYoj1K7AU3c0Lm0wyQ2giQMoOOUQAm98Xr8z5aiihj10hHPmzzL\n9kwpOmZpjNmC/ERD69imWhY=\n-----END PRIVATE KEY-----\n", + "client_email": "firebase-adminsdk-8rs9e@encoach-staging.iam.gserviceaccount.com", + "client_id": "108221424237414412378", + "auth_uri": "https://accounts.google.com/o/oauth2/auth", + "token_uri": "https://oauth2.googleapis.com/token", + "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", + "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/firebase-adminsdk-8rs9e%40encoach-staging.iam.gserviceaccount.com", + "universe_domain": "googleapis.com" } \ No newline at end of file diff --git a/firebase-configs/mti-ielts-626a2dcf6091.json b/firebase-configs/mti-ielts-626a2dcf6091.json index 3bf3594..fc7a898 100644 --- a/firebase-configs/mti-ielts-626a2dcf6091.json +++ b/firebase-configs/mti-ielts-626a2dcf6091.json @@ -1,13 +1,13 @@ -{ - "type": "service_account", - "project_id": "mti-ielts", - "private_key_id": "626a2dcf60916a1b5011f388495b8f9c4fc065ef", - "private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDuaLgLNa5yb5LI\nPZYa7qav0URgCF7miK3dUXIBoABQ+U6y1LwdsIiJqHZ4Cm2lotTqeTGOIV83PuA6\n9H/TwnvsHH8jilmsPxO5OX7AyZSDPvN45nJrgQ21RKZCYQGVetBMGhclCRbYFraS\nE6X/p6gSOpSqZ5fLz8BbdCMfib6HSfDmBkYTK42X6d2eNNwLM1wLbE8RmCGwRATC\nQFfMhjlvQcSJ1EDMfkMUUE9U/ux77wfHqs1d+7utVcQTIMFAP9fo1ynJlwp8D1HQ\ntalB6kkpuDQetUR0A1FHMMJekhmuRDUMfokX1F9JfUjR0OetuD3KEH5y2asxC2+0\n8JYcwbvlAgMBAAECggEAKaaW3LJ8rxZp/NyxkDP4YAf9248q0Ti4s00qzzjeRUdA\n5gI/eSphuDb7t34O6NyZOPuCWlPfOB4ee35CpMK59qaF2bYuc2azseznBZRSA1no\nnEsaW0i5Fd2P9FHRPoWtxVXbjEdZu9e//qY7Hn5yYPjmBx1BCkTZ1MBl8HkWlbjR\nbu18uveg5Vg6Wc+rnPmH/gMRLLpq9iQBpzXWT8Mj+k48O8GnW6v8S3R027ymqUou\n3W5b69xDGn0nwxgLIVzdxjoo7RnpjD3mP0x4faiBhScVgFhwZP8hqBeVyqbV5dMh\nfF+p9zLOeilFLJEjH1lZbZAb8wwP23LozIXJWFG3oQKBgQD6COCJ7hNSx9/AzDhO\nh73hKH/KSOJtxHc8795hcZjy9HJkoM45Fm7o2QGZzsZmV+N6VU0BjoDQAyftCq+G\ndIX0wcAGJIsLuQ9K00WI2hn7Uq1gjUl0d9XEorogKa1ZNTLL/9By/xnA7sEpI6Ng\nIsKQ4R2CfqNFU4bs1nyKWCWudQKBgQD0GNYwZt3xV2YBATVYsrvg1OGO/tmkCJ8Y\nLOdM0L+8WMCgw0uQcNFF9uqq6/oFgq7tOvpeZDsY8onRy55saaMT+Lr4xs0sj5B0\ns5Hqc0L37tdXXXXEne8WABMBF9injNgNbAm9W0kqME2Stc53OJQPj2DBdYxWSr8v\n36imCwoJsQKBgH0BBSlQQo7naKFeOGRijvbLpZ//clzIlYh8r+Rtw7brqWlPz+pQ\noeB95cP80coG9K6LiPVXRmU4vrRO3FRPW01ztEod6PpSaifRmnkB+W1h91ZHLMsy\nwkgNxxofXBA2fY/p9FAZ48lGVIH51EtS9Y0zTuqX347gZJtx3E/aI/SlAoGBAJer\nCwM+F2+K352GM7BuNiDoBVLFdVPf64Ko+/sVxdzwxJffYQdZoh634m3bfBmKbsiG\nmeSmoLXKlenefAxewu544SwM0pV6isaIgQTNI3JMXE8ziiZl/5WK7EQEniDVebU1\nSQP4QYjORJUBFE2twQm+C9+I+27uuMa1UOQC/fSxAoGBANuWloacqGfws6nbHvqF\nLZKlkKNPI/0sC+6VlqjoHn5LQz3lcFM1+iKSQIGJvJyru2ODgv2Lmq2W+cx+HMeq\n0BSetK4XtalmO9YflH7uMgvOEVewf4uJ2d+4I1pbY9aI1gHaZ1EUiiy6Ds4kAK8s\nTQqp88pfTbOnkdJBVi0AWs5B\n-----END PRIVATE KEY-----\n", - "client_email": "firebase-adminsdk-dyg6p@mti-ielts.iam.gserviceaccount.com", - "client_id": "104980563453519094431", - "auth_uri": "https://accounts.google.com/o/oauth2/auth", - "token_uri": "https://oauth2.googleapis.com/token", - "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", - "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/firebase-adminsdk-dyg6p%40mti-ielts.iam.gserviceaccount.com", - "universe_domain": "googleapis.com" -} +{ + "type": "service_account", + "project_id": "mti-ielts", + "private_key_id": "626a2dcf60916a1b5011f388495b8f9c4fc065ef", + "private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDuaLgLNa5yb5LI\nPZYa7qav0URgCF7miK3dUXIBoABQ+U6y1LwdsIiJqHZ4Cm2lotTqeTGOIV83PuA6\n9H/TwnvsHH8jilmsPxO5OX7AyZSDPvN45nJrgQ21RKZCYQGVetBMGhclCRbYFraS\nE6X/p6gSOpSqZ5fLz8BbdCMfib6HSfDmBkYTK42X6d2eNNwLM1wLbE8RmCGwRATC\nQFfMhjlvQcSJ1EDMfkMUUE9U/ux77wfHqs1d+7utVcQTIMFAP9fo1ynJlwp8D1HQ\ntalB6kkpuDQetUR0A1FHMMJekhmuRDUMfokX1F9JfUjR0OetuD3KEH5y2asxC2+0\n8JYcwbvlAgMBAAECggEAKaaW3LJ8rxZp/NyxkDP4YAf9248q0Ti4s00qzzjeRUdA\n5gI/eSphuDb7t34O6NyZOPuCWlPfOB4ee35CpMK59qaF2bYuc2azseznBZRSA1no\nnEsaW0i5Fd2P9FHRPoWtxVXbjEdZu9e//qY7Hn5yYPjmBx1BCkTZ1MBl8HkWlbjR\nbu18uveg5Vg6Wc+rnPmH/gMRLLpq9iQBpzXWT8Mj+k48O8GnW6v8S3R027ymqUou\n3W5b69xDGn0nwxgLIVzdxjoo7RnpjD3mP0x4faiBhScVgFhwZP8hqBeVyqbV5dMh\nfF+p9zLOeilFLJEjH1lZbZAb8wwP23LozIXJWFG3oQKBgQD6COCJ7hNSx9/AzDhO\nh73hKH/KSOJtxHc8795hcZjy9HJkoM45Fm7o2QGZzsZmV+N6VU0BjoDQAyftCq+G\ndIX0wcAGJIsLuQ9K00WI2hn7Uq1gjUl0d9XEorogKa1ZNTLL/9By/xnA7sEpI6Ng\nIsKQ4R2CfqNFU4bs1nyKWCWudQKBgQD0GNYwZt3xV2YBATVYsrvg1OGO/tmkCJ8Y\nLOdM0L+8WMCgw0uQcNFF9uqq6/oFgq7tOvpeZDsY8onRy55saaMT+Lr4xs0sj5B0\ns5Hqc0L37tdXXXXEne8WABMBF9injNgNbAm9W0kqME2Stc53OJQPj2DBdYxWSr8v\n36imCwoJsQKBgH0BBSlQQo7naKFeOGRijvbLpZ//clzIlYh8r+Rtw7brqWlPz+pQ\noeB95cP80coG9K6LiPVXRmU4vrRO3FRPW01ztEod6PpSaifRmnkB+W1h91ZHLMsy\nwkgNxxofXBA2fY/p9FAZ48lGVIH51EtS9Y0zTuqX347gZJtx3E/aI/SlAoGBAJer\nCwM+F2+K352GM7BuNiDoBVLFdVPf64Ko+/sVxdzwxJffYQdZoh634m3bfBmKbsiG\nmeSmoLXKlenefAxewu544SwM0pV6isaIgQTNI3JMXE8ziiZl/5WK7EQEniDVebU1\nSQP4QYjORJUBFE2twQm+C9+I+27uuMa1UOQC/fSxAoGBANuWloacqGfws6nbHvqF\nLZKlkKNPI/0sC+6VlqjoHn5LQz3lcFM1+iKSQIGJvJyru2ODgv2Lmq2W+cx+HMeq\n0BSetK4XtalmO9YflH7uMgvOEVewf4uJ2d+4I1pbY9aI1gHaZ1EUiiy6Ds4kAK8s\nTQqp88pfTbOnkdJBVi0AWs5B\n-----END PRIVATE KEY-----\n", + "client_email": "firebase-adminsdk-dyg6p@mti-ielts.iam.gserviceaccount.com", + "client_id": "104980563453519094431", + "auth_uri": "https://accounts.google.com/o/oauth2/auth", + "token_uri": "https://oauth2.googleapis.com/token", + "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", + "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/firebase-adminsdk-dyg6p%40mti-ielts.iam.gserviceaccount.com", + "universe_domain": "googleapis.com" +} diff --git a/firebase-configs/storied-phalanx-349916.json b/firebase-configs/storied-phalanx-349916.json index 71aab34..83da44e 100644 --- a/firebase-configs/storied-phalanx-349916.json +++ b/firebase-configs/storied-phalanx-349916.json @@ -1,13 +1,13 @@ -{ - "type": "service_account", - "project_id": "storied-phalanx-349916", - "private_key_id": "c9e05f6fe413b1031a71f981160075ff4b044444", - "private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDdgavFB63nMHyb\n38ncwijTrUmqU9UyzNJ8wlZCWAWuoz25Gng988fkKNDXnHY+ap9esHyNYg9IdSA7\nAuZeHpzTZmKiWZzFWq61KWSTgIn1JwKHGHJJdmVhTYfCe9I51cFLa5q2lTFzJ0ce\nbP7/X/7kw53odgva+M8AhDTbe60akpemgZc+LFwO0Abm7erH2HiNyjoNZzNw525L\n933PCaQwhZan04s1u0oRdVlBIBwMk+J0ojgVEpUiJOzF7gkN+UpDXujalLYdlR4q\nhkGgScXQhDYJkECC3GuvOnEo1YXGNjW9D73S6sSH+Lvqta4wW1+sTn0kB6goiQBI\n7cA1G6x3AgMBAAECggEAZPMwAX/adb7XS4LWUNH8IVyccg/63kgSteErxtiu3kRv\nYOj7W+C6fPVNGLap/RBCybjNSvIh3PfkVICh1MtG1eGXmj4VAKyvaskOmVq/hQbe\nVAuEKo7W7V2UPcKIsOsGSQUlYYjlHIIOG4O5Q1HQrRmp4cPK62Txkl6uaEkZPz4u\nbvIK2BJI8aHRwxE3Phw09blwlLqQQQ8nrhK29x5puaN+ft++IlzIOVsLz+n4kTdB\n6qkG/dhenn3K8o3+NkmSN6eNRbdJd36zXTo4Oatbvqb7r0E8vYn/3Llawo2X75zn\nec7jMHrOmcwtiu9H3PsrTWtzdSjxPHy0UtEn1HWK4QKBgQD+c/V8tAvbaUGVoZf6\ntKtDSKF6IHuY2vUO33v950mVdjrTursqOG2d+SLfSnKpc+sjDlj7/S5u4uRP+qUN\ng1rb2U7oIA7tsDa2ZTSkIx6HkPUzS+fBOxELLrbgMoJ2RLzgkiPhS95YgXJ/rYG5\nWQTehzCT5roes0RvtgM0gl3EhQKBgQDe2m7PRIU4g3RJ8HTx92B4ja8W9FVCYDG5\nPOAdZB8WB6Bvu4BJHBDLr8vDi930pKj+vYObRqBDQuILW4t8wZQJ834dnoq6EpUz\nhbVEURVBP4A/nEHrQHfq0Lp+cxThy2rw7obRQOLPETtC7p3WFgSHT6PRTcpGzCCX\n+76a30yrywKBgC/5JNtyBppDaf4QDVtTHMb+tpMT9LmI7pLzR6lDJfhr5gNtPURk\nhyY1hoGaw6t3E2n0lopL3alCVdFObDfz//lbKylQggAGLQqOYjJf/K2KgvA862Df\nBgOZtxjl7PrnUsT0SJd9elotbazsxXxwcB6UVnBMG+MV4V0+b7RCr/MRAoGBAIfp\nTcVIs7roqOZjKN9dEE/VkR/9uXW2tvyS/NfP9Ql5c0ZRYwazgCbJOwsyZRZLyek6\naWYsp5b91mA435QhdwiuoI6t30tmA+qdNBTLIpxdfvjMcoNoGPpzfBmcU/L1HW58\n+mnqGalRiAPlBQvI99ASKQWAXMnaulIWrYNEhj0LAoGBALi+QZ2pp+hDeC59ezWr\nbP1zbbONceHKGgJcevChP2k1OJyIOIqmBYeTuM4cPc5ofZYQNaMC31cs8SVeSRX1\nNTxQZmvCjMyTe/WYWYNFXdgkVz4egFXbeochCGzMYo57HV1PCkPBrARRZO8OfdDD\n8sDu//ohb7nCzceEI0DnWs13\n-----END PRIVATE KEY-----\n", - "client_email": "firebase-adminsdk-3ml0u@storied-phalanx-349916.iam.gserviceaccount.com", - "client_id": "114163760341944984396", - "auth_uri": "https://accounts.google.com/o/oauth2/auth", - "token_uri": "https://oauth2.googleapis.com/token", - "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", - "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/firebase-adminsdk-3ml0u%40storied-phalanx-349916.iam.gserviceaccount.com", - "universe_domain": "googleapis.com" +{ + "type": "service_account", + "project_id": "storied-phalanx-349916", + "private_key_id": "c9e05f6fe413b1031a71f981160075ff4b044444", + "private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDdgavFB63nMHyb\n38ncwijTrUmqU9UyzNJ8wlZCWAWuoz25Gng988fkKNDXnHY+ap9esHyNYg9IdSA7\nAuZeHpzTZmKiWZzFWq61KWSTgIn1JwKHGHJJdmVhTYfCe9I51cFLa5q2lTFzJ0ce\nbP7/X/7kw53odgva+M8AhDTbe60akpemgZc+LFwO0Abm7erH2HiNyjoNZzNw525L\n933PCaQwhZan04s1u0oRdVlBIBwMk+J0ojgVEpUiJOzF7gkN+UpDXujalLYdlR4q\nhkGgScXQhDYJkECC3GuvOnEo1YXGNjW9D73S6sSH+Lvqta4wW1+sTn0kB6goiQBI\n7cA1G6x3AgMBAAECggEAZPMwAX/adb7XS4LWUNH8IVyccg/63kgSteErxtiu3kRv\nYOj7W+C6fPVNGLap/RBCybjNSvIh3PfkVICh1MtG1eGXmj4VAKyvaskOmVq/hQbe\nVAuEKo7W7V2UPcKIsOsGSQUlYYjlHIIOG4O5Q1HQrRmp4cPK62Txkl6uaEkZPz4u\nbvIK2BJI8aHRwxE3Phw09blwlLqQQQ8nrhK29x5puaN+ft++IlzIOVsLz+n4kTdB\n6qkG/dhenn3K8o3+NkmSN6eNRbdJd36zXTo4Oatbvqb7r0E8vYn/3Llawo2X75zn\nec7jMHrOmcwtiu9H3PsrTWtzdSjxPHy0UtEn1HWK4QKBgQD+c/V8tAvbaUGVoZf6\ntKtDSKF6IHuY2vUO33v950mVdjrTursqOG2d+SLfSnKpc+sjDlj7/S5u4uRP+qUN\ng1rb2U7oIA7tsDa2ZTSkIx6HkPUzS+fBOxELLrbgMoJ2RLzgkiPhS95YgXJ/rYG5\nWQTehzCT5roes0RvtgM0gl3EhQKBgQDe2m7PRIU4g3RJ8HTx92B4ja8W9FVCYDG5\nPOAdZB8WB6Bvu4BJHBDLr8vDi930pKj+vYObRqBDQuILW4t8wZQJ834dnoq6EpUz\nhbVEURVBP4A/nEHrQHfq0Lp+cxThy2rw7obRQOLPETtC7p3WFgSHT6PRTcpGzCCX\n+76a30yrywKBgC/5JNtyBppDaf4QDVtTHMb+tpMT9LmI7pLzR6lDJfhr5gNtPURk\nhyY1hoGaw6t3E2n0lopL3alCVdFObDfz//lbKylQggAGLQqOYjJf/K2KgvA862Df\nBgOZtxjl7PrnUsT0SJd9elotbazsxXxwcB6UVnBMG+MV4V0+b7RCr/MRAoGBAIfp\nTcVIs7roqOZjKN9dEE/VkR/9uXW2tvyS/NfP9Ql5c0ZRYwazgCbJOwsyZRZLyek6\naWYsp5b91mA435QhdwiuoI6t30tmA+qdNBTLIpxdfvjMcoNoGPpzfBmcU/L1HW58\n+mnqGalRiAPlBQvI99ASKQWAXMnaulIWrYNEhj0LAoGBALi+QZ2pp+hDeC59ezWr\nbP1zbbONceHKGgJcevChP2k1OJyIOIqmBYeTuM4cPc5ofZYQNaMC31cs8SVeSRX1\nNTxQZmvCjMyTe/WYWYNFXdgkVz4egFXbeochCGzMYo57HV1PCkPBrARRZO8OfdDD\n8sDu//ohb7nCzceEI0DnWs13\n-----END PRIVATE KEY-----\n", + "client_email": "firebase-adminsdk-3ml0u@storied-phalanx-349916.iam.gserviceaccount.com", + "client_id": "114163760341944984396", + "auth_uri": "https://accounts.google.com/o/oauth2/auth", + "token_uri": "https://oauth2.googleapis.com/token", + "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", + "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/firebase-adminsdk-3ml0u%40storied-phalanx-349916.iam.gserviceaccount.com", + "universe_domain": "googleapis.com" } \ No newline at end of file diff --git a/helper/api_messages.py b/helper/api_messages.py deleted file mode 100644 index a32a66f..0000000 --- a/helper/api_messages.py +++ /dev/null @@ -1,441 +0,0 @@ -from enum import Enum - -from typing import List - - -class QuestionType(Enum): - LISTENING_SECTION_1 = "Listening Section 1" - LISTENING_SECTION_2 = "Listening Section 2" - LISTENING_SECTION_3 = "Listening Section 3" - LISTENING_SECTION_4 = "Listening Section 4" - WRITING_TASK_1 = "Writing Task 1" - WRITING_TASK_2 = "Writing Task 2" - SPEAKING_1 = "Speaking Task Part 1" - SPEAKING_2 = "Speaking Task Part 2" - READING_PASSAGE_1 = "Reading Passage 1" - READING_PASSAGE_2 = "Reading Passage 2" - READING_PASSAGE_3 = "Reading Passage 3" - - -def get_grading_messages(question_type: QuestionType, question: str, answer: str, context: str = None): - if QuestionType.WRITING_TASK_1 == question_type: - messages = [ - { - "role": "user", - "content": "You are a IELTS examiner.", - }, - { - "role": "user", - "content": f"The question you have to grade is of type Writing Task 1 and is the following: {question}", - } - ] - - if not (context is None or context == ""): - messages.append({ - "role": "user", - "content": f"To grade the previous question, bear in mind the following context: {context}", - }) - - messages.extend([ - { - "role": "user", - "content": "It is mandatory for you to provide your response with the overall grade and breakdown grades, " - "with just the following json format: {'comment': 'comment about answer quality', 'overall': 7.0, " - "'task_response': {'Task Achievement': 8.0, 'Coherence and Cohesion': 6.5, 'Lexical Resource': 7.5, " - "'Grammatical Range and Accuracy': 6.0}}", - }, - { - "role": "user", - "content": "Example output: { 'comment': 'Overall, the response is good but there are some areas that need " - "improvement.\n\nIn terms of Task Achievement, the writer has addressed all parts of the question " - "and has provided a clear opinion on the topic. However, some of the points made are not fully " - "developed or supported with examples.\n\nIn terms of Coherence and Cohesion, there is a clear " - "structure to the response with an introduction, body paragraphs and conclusion. However, there " - "are some issues with cohesion as some sentences do not flow smoothly from one to another.\n\nIn " - "terms of Lexical Resource, there is a good range of vocabulary used throughout the response and " - "some less common words have been used effectively.\n\nIn terms of Grammatical Range and Accuracy, " - "there are some errors in grammar and sentence structure which affect clarity in places.\n\nOverall, " - "this response would score a band 6.5.', 'overall': 6.5, 'task_response': " - "{ 'Coherence and Cohesion': 6.5, 'Grammatical Range and Accuracy': 6.0, 'Lexical Resource': 7.0, " - "'Task Achievement': 7.0}}", - }, - { - "role": "user", - "content": f"Evaluate this answer according to ielts grading system: {answer}", - }, - ]) - return messages - elif QuestionType.WRITING_TASK_2 == question_type: - return [ - { - "role": "user", - "content": "You are a IELTS examiner.", - }, - { - "role": "user", - "content": f"The question you have to grade is of type Writing Task 2 and is the following: {question}", - }, - { - "role": "user", - "content": "It is mandatory for you to provide your response with the overall grade and breakdown grades, " - "with just the following json format: {'comment': 'comment about answer quality', 'overall': 7.0, " - "'task_response': {'Task Achievement': 8.0, 'Coherence and Cohesion': 6.5, 'Lexical Resource': 7.5, " - "'Grammatical Range and Accuracy': 6.0}}", - }, - { - "role": "user", - "content": "Example output: { 'comment': 'Overall, the response is good but there are some areas that need " - "improvement.\n\nIn terms of Task Achievement, the writer has addressed all parts of the question " - "and has provided a clear opinion on the topic. However, some of the points made are not fully " - "developed or supported with examples.\n\nIn terms of Coherence and Cohesion, there is a clear " - "structure to the response with an introduction, body paragraphs and conclusion. However, there " - "are some issues with cohesion as some sentences do not flow smoothly from one to another.\n\nIn " - "terms of Lexical Resource, there is a good range of vocabulary used throughout the response and " - "some less common words have been used effectively.\n\nIn terms of Grammatical Range and Accuracy, " - "there are some errors in grammar and sentence structure which affect clarity in places.\n\nOverall, " - "this response would score a band 6.5.', 'overall': 6.5, 'task_response': " - "{ 'Coherence and Cohesion': 6.5, 'Grammatical Range and Accuracy': 6.0, 'Lexical Resource': 7.0, " - "'Task Achievement': 7.0}}", - }, - { - "role": "user", - "content": f"Evaluate this answer according to ielts grading system: {answer}", - }, - ] - elif QuestionType.SPEAKING_1 == question_type: - return [ - { - "role": "user", - "content": "You are an IELTS examiner." - }, - { - "role": "user", - "content": f"The question you need to grade is a Speaking Task Part 1 question, and it is as follows: {question}" - }, - { - "role": "user", - "content": "Please provide your assessment using the following JSON format: {'comment': 'Comment about answer " - "quality will go here', 'overall': 7.0, 'task_response': {'Fluency and " - "Coherence': 8.0, 'Lexical Resource': 6.5, 'Grammatical Range and Accuracy': 7.5, 'Pronunciation': 6.0}}" - }, - { - "role": "user", - "content": "Example output: {'comment': 'Comment about answer quality will go here', 'overall': 6.5, " - "'task_response': {'Fluency and Coherence': 7.0, " - "'Lexical Resource': 6.5, 'Grammatical Range and Accuracy': 7.0, 'Pronunciation': 6.0}}" - }, - { - "role": "user", - "content": "Please assign a grade of 0 if the answer provided does not address the question." - }, - { - "role": "user", - "content": f"Assess this answer according to the IELTS grading system: {answer}" - }, - { - "role": "user", - "content": "Remember to consider Fluency and Coherence, Lexical Resource, Grammatical Range and Accuracy, " - "and Pronunciation when grading the response." - } - ] - elif QuestionType.SPEAKING_2 == question_type: - return [ - { - "role": "user", - "content": "You are an IELTS examiner." - }, - { - "role": "user", - "content": f"The question you need to grade is a Speaking Task Part 2 question, and it is as follows: {question}" - }, - { - "role": "user", - "content": "Please provide your assessment using the following JSON format: {\"comment\": \"Comment about " - "answer quality\", \"overall\": 7.0, \"task_response\": {\"Fluency and Coherence\": 8.0, \"Lexical " - "Resource\": 6.5, \"Grammatical Range and Accuracy\": 7.5, \"Pronunciation\": 6.0}}" - }, - { - "role": "user", - "content": "Example output: {\"comment\": \"The candidate has provided a clear response to the question " - "and has given examples of how they spend their weekends. However, there are some issues with " - "grammar and pronunciation that affect the overall score. In terms of fluency and coherence, " - "the candidate speaks clearly and smoothly with only minor hesitations. They have also provided " - "a well-organized response that is easy to follow. Regarding lexical resource, the candidate " - "has used a range of vocabulary related to weekend activities but there are some errors in " - "word choice that affect the meaning of their sentences. In terms of grammatical range and " - "accuracy, the candidate has used a mix of simple and complex sentence structures but there " - "are some errors in subject-verb agreement and preposition use. Finally, regarding pronunciation, " - "the candidate's speech is generally clear but there are some issues with stress and intonation " - "that make it difficult to understand at times.\", \"overall\": 6.5, \"task_response\": {\"Fluency " - "and Coherence\": 7.0, \"Lexical Resource\": 6.5, \"Grammatical Range and Accuracy\": 7.0, " - "\"Pronunciation\": 6.0}}" - }, - { - "role": "user", - "content": "Please assign a grade of 0 if the answer provided does not address the question." - }, - { - "role": "user", - "content": f"Assess this answer according to the IELTS grading system: {answer}" - }, - { - "role": "user", - "content": "Remember to consider Fluency and Coherence, Lexical Resource, Grammatical Range and Accuracy, " - "and Pronunciation when grading the response." - } - ] - else: - raise Exception("Question type not implemented: " + question_type.value) - - -def get_speaking_grading_messages(answers: List): - messages = [ - { - "role": "user", - "content": "You are an IELTS examiner." - }, - { - "role": "user", - "content": "The exercise you need to grade is a Speaking Task, and it is has the following questions and answers:" - } - ] - for item in answers: - question = item["question"] - answer = item["answer_text"] - messages.append({ - "role": "user", - "content": f"Question: {question}; Answer: {answer}" - }) - messages.extend([ - { - "role": "user", - "content": f"Assess this answer according to the IELTS grading system." - }, - { - "role": "user", - "content": "Please provide your assessment using the following JSON format: {'comment': 'Comment about answer " - "quality will go here', 'overall': 7.0, 'task_response': {'Fluency and " - "Coherence': 8.0, 'Lexical Resource': 6.5, 'Grammatical Range and Accuracy': 7.5, 'Pronunciation': 6.0}}" - }, - { - "role": "user", - "content": "Example output: {'comment': 'Comment about answer quality will go here', 'overall': 6.5, " - "'task_response': {'Fluency and Coherence': 7.0, " - "'Lexical Resource': 6.5, 'Grammatical Range and Accuracy': 7.0, 'Pronunciation': 6.0}}" - }, - { - "role": "user", - "content": "Please assign a grade of 0 if the answer provided does not address the question." - }, - { - "role": "user", - "content": "Remember to consider Fluency and Coherence, Lexical Resource, Grammatical Range and Accuracy, " - "and Pronunciation when grading the response." - } - ]) - return messages - - -def get_question_gen_messages(question_type: QuestionType): - if QuestionType.LISTENING_SECTION_1 == question_type: - return [ - { - "role": "user", - "content": "You are a IELTS program that generates questions for the exams.", - }, - { - "role": "user", - "content": "Provide me with a transcript similar to the ones in ielts exam Listening Section 1. " - "Create an engaging transcript simulating a conversation related to a unique type of service " - "that requires getting the customer's details. Make sure to include specific details " - "and descriptions to bring" - "the scenario to life. After the transcript, please " - "generate a 'form like' fill in the blanks exercise with 6 form fields (ex: name, date of birth)" - " to fill related to the customer's details. Finally, " - "provide the answers for the exercise. The response must be a json following this format: " - "{ 'type': '', " - "'transcript': '', " - "'exercise': { 'form field': { '1': '
', '2': '', " - "'3': '', '4': '', " - "'5': '', '6': '' }, " - "'answers': {'1': '', '2': '', '3': '', " - "'4': '', '5': ''," - " '6': ''}}}", - } - ] - elif QuestionType.LISTENING_SECTION_2 == question_type: - return [ - { - "role": "user", - "content": "You are a IELTS program that generates questions for the exams.", - }, - { - "role": "user", - "content": "Provide me with a transcript similar to the ones in ielts exam Listening section 2. After the transcript, please " - "generate a fill in the blanks exercise with 6 statements related to the text content. Finally, " - "provide the answers for the exercise. The response must be a json following this format: " - "{ 'transcript': 'transcript about some subject', 'exercise': { 'statements': { '1': 'statement 1 " - "with a blank space to fill', '2': 'statement 2 with a blank space to fill', '3': 'statement 3 with a " - "blank space to fill', '4': 'statement 4 with a blank space to fill', '5': 'statement 5 with a blank " - "space to fill', '6': 'statement 6 with a blank space to fill' }, " - "'answers': {'1': 'answer to fill blank space in statement 1', '2': 'answer to fill blank " - "space in statement 2', '3': 'answer to fill blank space in statement 3', " - "'4': 'answer to fill blank space in statement 4', '5': 'answer to fill blank space in statement 5'," - " '6': 'answer to fill blank space in statement 6'}}}", - } - ] - elif QuestionType.LISTENING_SECTION_3 == question_type: - return [ - { - "role": "user", - "content": "You are a IELTS program that generates questions for the exams.", - }, - { - "role": "user", - "content": "Provide me with a transcript similar to the ones in ielts exam Listening section 3. After the transcript, please " - "generate 4 multiple choice questions related to the text content. Finally, " - "provide the answers for the exercise. The response must be a json following this format: " - "{ 'transcript': 'generated transcript similar to the ones in ielts exam Listening section 3', " - "'exercise': { 'questions': [ { 'question': " - "'question 1', 'options': ['option 1', 'option 2', 'option 3', 'option 4'], 'answer': 1}, " - "{'question': 'question 2', 'options': ['option 1', 'option 2', 'option 3', 'option 4'], " - "'answer': 3}, {'question': 'question 3', 'options': ['option 1', 'option 2', 'option 3', " - "'option 4'], 'answer': 0}, {'question': 'question 4', 'options': ['option 1', 'option 2', " - "'option 3', 'option 4'], 'answer': 2}]}}", - } - ] - elif QuestionType.LISTENING_SECTION_4 == question_type: - return [ - { - "role": "user", - "content": "You are a IELTS program that generates questions for the exams.", - }, - { - "role": "user", - "content": "Provide me with a transcript similar to the ones in ielts exam Listening section 4. After the transcript, please " - "generate 4 completion-type questions related to the text content to complete with 1 word. Finally, " - "provide the answers for the exercise. The response must be a json following this format: " - "{ 'transcript': 'generated transcript similar to the ones in ielts exam Listening section 4', " - "'exercise': [ { 'question': 'question 1', 'answer': 'answer 1'}, " - "{'question': 'question 2', 'answer': 'answer 2'}, {'question': 'question 3', 'answer': 'answer 3'}, " - "{'question': 'question 4', 'answer': 'answer 4'}]}", - } - ] - elif QuestionType.WRITING_TASK_2 == question_type: - return [ - { - "role": "user", - "content": "You are a IELTS program that generates questions for the exams.", - }, - { - "role": "user", - "content": "The question you have to generate is of type Writing Task 2.", - }, - { - "role": "user", - "content": "It is mandatory for you to provide your response with the question " - "just with the following json format: {'question': 'question'}", - }, - { - "role": "user", - "content": "Example output: { 'question': 'We are becoming increasingly dependent on computers. " - "They are used in businesses, hospitals, crime detection and even to fly planes. What things will " - "they be used for in the future? Is this dependence on computers a good thing or should we he more " - "auspicious of their benefits?'}", - }, - { - "role": "user", - "content": "Generate a question for IELTS exam Writing Task 2.", - }, - ] - elif QuestionType.SPEAKING_1 == question_type: - return [ - { - "role": "user", - "content": "You are a IELTS program that generates questions for the exams.", - }, - { - "role": "user", - "content": "The question you have to generate is of type Speaking Task Part 1.", - }, - { - "role": "user", - "content": "It is mandatory for you to provide your response with the question " - "just with the following json format: {'question': 'question'}", - }, - { - "role": "user", - "content": "Example output: { 'question': 'Let’s talk about your home town or village. " - "What kind of place is it? What’s the most interesting part of your town/village? " - "What kind of jobs do the people in your town/village do? " - "Would you say it’s a good place to live? (Why?)'}", - }, - { - "role": "user", - "content": "Generate a question for IELTS exam Speaking Task.", - }, - ] - elif QuestionType.SPEAKING_2 == question_type: - return [ - { - "role": "user", - "content": "You are a IELTS program that generates questions for the exams.", - }, - { - "role": "user", - "content": "The question you have to generate is of type Speaking Task Part 2.", - }, - { - "role": "user", - "content": "It is mandatory for you to provide your response with the question " - "just with the following json format: {'question': 'question'}", - }, - { - "role": "user", - "content": "Example output: { 'question': 'Describe something you own which is very important to you. " - "You should say: where you got it from how long you have had it what you use it for and " - "explain why it is important to you.'}", - }, - { - "role": "user", - "content": "Generate a question for IELTS exam Speaking Task.", - }, - ] - else: - raise Exception("Question type not implemented: " + question_type.value) - - -def get_question_tips(question: str, answer: str, correct_answer: str, context: str = None): - messages = [ - { - "role": "user", - "content": "You are a IELTS exam program that analyzes incorrect answers to questions and gives tips to " - "help students understand why it was a wrong answer and gives helpful insight for the future. " - "The tip should refer to the context and question.", - } - ] - - if not (context is None or context == ""): - messages.append({ - "role": "user", - "content": f"This is the context for the question: {context}", - }) - - messages.extend([ - { - "role": "user", - "content": f"This is the question: {question}", - }, - { - "role": "user", - "content": f"This is the answer: {answer}", - }, - { - "role": "user", - "content": f"This is the correct answer: {correct_answer}", - } - ]) - - return messages diff --git a/helper/constants.py b/helper/constants.py deleted file mode 100644 index fdd45e4..0000000 --- a/helper/constants.py +++ /dev/null @@ -1,661 +0,0 @@ -AUDIO_FILES_PATH = 'download-audio/' -FIREBASE_LISTENING_AUDIO_FILES_PATH = 'listening_recordings/' -VIDEO_FILES_PATH = 'download-video/' -FIREBASE_SPEAKING_VIDEO_FILES_PATH = 'speaking_videos/' - -GRADING_TEMPERATURE = 0.1 -TIPS_TEMPERATURE = 0.2 -GEN_QUESTION_TEMPERATURE = 0.7 -GPT_3_5_TURBO = "gpt-3.5-turbo" -GPT_4_TURBO = "gpt-4-turbo" -GPT_4_O = "gpt-4o" -GPT_3_5_TURBO_16K = "gpt-3.5-turbo-16k" -GPT_3_5_TURBO_INSTRUCT = "gpt-3.5-turbo-instruct" -GPT_4_PREVIEW = "gpt-4-turbo-preview" - -GRADING_FIELDS = ['comment', 'overall', 'task_response'] -GEN_FIELDS = ['topic'] -GEN_TEXT_FIELDS = ['title'] -LISTENING_GEN_FIELDS = ['transcript', 'exercise'] -READING_EXERCISE_TYPES = ['fillBlanks', 'writeBlanks', 'trueFalse', 'paragraphMatch'] -READING_3_EXERCISE_TYPES = ['fillBlanks', 'writeBlanks', 'trueFalse', 'paragraphMatch', 'ideaMatch'] -LISTENING_EXERCISE_TYPES = ['multipleChoice', 'writeBlanksQuestions', 'writeBlanksFill', 'writeBlanksForm'] -LISTENING_1_EXERCISE_TYPES = ['multipleChoice', 'writeBlanksQuestions', 'writeBlanksFill', 'writeBlanksFill', - 'writeBlanksForm', 'writeBlanksForm', 'writeBlanksForm', 'writeBlanksForm'] -LISTENING_2_EXERCISE_TYPES = ['multipleChoice', 'writeBlanksQuestions'] -LISTENING_3_EXERCISE_TYPES = ['multipleChoice3Options', 'writeBlanksQuestions'] -LISTENING_4_EXERCISE_TYPES = ['multipleChoice', 'writeBlanksQuestions', 'writeBlanksFill', 'writeBlanksForm'] - -TOTAL_READING_PASSAGE_1_EXERCISES = 13 -TOTAL_READING_PASSAGE_2_EXERCISES = 13 -TOTAL_READING_PASSAGE_3_EXERCISES = 14 - -TOTAL_LISTENING_SECTION_1_EXERCISES = 10 -TOTAL_LISTENING_SECTION_2_EXERCISES = 10 -TOTAL_LISTENING_SECTION_3_EXERCISES = 10 -TOTAL_LISTENING_SECTION_4_EXERCISES = 10 - -LISTENING_MIN_TIMER_DEFAULT = 30 -WRITING_MIN_TIMER_DEFAULT = 60 -SPEAKING_MIN_TIMER_DEFAULT = 14 - -BLACKLISTED_WORDS = ["jesus", "sex", "gay", "lesbian", "homosexual", "god", "angel", "pornography", "beer", "wine", - "cocaine", "alcohol", "nudity", "lgbt", "casino", "gambling", "catholicism", - "discrimination", "politic", "christianity", "islam", "christian", "christians", - "jews", "jew", "discrimination", "discriminatory"] - -EN_US_VOICES = [ - {'Gender': 'Female', 'Id': 'Salli', 'LanguageCode': 'en-US', 'LanguageName': 'US English', 'Name': 'Salli', - 'SupportedEngines': ['neural', 'standard']}, - {'Gender': 'Male', 'Id': 'Matthew', 'LanguageCode': 'en-US', 'LanguageName': 'US English', 'Name': 'Matthew', - 'SupportedEngines': ['neural', 'standard']}, - {'Gender': 'Female', 'Id': 'Kimberly', 'LanguageCode': 'en-US', 'LanguageName': 'US English', 'Name': 'Kimberly', - 'SupportedEngines': ['neural', 'standard']}, - {'Gender': 'Female', 'Id': 'Kendra', 'LanguageCode': 'en-US', 'LanguageName': 'US English', 'Name': 'Kendra', - 'SupportedEngines': ['neural', 'standard']}, - {'Gender': 'Male', 'Id': 'Justin', 'LanguageCode': 'en-US', 'LanguageName': 'US English', 'Name': 'Justin', - 'SupportedEngines': ['neural', 'standard']}, - {'Gender': 'Male', 'Id': 'Joey', 'LanguageCode': 'en-US', 'LanguageName': 'US English', 'Name': 'Joey', - 'SupportedEngines': ['neural', 'standard']}, - {'Gender': 'Female', 'Id': 'Joanna', 'LanguageCode': 'en-US', 'LanguageName': 'US English', 'Name': 'Joanna', - 'SupportedEngines': ['neural', 'standard']}, - {'Gender': 'Female', 'Id': 'Ivy', 'LanguageCode': 'en-US', 'LanguageName': 'US English', 'Name': 'Ivy', - 'SupportedEngines': ['neural', 'standard']}] -EN_GB_VOICES = [ - {'Gender': 'Female', 'Id': 'Emma', 'LanguageCode': 'en-GB', 'LanguageName': 'British English', 'Name': 'Emma', - 'SupportedEngines': ['neural', 'standard']}, - {'Gender': 'Male', 'Id': 'Brian', 'LanguageCode': 'en-GB', 'LanguageName': 'British English', 'Name': 'Brian', - 'SupportedEngines': ['neural', 'standard']}, - {'Gender': 'Female', 'Id': 'Amy', 'LanguageCode': 'en-GB', 'LanguageName': 'British English', 'Name': 'Amy', - 'SupportedEngines': ['neural', 'standard']}] -EN_GB_WLS_VOICES = [ - {'Gender': 'Male', 'Id': 'Geraint', 'LanguageCode': 'en-GB-WLS', 'LanguageName': 'Welsh English', 'Name': 'Geraint', - 'SupportedEngines': ['standard']}] -EN_AU_VOICES = [{'Gender': 'Male', 'Id': 'Russell', 'LanguageCode': 'en-AU', 'LanguageName': 'Australian English', - 'Name': 'Russell', 'SupportedEngines': ['standard']}, - {'Gender': 'Female', 'Id': 'Nicole', 'LanguageCode': 'en-AU', 'LanguageName': 'Australian English', - 'Name': 'Nicole', 'SupportedEngines': ['standard']}] -ALL_VOICES = EN_US_VOICES + EN_GB_VOICES + EN_GB_WLS_VOICES + EN_AU_VOICES - -NEURAL_EN_US_VOICES = [ - {'Gender': 'Female', 'Id': 'Danielle', 'LanguageCode': 'en-US', 'LanguageName': 'US English', 'Name': 'Danielle', - 'SupportedEngines': ['neural']}, - {'Gender': 'Male', 'Id': 'Gregory', 'LanguageCode': 'en-US', 'LanguageName': 'US English', 'Name': 'Gregory', - 'SupportedEngines': ['neural']}, - {'Gender': 'Male', 'Id': 'Kevin', 'LanguageCode': 'en-US', 'LanguageName': 'US English', 'Name': 'Kevin', - 'SupportedEngines': ['neural']}, - {'Gender': 'Female', 'Id': 'Ruth', 'LanguageCode': 'en-US', 'LanguageName': 'US English', 'Name': 'Ruth', - 'SupportedEngines': ['neural']}, - {'Gender': 'Male', 'Id': 'Stephen', 'LanguageCode': 'en-US', 'LanguageName': 'US English', 'Name': 'Stephen', - 'SupportedEngines': ['neural']}] -NEURAL_EN_GB_VOICES = [ - {'Gender': 'Male', 'Id': 'Arthur', 'LanguageCode': 'en-GB', 'LanguageName': 'British English', 'Name': 'Arthur', - 'SupportedEngines': ['neural']}] -NEURAL_EN_AU_VOICES = [ - {'Gender': 'Female', 'Id': 'Olivia', 'LanguageCode': 'en-AU', 'LanguageName': 'Australian English', - 'Name': 'Olivia', 'SupportedEngines': ['neural']}] -NEURAL_EN_ZA_VOICES = [ - {'Gender': 'Female', 'Id': 'Ayanda', 'LanguageCode': 'en-ZA', 'LanguageName': 'South African English', - 'Name': 'Ayanda', 'SupportedEngines': ['neural']}] -NEURAL_EN_NZ_VOICES = [ - {'Gender': 'Female', 'Id': 'Aria', 'LanguageCode': 'en-NZ', 'LanguageName': 'New Zealand English', 'Name': 'Aria', - 'SupportedEngines': ['neural']}] -NEURAL_EN_IN_VOICES = [ - {'Gender': 'Female', 'Id': 'Kajal', 'LanguageCode': 'en-IN', 'LanguageName': 'Indian English', 'Name': 'Kajal', - 'SupportedEngines': ['neural']}] -NEURAL_EN_IE_VOICES = [ - {'Gender': 'Female', 'Id': 'Niamh', 'LanguageCode': 'en-IE', 'LanguageName': 'Irish English', 'Name': 'Niamh', - 'SupportedEngines': ['neural']}] -ALL_NEURAL_VOICES = NEURAL_EN_US_VOICES + NEURAL_EN_GB_VOICES + NEURAL_EN_AU_VOICES + NEURAL_EN_ZA_VOICES + NEURAL_EN_NZ_VOICES + NEURAL_EN_IE_VOICES - -MALE_VOICES = [item for item in ALL_VOICES if item.get('Gender') == 'Male'] -FEMALE_VOICES = [item for item in ALL_VOICES if item.get('Gender') == 'Female'] - -MALE_NEURAL_VOICES = [item for item in ALL_NEURAL_VOICES if item.get('Gender') == 'Male'] -FEMALE_NEURAL_VOICES = [item for item in ALL_NEURAL_VOICES if item.get('Gender') == 'Female'] - -difficulties = ["easy", "medium", "hard"] - -mti_topics = [ - "Education", - "Technology", - "Environment", - "Health and Fitness", - "Engineering", - "Work and Careers", - "Travel and Tourism", - "Culture and Traditions", - "Social Issues", - "Arts and Entertainment", - "Climate Change", - "Social Media", - "Sustainable Development", - "Health Care", - "Immigration", - "Artificial Intelligence", - "Consumerism", - "Online Shopping", - "Energy", - "Oil and Gas", - "Poverty and Inequality", - "Cultural Diversity", - "Democracy and Governance", - "Mental Health", - "Ethics and Morality", - "Population Growth", - "Science and Innovation", - "Poverty Alleviation", - "Cybersecurity and Privacy", - "Human Rights", - "Food and Agriculture", - "Cyberbullying and Online Safety", - "Linguistic Diversity", - "Urbanization", - "Artificial Intelligence in Education", - "Youth Empowerment", - "Disaster Management", - "Mental Health Stigma", - "Internet Censorship", - "Sustainable Fashion", - "Indigenous Rights", - "Water Scarcity", - "Social Entrepreneurship", - "Privacy in the Digital Age", - "Sustainable Transportation", - "Gender Equality", - "Automation and Job Displacement", - "Digital Divide", - "Education Inequality" -] -topics = [ - "Art and Creativity", - "History of Ancient Civilizations", - "Environmental Conservation", - "Space Exploration", - "Artificial Intelligence", - "Climate Change", - "The Human Brain", - "Renewable Energy", - "Cultural Diversity", - "Modern Technology Trends", - "Sustainable Agriculture", - "Natural Disasters", - "Cybersecurity", - "Philosophy of Ethics", - "Robotics", - "Health and Wellness", - "Literature and Classics", - "World Geography", - "Social Media Impact", - "Food Sustainability", - "Economics and Markets", - "Human Evolution", - "Political Systems", - "Mental Health Awareness", - "Quantum Physics", - "Biodiversity", - "Education Reform", - "Animal Rights", - "The Industrial Revolution", - "Future of Work", - "Film and Cinema", - "Genetic Engineering", - "Climate Policy", - "Space Travel", - "Renewable Energy Sources", - "Cultural Heritage Preservation", - "Modern Art Movements", - "Sustainable Transportation", - "The History of Medicine", - "Artificial Neural Networks", - "Climate Adaptation", - "Philosophy of Existence", - "Augmented Reality", - "Yoga and Meditation", - "Literary Genres", - "World Oceans", - "Social Networking", - "Sustainable Fashion", - "Prehistoric Era", - "Democracy and Governance", - "Postcolonial Literature", - "Geopolitics", - "Psychology and Behavior", - "Nanotechnology", - "Endangered Species", - "Education Technology", - "Renaissance Art", - "Renewable Energy Policy", - "Modern Architecture", - "Climate Resilience", - "Artificial Life", - "Fitness and Nutrition", - "Classic Literature Adaptations", - "Ethical Dilemmas", - "Internet of Things (IoT)", - "Meditation Practices", - "Literary Symbolism", - "Marine Conservation", - "Sustainable Tourism", - "Ancient Philosophy", - "Cold War Era", - "Behavioral Economics", - "Space Colonization", - "Clean Energy Initiatives", - "Cultural Exchange", - "Modern Sculpture", - "Climate Mitigation", - "Mindfulness", - "Literary Criticism", - "Wildlife Conservation", - "Renewable Energy Innovations", - "History of Mathematics", - "Human-Computer Interaction", - "Global Health", - "Cultural Appropriation", - "Traditional cuisine and culinary arts", - "Local music and dance traditions", - "History of the region and historical landmarks", - "Traditional crafts and artisanal skills", - "Wildlife and conservation efforts", - "Local sports and athletic competitions", - "Fashion trends and clothing styles", - "Education systems and advancements", - "Healthcare services and medical innovations", - "Family values and social dynamics", - "Travel destinations and tourist attractions", - "Environmental sustainability projects", - "Technological developments and innovations", - "Entrepreneurship and business ventures", - "Youth empowerment initiatives", - "Art exhibitions and cultural events", - "Philanthropy and community development projects" -] - -two_people_scenarios = [ - "Booking a table at a restaurant", - "Making a doctor's appointment", - "Asking for directions to a tourist attraction", - "Inquiring about public transportation options", - "Discussing weekend plans with a friend", - "Ordering food at a café", - "Renting a bicycle for a day", - "Arranging a meeting with a colleague", - "Talking to a real estate agent about renting an apartment", - "Discussing travel plans for an upcoming vacation", - "Checking the availability of a hotel room", - "Talking to a car rental service", - "Asking for recommendations at a library", - "Inquiring about opening hours at a museum", - "Discussing the weather forecast", - "Shopping for groceries", - "Renting a movie from a video store", - "Booking a flight ticket", - "Discussing a school assignment with a classmate", - "Making a reservation for a spa appointment", - "Talking to a customer service representative about a product issue", - "Discussing household chores with a family member", - "Planning a surprise party for a friend", - "Talking to a coworker about a project deadline", - "Inquiring about a gym membership", - "Discussing the menu options at a fast-food restaurant", - "Talking to a neighbor about a community event", - "Asking for help with computer problems", - "Discussing a recent sports game with a sports enthusiast", - "Talking to a pet store employee about buying a pet", - "Asking for information about a local farmer's market", - "Discussing the details of a home renovation project", - "Talking to a coworker about office supplies", - "Making plans for a family picnic", - "Inquiring about admission requirements at a university", - "Discussing the features of a new smartphone with a salesperson", - "Talking to a mechanic about car repairs", - "Making arrangements for a child's birthday party", - "Discussing a new diet plan with a nutritionist", - "Asking for information about a music concert", - "Talking to a hairdresser about getting a haircut", - "Inquiring about a language course at a language school", - "Discussing plans for a weekend camping trip", - "Talking to a bank teller about opening a new account", - "Ordering a drink at a coffee shop", - "Discussing a new book with a book club member", - "Talking to a librarian about library services", - "Asking for advice on finding a job", - "Discussing plans for a garden makeover with a landscaper", - "Talking to a travel agent about a cruise vacation", - "Inquiring about a fitness class at a gym", - "Ordering flowers for a special occasion", - "Discussing a new exercise routine with a personal trainer", - "Talking to a teacher about a child's progress in school", - "Asking for information about a local art exhibition", - "Discussing a home improvement project with a contractor", - "Talking to a babysitter about childcare arrangements", - "Making arrangements for a car service appointment", - "Inquiring about a photography workshop at a studio", - "Discussing plans for a family reunion with a relative", - "Talking to a tech support representative about computer issues", - "Asking for recommendations on pet grooming services", - "Discussing weekend plans with a significant other", - "Talking to a counselor about personal issues", - "Inquiring about a music lesson with a music teacher", - "Ordering a pizza for delivery", - "Making a reservation for a taxi", - "Discussing a new recipe with a chef", - "Talking to a fitness trainer about weight loss goals", - "Inquiring about a dance class at a dance studio", - "Ordering a meal at a food truck", - "Discussing plans for a weekend getaway with a partner", - "Talking to a florist about wedding flower arrangements", - "Asking for advice on home decorating", - "Discussing plans for a charity fundraiser event", - "Talking to a pet sitter about taking care of pets", - "Making arrangements for a spa day with a friend", - "Asking for recommendations on home improvement stores", - "Discussing weekend plans with a travel enthusiast", - "Talking to a car mechanic about car maintenance", - "Inquiring about a cooking class at a culinary school", - "Ordering a sandwich at a deli", - "Discussing plans for a family holiday party", - "Talking to a personal assistant about organizing tasks", - "Asking for information about a local theater production", - "Discussing a new DIY project with a home improvement expert", - "Talking to a wine expert about wine pairing", - "Making arrangements for a pet adoption", - "Asking for advice on planning a wedding" -] - -social_monologue_contexts = [ - "A guided tour of a historical museum", - "An introduction to a new city for tourists", - "An orientation session for new university students", - "A safety briefing for airline passengers", - "An explanation of the process of recycling", - "A lecture on the benefits of a healthy diet", - "A talk on the importance of time management", - "A monologue about wildlife conservation", - "An overview of local public transportation options", - "A presentation on the history of cinema", - "An introduction to the art of photography", - "A discussion about the effects of climate change", - "An overview of different types of cuisine", - "A lecture on the principles of financial planning", - "A monologue about sustainable energy sources", - "An explanation of the process of online shopping", - "A guided tour of a botanical garden", - "An introduction to a local wildlife sanctuary", - "A safety briefing for hikers in a national park", - "A talk on the benefits of physical exercise", - "A lecture on the principles of effective communication", - "A monologue about the impact of social media", - "An overview of the history of a famous landmark", - "An introduction to the world of fashion design", - "A discussion about the challenges of global poverty", - "An explanation of the process of organic farming", - "A presentation on the history of space exploration", - "An overview of traditional music from different cultures", - "A lecture on the principles of effective leadership", - "A monologue about the influence of technology", - "A guided tour of a famous archaeological site", - "An introduction to a local wildlife rehabilitation center", - "A safety briefing for visitors to a science museum", - "A talk on the benefits of learning a new language", - "A lecture on the principles of architectural design", - "A monologue about the impact of renewable energy", - "An explanation of the process of online banking", - "A presentation on the history of a famous art movement", - "An overview of traditional clothing from various regions", - "A lecture on the principles of sustainable agriculture", - "A discussion about the challenges of urban development", - "A monologue about the influence of social norms", - "A guided tour of a historical battlefield", - "An introduction to a local animal shelter", - "A safety briefing for participants in a charity run", - "A talk on the benefits of community involvement", - "A lecture on the principles of sustainable tourism", - "A monologue about the impact of alternative medicine", - "An explanation of the process of wildlife tracking", - "A presentation on the history of a famous inventor", - "An overview of traditional dance forms from different cultures", - "A lecture on the principles of ethical business practices", - "A discussion about the challenges of healthcare access", - "A monologue about the influence of cultural traditions", - "A guided tour of a famous lighthouse", - "An introduction to a local astronomy observatory", - "A safety briefing for participants in a team-building event", - "A talk on the benefits of volunteering", - "A lecture on the principles of wildlife protection", - "A monologue about the impact of space exploration", - "An explanation of the process of wildlife photography", - "A presentation on the history of a famous musician", - "An overview of traditional art forms from different cultures", - "A lecture on the principles of effective education", - "A discussion about the challenges of sustainable development", - "A monologue about the influence of cultural diversity", - "A guided tour of a famous national park", - "An introduction to a local marine conservation project", - "A safety briefing for participants in a hot air balloon ride", - "A talk on the benefits of cultural exchange programs", - "A lecture on the principles of wildlife conservation", - "A monologue about the impact of technological advancements", - "An explanation of the process of wildlife rehabilitation", - "A presentation on the history of a famous explorer", - "A lecture on the principles of effective marketing", - "A discussion about the challenges of environmental sustainability", - "A monologue about the influence of social entrepreneurship", - "A guided tour of a famous historical estate", - "An introduction to a local marine life research center", - "A safety briefing for participants in a zip-lining adventure", - "A talk on the benefits of cultural preservation", - "A lecture on the principles of wildlife ecology", - "A monologue about the impact of space technology", - "An explanation of the process of wildlife conservation", - "A presentation on the history of a famous scientist", - "An overview of traditional crafts and artisans from different cultures", - "A lecture on the principles of effective intercultural communication" -] - -four_people_scenarios = [ - "A university lecture on history", - "A physics class discussing Newton's laws", - "A medical school seminar on anatomy", - "A training session on computer programming", - "A business school lecture on marketing strategies", - "A chemistry lab experiment and discussion", - "A language class practicing conversational skills", - "A workshop on creative writing techniques", - "A high school math lesson on calculus", - "A training program for customer service representatives", - "A lecture on environmental science and sustainability", - "A psychology class exploring human behavior", - "A music theory class analyzing compositions", - "A nursing school simulation for patient care", - "A computer science class on algorithms", - "A workshop on graphic design principles", - "A law school lecture on constitutional law", - "A geology class studying rock formations", - "A vocational training program for electricians", - "A history seminar focusing on ancient civilizations", - "A biology class dissecting specimens", - "A financial literacy course for adults", - "A literature class discussing classic novels", - "A training session for emergency response teams", - "A sociology lecture on social inequality", - "An art class exploring different painting techniques", - "A medical school seminar on diagnosis", - "A programming bootcamp teaching web development", - "An economics class analyzing market trends", - "A chemistry lab experiment on chemical reactions", - "A language class practicing pronunciation", - "A workshop on public speaking skills", - "A high school physics lesson on electromagnetism", - "A training program for IT professionals", - "A lecture on climate change and its effects", - "A psychology class studying cognitive psychology", - "A music class composing original songs", - "A nursing school simulation for patient assessment", - "A computer science class on data structures", - "A workshop on 3D modeling and animation", - "A law school lecture on contract law", - "A geography class examining world maps", - "A vocational training program for plumbers", - "A history seminar discussing revolutions", - "A biology class exploring genetics", - "A financial literacy course for teens", - "A literature class analyzing poetry", - "A training session for public speaking coaches", - "A sociology lecture on cultural diversity", - "An art class creating sculptures", - "A medical school seminar on surgical techniques", - "A programming bootcamp teaching app development", - "An economics class on global trade policies", - "A chemistry lab experiment on chemical bonding", - "A language class discussing idiomatic expressions", - "A workshop on conflict resolution", - "A high school biology lesson on evolution", - "A training program for project managers", - "A lecture on renewable energy sources", - "A psychology class on abnormal psychology", - "A music class rehearsing for a performance", - "A nursing school simulation for emergency response", - "A computer science class on cybersecurity", - "A workshop on digital marketing strategies", - "A law school lecture on intellectual property", - "A geology class analyzing seismic activity", - "A vocational training program for carpenters", - "A history seminar on the Renaissance", - "A chemistry class synthesizing compounds", - "A financial literacy course for seniors", - "A literature class interpreting Shakespearean plays", - "A training session for negotiation skills", - "A sociology lecture on urbanization", - "An art class creating digital art", - "A medical school seminar on patient communication", - "A programming bootcamp teaching mobile app development", - "An economics class on fiscal policy", - "A physics lab experiment on electromagnetism", - "A language class on cultural immersion", - "A workshop on time management", - "A high school chemistry lesson on stoichiometry", - "A training program for HR professionals", - "A lecture on space exploration and astronomy", - "A psychology class on human development", - "A music class practicing for a recital", - "A nursing school simulation for triage", - "A computer science class on web development frameworks", - "A workshop on team-building exercises", - "A law school lecture on criminal law", - "A geography class studying world cultures", - "A vocational training program for HVAC technicians", - "A history seminar on ancient civilizations", - "A biology class examining ecosystems", - "A financial literacy course for entrepreneurs", - "A literature class analyzing modern literature", - "A training session for leadership skills", - "A sociology lecture on gender studies", - "An art class exploring multimedia art", - "A medical school seminar on patient diagnosis", - "A programming bootcamp teaching software architecture" -] - -academic_subjects = [ - "Astrophysics", - "Microbiology", - "Political Science", - "Environmental Science", - "Literature", - "Biochemistry", - "Sociology", - "Art History", - "Geology", - "Economics", - "Psychology", - "History of Architecture", - "Linguistics", - "Neurobiology", - "Anthropology", - "Quantum Mechanics", - "Urban Planning", - "Philosophy", - "Marine Biology", - "International Relations", - "Medieval History", - "Geophysics", - "Finance", - "Educational Psychology", - "Graphic Design", - "Paleontology", - "Macroeconomics", - "Cognitive Psychology", - "Renaissance Art", - "Archaeology", - "Microeconomics", - "Social Psychology", - "Contemporary Art", - "Meteorology", - "Political Philosophy", - "Space Exploration", - "Cognitive Science", - "Classical Music", - "Oceanography", - "Public Health", - "Gender Studies", - "Baroque Art", - "Volcanology", - "Business Ethics", - "Music Composition", - "Environmental Policy", - "Media Studies", - "Ancient History", - "Seismology", - "Marketing", - "Human Development", - "Modern Art", - "Astronomy", - "International Law", - "Developmental Psychology", - "Film Studies", - "American History", - "Soil Science", - "Entrepreneurship", - "Clinical Psychology", - "Contemporary Dance", - "Space Physics", - "Political Economy", - "Cognitive Neuroscience", - "20th Century Literature", - "Public Administration", - "European History", - "Atmospheric Science", - "Supply Chain Management", - "Social Work", - "Japanese Literature", - "Planetary Science", - "Labor Economics", - "Industrial-Organizational Psychology", - "French Philosophy", - "Biogeochemistry", - "Strategic Management", - "Educational Sociology", - "Postmodern Literature", - "Public Relations", - "Middle Eastern History", - "Oceanography", - "International Development", - "Human Resources Management", - "Educational Leadership", - "Russian Literature", - "Quantum Chemistry", - "Environmental Economics", - "Environmental Psychology", - "Ancient Philosophy", - "Immunology", - "Comparative Politics", - "Child Development", - "Fashion Design", - "Geological Engineering", - "Macroeconomic Policy", - "Media Psychology", - "Byzantine Art", - "Ecology", - "International Business" -] diff --git a/helper/exam_variant.py b/helper/exam_variant.py deleted file mode 100644 index 2f29123..0000000 --- a/helper/exam_variant.py +++ /dev/null @@ -1,6 +0,0 @@ -from enum import Enum - - -class ExamVariant(Enum): - FULL = "full" - PARTIAL = "partial" diff --git a/helper/exercises.py b/helper/exercises.py deleted file mode 100644 index 3818ec0..0000000 --- a/helper/exercises.py +++ /dev/null @@ -1,2152 +0,0 @@ -import queue -import random -import re -import string -import uuid - -import nltk -from pymongo.database import Database -from wonderwords import RandomWord - -from helper.constants import * -from helper.firebase_helper import get_all -from helper.openai_interface import make_openai_call, count_total_tokens -from helper.speech_to_text_helper import has_x_words - -nltk.download('words') - - -def gen_reading_passage_1(topic, difficulty, req_exercises, number_of_exercises_q=queue.Queue(), start_id=1): - if (len(req_exercises) == 0): - req_exercises = random.sample(READING_EXERCISE_TYPES, 2) - - if (number_of_exercises_q.empty()): - number_of_exercises_q = divide_number_into_parts(TOTAL_READING_PASSAGE_1_EXERCISES, len(req_exercises)) - - passage = generate_reading_passage_1_text(topic) - if passage == "": - return gen_reading_passage_1(topic, difficulty, req_exercises, number_of_exercises_q, start_id) - exercises = generate_reading_exercises(passage["text"], req_exercises, number_of_exercises_q, start_id, difficulty) - if contains_empty_dict(exercises): - return gen_reading_passage_1(topic, difficulty, req_exercises, number_of_exercises_q, start_id) - return { - "exercises": exercises, - "text": { - "content": passage["text"], - "title": passage["title"] - }, - "difficulty": difficulty - } - - -def gen_reading_passage_2(topic, difficulty, req_exercises, number_of_exercises_q=queue.Queue(), start_id=14): - if (len(req_exercises) == 0): - req_exercises = random.sample(READING_EXERCISE_TYPES, 2) - - if (number_of_exercises_q.empty()): - number_of_exercises_q = divide_number_into_parts(TOTAL_READING_PASSAGE_2_EXERCISES, len(req_exercises)) - - passage = generate_reading_passage_2_text(topic) - if passage == "": - return gen_reading_passage_2(topic, difficulty, req_exercises, number_of_exercises_q, start_id) - exercises = generate_reading_exercises(passage["text"], req_exercises, number_of_exercises_q, start_id, difficulty) - if contains_empty_dict(exercises): - return gen_reading_passage_2(topic, difficulty, req_exercises, number_of_exercises_q, start_id) - return { - "exercises": exercises, - "text": { - "content": passage["text"], - "title": passage["title"] - }, - "difficulty": difficulty - } - - -def gen_reading_passage_3(topic, difficulty, req_exercises, number_of_exercises_q=queue.Queue(), start_id=27): - if (len(req_exercises) == 0): - req_exercises = random.sample(READING_EXERCISE_TYPES, 2) - - if (number_of_exercises_q.empty()): - number_of_exercises_q = divide_number_into_parts(TOTAL_READING_PASSAGE_3_EXERCISES, len(req_exercises)) - - passage = generate_reading_passage_3_text(topic) - if passage == "": - return gen_reading_passage_3(topic, difficulty, req_exercises, number_of_exercises_q, start_id) - exercises = generate_reading_exercises(passage["text"], req_exercises, number_of_exercises_q, start_id, difficulty) - if contains_empty_dict(exercises): - return gen_reading_passage_3(topic, difficulty, req_exercises, number_of_exercises_q, start_id) - return { - "exercises": exercises, - "text": { - "content": passage["text"], - "title": passage["title"] - }, - "difficulty": difficulty - } - - -def divide_number_into_parts(number, parts): - if number < parts: - return None - - part_size = number // parts - remaining = number % parts - - q = queue.Queue() - - for i in range(parts): - if i < remaining: - q.put(part_size + 1) - else: - q.put(part_size) - - return q - - -def fix_exercise_ids(exercise, start_id): - # Initialize the starting ID for the first exercise - current_id = start_id - - questions = exercise["questions"] - - # Iterate through questions and update the "id" value - for question in questions: - question["id"] = str(current_id) - current_id += 1 - - return exercise - - -def replace_first_occurrences_with_placeholders(text: str, words_to_replace: list, start_id): - for i, word in enumerate(words_to_replace, start=start_id): - # Create a case-insensitive regular expression pattern - pattern = re.compile(r'\b' + re.escape(word) + r'\b', re.IGNORECASE) - placeholder = '{{' + str(i) + '}}' - text = pattern.sub(placeholder, text, 1) - return text - - -def replace_first_occurrences_with_placeholders_notes(notes: list, words_to_replace: list, start_id): - replaced_notes = [] - for i, note in enumerate(notes, start=0): - word = words_to_replace[i] - pattern = re.compile(r'\b' + re.escape(word) + r'\b', re.IGNORECASE) - placeholder = '{{' + str(start_id + i) + '}}' - note = pattern.sub(placeholder, note, 1) - replaced_notes.append(note) - return replaced_notes - - -def add_random_words_and_shuffle(word_array, num_random_words): - r = RandomWord() - random_words_selected = r.random_words(num_random_words) - - combined_array = word_array + random_words_selected - - random.shuffle(combined_array) - - result = [] - for i, word in enumerate(combined_array): - letter = chr(65 + i) # chr(65) is 'A' - result.append({"letter": letter, "word": word}) - - return result - - -def fillblanks_build_solutions_array(words, start_id): - solutions = [] - for i, word in enumerate(words, start=start_id): - solutions.append( - { - "id": str(i), - "solution": word - } - ) - return solutions - - -def remove_excess_questions(questions: [], quantity): - count_true = 0 - result = [] - - for item in reversed(questions): - if item.get('solution') == 'true' and count_true < quantity: - count_true += 1 - else: - result.append(item) - - result.reverse() - return result - - -def build_write_blanks_text(questions: [], start_id): - result = "" - for i, q in enumerate(questions, start=start_id): - placeholder = '{{' + str(i) + '}}' - result = result + q["question"] + placeholder + "\\n" - return result - - -def build_write_blanks_text_form(form: [], start_id): - result = "" - replaced_words = [] - for i, entry in enumerate(form, start=start_id): - placeholder = '{{' + str(i) + '}}' - # Use regular expression to find the string after ':' - match = re.search(r'(?<=:)\s*(.*)', entry) - # Extract the matched string - original_string = match.group(1) - # Split the string into words - words = re.findall(r'\b\w+\b', original_string) - # Remove words with only one letter - filtered_words = [word for word in words if len(word) > 1] - # Choose a random word from the list of words - selected_word = random.choice(filtered_words) - pattern = re.compile(r'\b' + re.escape(selected_word) + r'\b', re.IGNORECASE) - - # Replace the chosen word with the placeholder - replaced_string = pattern.sub(placeholder, original_string, 1) - # Construct the final replaced string - replaced_string = entry.replace(original_string, replaced_string) - - result = result + replaced_string + "\\n" - # Save the replaced word or use it as needed - # For example, you can save it to a file or a list - replaced_words.append(selected_word) - return result, replaced_words - - -def build_write_blanks_solutions(questions: [], start_id): - solutions = [] - for i, q in enumerate(questions, start=start_id): - solution = [q["possible_answers"]] if isinstance(q["possible_answers"], str) else q["possible_answers"] - - solutions.append( - { - "id": str(i), - "solution": solution - } - ) - return solutions - - -def build_write_blanks_solutions_listening(words: [], start_id): - solutions = [] - for i, word in enumerate(words, start=start_id): - solution = [word] if isinstance(word, str) else word - - solutions.append( - { - "id": str(i), - "solution": solution - } - ) - return solutions - - -def get_perfect_answer(question: str, size: int): - messages = [ - { - "role": "system", - "content": ( - 'You are a helpful assistant designed to output JSON on this format: ' - '{"perfect_answer": "perfect answer for the question"}') - }, - { - "role": "user", - "content": ('Write a perfect answer for this writing exercise of a IELTS exam. Question: ' + question) - - }, - { - "role": "user", - "content": ('The answer must have at least ' + str(size) + ' words') - - } - ] - token_count = count_total_tokens(messages) - return make_openai_call(GPT_4_O, messages, token_count, GEN_TEXT_FIELDS, GEN_QUESTION_TEMPERATURE) - - -def generate_reading_passage_1_text(topic: str): - messages = [ - { - "role": "system", - "content": ( - 'You are a helpful assistant designed to output JSON on this format: ' - '{"title": "title of the text", "text": "generated text"}') - }, - { - "role": "user", - "content": ( - 'Generate an extensive text for IELTS Reading Passage 1, of at least 800 words, on the topic ' - 'of "' + topic + '". The passage should offer ' - 'a substantial amount of information, ' - 'analysis, or narrative relevant to the chosen ' - 'subject matter. This text passage aims to ' - 'serve as the primary reading section of an ' - 'IELTS test, providing an in-depth and ' - 'comprehensive exploration of the topic. ' - 'Make sure that the generated text does not ' - 'contain forbidden subjects in muslim countries.') - - }, - { - "role": "system", - "content": ('The generated text should be fairly easy to understand and have multiple paragraphs.') - }, - ] - token_count = count_total_tokens(messages) - return make_openai_call(GPT_4_O, messages, token_count, GEN_TEXT_FIELDS, GEN_QUESTION_TEMPERATURE) - - -def generate_reading_passage_2_text(topic: str): - messages = [ - { - "role": "system", - "content": ( - 'You are a helpful assistant designed to output JSON on this format: ' - '{"title": "title of the text", "text": "generated text"}') - }, - { - "role": "user", - "content": ( - 'Generate an extensive text for IELTS Reading Passage 2, of at least 800 words, on the topic ' - 'of "' + topic + '". The passage should offer ' - 'a substantial amount of information, ' - 'analysis, or narrative relevant to the chosen ' - 'subject matter. This text passage aims to ' - 'serve as the primary reading section of an ' - 'IELTS test, providing an in-depth and ' - 'comprehensive exploration of the topic. ' - 'Make sure that the generated text does not ' - 'contain forbidden subjects in muslim countries.') - - }, - { - "role": "system", - "content": ('The generated text should be fairly hard to understand and have multiple paragraphs.') - }, - ] - token_count = count_total_tokens(messages) - return make_openai_call(GPT_4_O, messages, token_count, GEN_TEXT_FIELDS, GEN_QUESTION_TEMPERATURE) - - -def generate_reading_passage_3_text(topic: str): - messages = [ - { - "role": "system", - "content": ( - 'You are a helpful assistant designed to output JSON on this format: ' - '{"title": "title of the text", "text": "generated text"}') - }, - { - "role": "user", - "content": ( - 'Generate an extensive text for IELTS Reading Passage 3, of at least 800 words, on the topic ' - 'of "' + topic + '". The passage should offer ' - 'a substantial amount of information, ' - 'analysis, or narrative relevant to the chosen ' - 'subject matter. This text passage aims to ' - 'serve as the primary reading section of an ' - 'IELTS test, providing an in-depth and ' - 'comprehensive exploration of the topic. ' - 'Make sure that the generated text does not ' - 'contain forbidden subjects in muslim countries.') - - }, - { - "role": "system", - "content": ('The generated text should be very hard to understand and include different points, theories, ' - 'subtle differences of opinions from people, correctly sourced to the person who said it, ' - 'over the specified topic and have multiple paragraphs.') - }, - { - "role": "user", - "content": "Use real text excerpts on you generated passage and cite the sources." - } - ] - token_count = count_total_tokens(messages) - return make_openai_call(GPT_4_O, messages, token_count, GEN_TEXT_FIELDS, GEN_QUESTION_TEMPERATURE) - - -def generate_listening_1_conversation(topic: str): - messages = [ - { - "role": "system", - "content": ( - 'You are a helpful assistant designed to output JSON on this format: ' - '{"conversation": [{"name": "name", "gender": "gender", "text": "text"}]}') - }, - { - "role": "user", - "content": ( - 'Compose an authentic conversation between two individuals in the everyday social context ' - 'of "' + topic + '". Please include random names and genders for the characters in your dialogue. ' - 'Make sure that the generated conversation does not contain forbidden subjects in ' - 'muslim countries.') - - }, - { - "role": "user", - "content": 'Try to have misleading discourse (refer multiple dates, multiple colors and etc).' - - }, - { - "role": "user", - "content": 'Try to have spelling of names (cities, people, etc)' - - } - ] - token_count = count_total_tokens(messages) - response = make_openai_call( - GPT_4_O, - messages, - token_count, - ["conversation"], - GEN_QUESTION_TEMPERATURE - ) - - chosen_voices = [] - name_to_voice = {} - for segment in response['conversation']: - if 'voice' not in segment: - name = segment['name'] - if name in name_to_voice: - voice = name_to_voice[name] - else: - voice = None - while voice is None: - if segment['gender'].lower() == 'male': - available_voices = MALE_NEURAL_VOICES - else: - available_voices = FEMALE_NEURAL_VOICES - - chosen_voice = random.choice(available_voices)['Id'] - if chosen_voice not in chosen_voices: - voice = chosen_voice - chosen_voices.append(voice) - name_to_voice[name] = voice - segment['voice'] = voice - return response - - -def generate_listening_2_monologue(topic: str): - messages = [ - { - "role": "system", - "content": ( - 'You are a helpful assistant designed to output JSON on this format: ' - '{"monologue": "monologue"}') - }, - { - "role": "user", - "content": ( - 'Generate a comprehensive monologue set in the social context ' - 'of "' + topic + '". Make sure that the generated monologue does not contain forbidden subjects in ' - 'muslim countries.') - - } - ] - token_count = count_total_tokens(messages) - response = make_openai_call( - GPT_4_O, - messages, - token_count, - ["monologue"], - GEN_QUESTION_TEMPERATURE - ) - return response["monologue"] - - -def generate_listening_3_conversation(topic: str): - messages = [ - { - "role": "system", - "content": ( - 'You are a helpful assistant designed to output JSON on this format: ' - '{"conversation": [{"name": "name", "gender": "gender", "text": "text"}]}') - }, - { - "role": "user", - "content": ( - 'Compose an authentic and elaborate conversation between up to four individuals in the everyday ' - 'social context of "' + topic + '". Please include random names and genders for the characters in your dialogue. ' - 'Make sure that the generated conversation does not contain forbidden subjects in ' - 'muslim countries.') - - } - ] - token_count = count_total_tokens(messages) - response = make_openai_call( - GPT_4_O, - messages, - token_count, - ["conversation"], - GEN_QUESTION_TEMPERATURE - ) - - name_to_voice = {} - for segment in response['conversation']: - if 'voice' not in segment: - name = segment['name'] - if name in name_to_voice: - voice = name_to_voice[name] - else: - if segment['gender'].lower() == 'male': - voice = random.choice(MALE_NEURAL_VOICES)['Id'] - else: - voice = random.choice(FEMALE_NEURAL_VOICES)['Id'] - name_to_voice[name] = voice - segment['voice'] = voice - return response - - -def generate_listening_4_monologue(topic: str): - messages = [ - { - "role": "system", - "content": ( - 'You are a helpful assistant designed to output JSON on this format: ' - '{"monologue": "monologue"}') - }, - { - "role": "user", - "content": ( - 'Generate a comprehensive and complex monologue on the academic subject ' - 'of: "' + topic + '". Make sure that the generated monologue does not contain forbidden subjects in ' - 'muslim countries.') - - } - ] - token_count = count_total_tokens(messages) - response = make_openai_call( - GPT_4_O, - messages, - token_count, - ["monologue"], - GEN_QUESTION_TEMPERATURE - ) - return response["monologue"] - - -def generate_reading_exercises(passage: str, req_exercises: list, number_of_exercises_q, start_id, difficulty): - exercises = [] - for req_exercise in req_exercises: - number_of_exercises = number_of_exercises_q.get() - - if req_exercise == "fillBlanks": - question = gen_summary_fill_blanks_exercise(passage, number_of_exercises, start_id, difficulty) - exercises.append(question) - print("Added fill blanks: " + str(question)) - elif req_exercise == "trueFalse": - question = gen_true_false_not_given_exercise(passage, number_of_exercises, start_id, difficulty) - exercises.append(question) - print("Added trueFalse: " + str(question)) - elif req_exercise == "writeBlanks": - question = gen_write_blanks_exercise(passage, number_of_exercises, start_id, difficulty) - if answer_word_limit_ok(question): - exercises.append(question) - print("Added write blanks: " + str(question)) - else: - exercises.append({}) - print("Did not add write blanks because it did not respect word limit") - elif req_exercise == "paragraphMatch": - question = gen_paragraph_match_exercise(passage, number_of_exercises, start_id) - exercises.append(question) - print("Added paragraph match: " + str(question)) - elif req_exercise == "ideaMatch": - question = gen_idea_match_exercise(passage, number_of_exercises, start_id) - exercises.append(question) - print("Added idea match: " + str(question)) - - start_id = start_id + number_of_exercises - - return exercises - - -def answer_word_limit_ok(question): - # Check if any option in any solution has more than three words - return not any(len(option.split()) > 3 - for solution in question["solutions"] - for option in solution["solution"]) - - -def contains_empty_dict(arr): - return any(elem == {} for elem in arr) - - -def generate_listening_conversation_exercises(conversation: str, req_exercises: list, number_of_exercises_q, start_id, - difficulty): - exercises = [] - for req_exercise in req_exercises: - number_of_exercises = number_of_exercises_q.get() - - if req_exercise == "multipleChoice": - question = gen_multiple_choice_exercise_listening_conversation(conversation, number_of_exercises, start_id, - difficulty, 4) - exercises.append(question) - print("Added multiple choice: " + str(question)) - elif req_exercise == "multipleChoice3Options": - question = gen_multiple_choice_exercise_listening_conversation(conversation, number_of_exercises, start_id, - difficulty, 3) - exercises.append(question) - print("Added multiple choice: " + str(question)) - elif req_exercise == "writeBlanksQuestions": - question = gen_write_blanks_questions_exercise_listening_conversation(conversation, number_of_exercises, - start_id, difficulty) - exercises.append(question) - print("Added write blanks questions: " + str(question)) - elif req_exercise == "writeBlanksFill": - question = gen_write_blanks_notes_exercise_listening_conversation(conversation, number_of_exercises, - start_id, difficulty) - exercises.append(question) - print("Added write blanks notes: " + str(question)) - elif req_exercise == "writeBlanksForm": - question = gen_write_blanks_form_exercise_listening_conversation(conversation, number_of_exercises, - start_id, difficulty) - exercises.append(question) - print("Added write blanks form: " + str(question)) - - start_id = start_id + number_of_exercises - - return exercises - - -def generate_listening_monologue_exercises(monologue: str, req_exercises: list, number_of_exercises_q, start_id, - difficulty): - exercises = [] - for req_exercise in req_exercises: - number_of_exercises = number_of_exercises_q.get() - - if req_exercise == "multipleChoice": - question = gen_multiple_choice_exercise_listening_monologue(monologue, number_of_exercises, start_id, - difficulty) - exercises.append(question) - print("Added multiple choice: " + str(question)) - elif req_exercise == "writeBlanksQuestions": - question = gen_write_blanks_questions_exercise_listening_monologue(monologue, number_of_exercises, start_id, - difficulty) - exercises.append(question) - print("Added write blanks questions: " + str(question)) - elif req_exercise == "writeBlanksFill": - question = gen_write_blanks_notes_exercise_listening_monologue(monologue, number_of_exercises, start_id, - difficulty) - exercises.append(question) - print("Added write blanks notes: " + str(question)) - elif req_exercise == "writeBlanksForm": - question = gen_write_blanks_form_exercise_listening_monologue(monologue, number_of_exercises, start_id, - difficulty) - exercises.append(question) - print("Added write blanks form: " + str(question)) - - start_id = start_id + number_of_exercises - - return exercises - - -def gen_multiple_choice_exercise(text: str, quantity: int, start_id, difficulty): - messages = [ - { - "role": "system", - "content": ( - 'You are a helpful assistant designed to output JSON on this format: ' - '{"questions": [{"id": "9", "options": [{"id": "A", "text": "Economic benefits"}, {"id": "B", "text": ' - '"Government regulations"}, {"id": "C", "text": "Concerns about climate change"}, {"id": "D", "text": ' - '"Technological advancement"}], "prompt": "What is the main reason for the shift towards renewable ' - 'energy sources?", "solution": "C", "variant": "text"}]}') - }, - { - "role": "user", - "content": ( - 'Generate ' + str(quantity) + ' ' + difficulty + ' difficulty multiple choice questions ' - 'for this text:\n"' + text + '"') - - } - ] - token_count = count_total_tokens(messages) - question = make_openai_call(GPT_4_O, messages, token_count, ["questions"], - GEN_QUESTION_TEMPERATURE) - return { - "id": str(uuid.uuid4()), - "prompt": "Select the appropriate option.", - "questions": fix_exercise_ids(question, start_id)["questions"], - "type": "multipleChoice", - } - - -def gen_summary_fill_blanks_exercise(text: str, quantity: int, start_id, difficulty): - messages = [ - { - "role": "system", - "content": ( - 'You are a helpful assistant designed to output JSON on this format: ' - '{ "summary": "summary" }') - }, - { - "role": "user", - "content": ('Summarize this text: "' + text + '"') - - } - ] - token_count = count_total_tokens(messages) - - response = make_openai_call(GPT_4_O, messages, token_count, - ["summary"], - GEN_QUESTION_TEMPERATURE) - - messages = [ - { - "role": "system", - "content": ( - 'You are a helpful assistant designed to output JSON on this format: ' - '{"words": ["word_1", "word_2"] }') - }, - { - "role": "user", - "content": ('Select ' + str(quantity) + ' ' + difficulty + ' difficulty words, it must be words and not ' - 'expressions, from this:\n' + response[ - "summary"]) - - } - ] - token_count = count_total_tokens(messages) - - words_response = make_openai_call(GPT_4_O, messages, token_count, - ["summary"], - GEN_QUESTION_TEMPERATURE) - response["words"] = words_response["words"] - replaced_summary = replace_first_occurrences_with_placeholders(response["summary"], response["words"], start_id) - options_words = add_random_words_and_shuffle(response["words"], 1) - solutions = fillblanks_build_solutions_array(response["words"], start_id) - - return { - "allowRepetition": True, - "id": str(uuid.uuid4()), - "prompt": "Complete the summary below. Write the letter of the corresponding word(s) for it.\\nThere are " - "more words than spaces so you will not use them all. You may use any of the words more than once.", - "solutions": solutions, - "text": replaced_summary, - "type": "fillBlanks", - "words": options_words - - } - - -def gen_true_false_not_given_exercise(text: str, quantity: int, start_id, difficulty): - messages = [ - { - "role": "system", - "content": ( - 'You are a helpful assistant designed to output JSON on this format: ' - '{"prompts":[{"prompt": "statement_1", "solution": "true/false/not_given"}, ' - '{"prompt": "statement_2", "solution": "true/false/not_given"}]}') - }, - { - "role": "user", - "content": ( - 'Generate ' + str( - quantity) + ' ' + difficulty + ' difficulty statements based on the provided text. ' - 'Ensure that your statements accurately represent ' - 'information or inferences from the text, and ' - 'provide a variety of responses, including, at ' - 'least one of each True, False, and Not Given, ' - 'as appropriate.\n\nReference text:\n\n ' + text) - - } - ] - token_count = count_total_tokens(messages) - - questions = make_openai_call(GPT_4_O, messages, token_count, ["prompts"], - GEN_QUESTION_TEMPERATURE)["prompts"] - if len(questions) > quantity: - questions = remove_excess_questions(questions, len(questions) - quantity) - - for i, question in enumerate(questions, start=start_id): - question["id"] = str(i) - - return { - "id": str(uuid.uuid4()), - "prompt": "Do the following statements agree with the information given in the Reading Passage?", - "questions": questions, - "type": "trueFalse" - } - - -def gen_write_blanks_exercise(text: str, quantity: int, start_id, difficulty): - messages = [ - { - "role": "system", - "content": ( - 'You are a helpful assistant designed to output JSON on this format: ' - '{"questions": [{"question": question, "possible_answers": ["answer_1", "answer_2"]}]}') - }, - { - "role": "user", - "content": ( - 'Generate ' + str(quantity) + ' ' + difficulty + ' difficulty short answer questions, and the ' - 'possible answers, must have maximum 3 words ' - 'per answer, about this text:\n"' + text + '"') - - } - ] - token_count = count_total_tokens(messages) - questions = make_openai_call(GPT_4_O, messages, token_count, ["questions"], - GEN_QUESTION_TEMPERATURE)["questions"][:quantity] - - return { - "id": str(uuid.uuid4()), - "maxWords": 3, - "prompt": "Choose no more than three words and/or a number from the passage for each answer.", - "solutions": build_write_blanks_solutions(questions, start_id), - "text": build_write_blanks_text(questions, start_id), - "type": "writeBlanks" - } - - -def gen_paragraph_match_exercise(text: str, quantity: int, start_id): - paragraphs = assign_letters_to_paragraphs(text) - messages = [ - { - "role": "system", - "content": ( - 'You are a helpful assistant designed to output JSON on this format: ' - '{"headings": [ {"heading": "first paragraph heading"}, {"heading": "second paragraph heading"}]}') - }, - { - "role": "user", - "content": ( - 'For every paragraph of the list generate a minimum 5 word heading for it. The paragraphs are these: ' + str( - paragraphs)) - - } - ] - token_count = count_total_tokens(messages) - - headings = make_openai_call(GPT_4_O, messages, token_count, ["headings"], - GEN_QUESTION_TEMPERATURE)["headings"] - - options = [] - for i, paragraph in enumerate(paragraphs, start=0): - paragraph["heading"] = headings[i]["heading"] - options.append({ - "id": paragraph["letter"], - "sentence": paragraph["paragraph"] - }) - - random.shuffle(paragraphs) - sentences = [] - for i, paragraph in enumerate(paragraphs, start=start_id): - sentences.append({ - "id": i, - "sentence": paragraph["heading"], - "solution": paragraph["letter"] - }) - - return { - "id": str(uuid.uuid4()), - "allowRepetition": False, - "options": options, - "prompt": "Choose the correct heading for paragraphs from the list of headings below.", - "sentences": sentences[:quantity], - "type": "matchSentences" - } - - -def gen_idea_match_exercise(text: str, quantity: int, start_id): - messages = [ - { - "role": "system", - "content": ( - 'You are a helpful assistant designed to output JSON on this format: ' - '{"ideas": [ ' - '{"idea": "some idea or opinion", "from": "person, institution whose idea or opinion this is"}, ' - '{"idea": "some other idea or opinion", "from": "person, institution whose idea or opinion this is"}' - ']}') - }, - { - "role": "user", - "content": ( - 'From the text extract ' + str( - quantity) + ' ideas, theories, opinions and who they are from. The text: ' + str(text)) - - } - ] - token_count = count_total_tokens(messages) - - ideas = make_openai_call(GPT_4_O, messages, token_count, ["ideas"], GEN_QUESTION_TEMPERATURE)["ideas"] - - return { - "id": str(uuid.uuid4()), - "allowRepetition": False, - "options": build_options(ideas), - "prompt": "Choose the correct author for the ideas/opinions from the list of authors below.", - "sentences": build_sentences(ideas, start_id), - "type": "matchSentences" - } - - -def build_options(ideas): - options = [] - letters = iter(string.ascii_uppercase) - for idea in ideas: - options.append({ - "id": next(letters), - "sentence": idea["from"] - }) - return options - - -def build_sentences(ideas, start_id): - sentences = [] - letters = iter(string.ascii_uppercase) - for idea in ideas: - sentences.append({ - "solution": next(letters), - "sentence": idea["idea"] - }) - - random.shuffle(sentences) - for i, sentence in enumerate(sentences, start=start_id): - sentence["id"] = i - return sentences - - -def assign_letters_to_paragraphs(paragraphs): - result = [] - letters = iter(string.ascii_uppercase) - for paragraph in paragraphs.split("\n\n"): - if has_x_words(paragraph, 10): - result.append({'paragraph': paragraph.strip(), 'letter': next(letters)}) - return result - - -def gen_multiple_choice_exercise_listening_conversation(text: str, quantity: int, start_id, difficulty, n_options=4): - messages = [ - { - "role": "system", - "content": ( - 'You are a helpful assistant designed to output JSON on this format: ' - '{"questions": [{"id": "9", "options": [{"id": "A", "text": "Economic benefits"}, {"id": "B", "text": ' - '"Government regulations"}, {"id": "C", "text": "Concerns about climate change"}, {"id": "D", "text": ' - '"Technological advancement"}], "prompt": "What is the main reason for the shift towards renewable ' - 'energy sources?", "solution": "C", "variant": "text"}]}') - }, - { - "role": "user", - "content": ( - 'Generate ' + str(quantity) + ' ' + difficulty + ' difficulty multiple choice questions of ' + str( - n_options) + ' options ' - 'of for this conversation:\n"' + text + '"') - - } - ] - token_count = count_total_tokens(messages) - - question = make_openai_call(GPT_4_O, messages, token_count, ["questions"], GEN_QUESTION_TEMPERATURE) - return { - "id": str(uuid.uuid4()), - "prompt": "Select the appropriate option.", - "questions": fix_exercise_ids(question, start_id)["questions"], - "type": "multipleChoice", - } - - -def gen_multiple_choice_exercise_listening_monologue(text: str, quantity: int, start_id, difficulty, n_options=4): - messages = [ - { - "role": "system", - "content": ( - 'You are a helpful assistant designed to output JSON on this format: ' - '{"questions": [{"id": "9", "options": [{"id": "A", "text": "Economic benefits"}, {"id": "B", "text": ' - '"Government regulations"}, {"id": "C", "text": "Concerns about climate change"}, {"id": "D", "text": ' - '"Technological advancement"}], "prompt": "What is the main reason for the shift towards renewable ' - 'energy sources?", "solution": "C", "variant": "text"}]}') - }, - { - "role": "user", - "content": ( - 'Generate ' + str( - quantity) + ' ' + difficulty + ' difficulty multiple choice questions of ' + str( - n_options) + ' options ' - 'of for this monologue:\n"' + text + '"') - - } - ] - token_count = count_total_tokens(messages) - - question = make_openai_call(GPT_4_O, messages, token_count, ["questions"], GEN_QUESTION_TEMPERATURE) - return { - "id": str(uuid.uuid4()), - "prompt": "Select the appropriate option.", - "questions": fix_exercise_ids(question, start_id)["questions"], - "type": "multipleChoice", - } - - -def gen_write_blanks_questions_exercise_listening_conversation(text: str, quantity: int, start_id, difficulty): - messages = [ - { - "role": "system", - "content": ( - 'You are a helpful assistant designed to output JSON on this format: ' - '{"questions": [{"question": question, "possible_answers": ["answer_1", "answer_2"]}]}') - }, - { - "role": "user", - "content": ( - 'Generate ' + str(quantity) + ' ' + difficulty + ' difficulty short answer questions, and the ' - 'possible answers (max 3 words per answer), ' - 'about this conversation:\n"' + text + '"') - - } - ] - token_count = count_total_tokens(messages) - - questions = make_openai_call(GPT_4_O, messages, token_count, ["questions"], - GEN_QUESTION_TEMPERATURE)["questions"][:quantity] - - return { - "id": str(uuid.uuid4()), - "maxWords": 3, - "prompt": "You will hear a conversation. Answer the questions below using no more than three words or a number accordingly.", - "solutions": build_write_blanks_solutions(questions, start_id), - "text": build_write_blanks_text(questions, start_id), - "type": "writeBlanks" - } - - -def gen_write_blanks_questions_exercise_listening_monologue(text: str, quantity: int, start_id, difficulty): - messages = [ - { - "role": "system", - "content": ( - 'You are a helpful assistant designed to output JSON on this format: ' - '{"questions": [{"question": question, "possible_answers": ["answer_1", "answer_2"]}]}') - }, - { - "role": "user", - "content": ( - 'Generate ' + str(quantity) + ' ' + difficulty + ' difficulty short answer questions, and the ' - 'possible answers (max 3 words per answer), ' - 'about this monologue:\n"' + text + '"') - - } - ] - token_count = count_total_tokens(messages) - - questions = make_openai_call(GPT_4_O, messages, token_count, ["questions"], - GEN_QUESTION_TEMPERATURE)["questions"][:quantity] - - return { - "id": str(uuid.uuid4()), - "maxWords": 3, - "prompt": "You will hear a monologue. Answer the questions below using no more than three words or a number accordingly.", - "solutions": build_write_blanks_solutions(questions, start_id), - "text": build_write_blanks_text(questions, start_id), - "type": "writeBlanks" - } - - -def gen_write_blanks_notes_exercise_listening_conversation(text: str, quantity: int, start_id, difficulty): - messages = [ - { - "role": "system", - "content": ( - 'You are a helpful assistant designed to output JSON on this format: ' - '{"notes": ["note_1", "note_2"]}') - }, - { - "role": "user", - "content": ( - 'Generate ' + str(quantity) + ' ' + difficulty + ' difficulty notes taken from this ' - 'conversation:\n"' + text + '"') - - } - ] - token_count = count_total_tokens(messages) - - questions = make_openai_call(GPT_4_O, messages, token_count, ["notes"], - GEN_QUESTION_TEMPERATURE)["notes"][:quantity] - - formatted_phrases = "\n".join([f"{i + 1}. {phrase}" for i, phrase in enumerate(questions)]) - - word_messages = [ - { - "role": "system", - "content": ( - 'You are a helpful assistant designed to output JSON on this format: {"words": ["word_1", "word_2"] }') - }, - { - "role": "user", - "content": ('Select 1 word from each phrase in this list:\n"' + formatted_phrases + '"') - - } - ] - words = make_openai_call(GPT_4_O, word_messages, token_count, ["words"], - GEN_QUESTION_TEMPERATURE)["words"][:quantity] - replaced_notes = replace_first_occurrences_with_placeholders_notes(questions, words, start_id) - return { - "id": str(uuid.uuid4()), - "maxWords": 3, - "prompt": "Fill the blank space with the word missing from the audio.", - "solutions": build_write_blanks_solutions_listening(words, start_id), - "text": "\\n".join(replaced_notes), - "type": "writeBlanks" - } - - -def gen_write_blanks_notes_exercise_listening_monologue(text: str, quantity: int, start_id, difficulty): - messages = [ - { - "role": "system", - "content": ( - 'You are a helpful assistant designed to output JSON on this format: ' - '{"notes": ["note_1", "note_2"]}') - }, - { - "role": "user", - "content": ( - 'Generate ' + str(quantity) + ' ' + difficulty + ' difficulty notes taken from this ' - 'monologue:\n"' + text + '"') - - } - ] - token_count = count_total_tokens(messages) - - questions = make_openai_call(GPT_4_O, messages, token_count, ["notes"], - GEN_QUESTION_TEMPERATURE)["notes"][:quantity] - - formatted_phrases = "\n".join([f"{i + 1}. {phrase}" for i, phrase in enumerate(questions)]) - - word_messages = [ - { - "role": "system", - "content": ( - 'You are a helpful assistant designed to output JSON on this format: {"words": ["word_1", "word_2"] }') - }, - { - "role": "user", - "content": ('Select 1 word from each phrase in this list:\n"' + formatted_phrases + '"') - - } - ] - words = make_openai_call(GPT_4_O, word_messages, token_count, ["words"], - GEN_QUESTION_TEMPERATURE)["words"][:quantity] - replaced_notes = replace_first_occurrences_with_placeholders_notes(questions, words, start_id) - return { - "id": str(uuid.uuid4()), - "maxWords": 3, - "prompt": "Fill the blank space with the word missing from the audio.", - "solutions": build_write_blanks_solutions_listening(words, start_id), - "text": "\\n".join(replaced_notes), - "type": "writeBlanks" - } - - -def gen_write_blanks_form_exercise_listening_conversation(text: str, quantity: int, start_id, difficulty): - messages = [ - { - "role": "system", - "content": ( - 'You are a helpful assistant designed to output JSON on this format: ' - '{"form": ["key": "value", "key2": "value"]}') - }, - { - "role": "user", - "content": ( - 'Generate a form with ' + str( - quantity) + ' entries with information about this conversation:\n"' + text + '"') - - }, - { - "role": "user", - "content": 'It must be a form and not questions. ' - 'Example: {"form": ["Color of car": "blue", "Brand of car": "toyota"]}' - - } - ] - token_count = count_total_tokens(messages) - - parsed_form = make_openai_call(GPT_4_O, messages, token_count, ["form"], - GEN_QUESTION_TEMPERATURE)["form"][:quantity] - replaced_form, words = build_write_blanks_text_form(parsed_form, start_id) - return { - "id": str(uuid.uuid4()), - "maxWords": 3, - "prompt": "You will hear a conversation. Fill the form with words/numbers missing.", - "solutions": build_write_blanks_solutions_listening(words, start_id), - "text": replaced_form, - "type": "writeBlanks" - } - - -def gen_write_blanks_form_exercise_listening_monologue(text: str, quantity: int, start_id, difficulty): - messages = [ - { - "role": "system", - "content": ( - 'You are a helpful assistant designed to output JSON on this format: ' - '{"form": ["key: value", "key2: value"]}') - }, - { - "role": "user", - "content": ( - 'Generate a form with ' + str( - quantity) + ' ' + difficulty + ' difficulty key-value pairs about this monologue:\n"' + text + '"') - - } - ] - token_count = count_total_tokens(messages) - - parsed_form = make_openai_call(GPT_4_O, messages, token_count, ["form"], - GEN_QUESTION_TEMPERATURE)["form"][:quantity] - replaced_form, words = build_write_blanks_text_form(parsed_form, start_id) - return { - "id": str(uuid.uuid4()), - "maxWords": 3, - "prompt": "You will hear a monologue. Fill the form with words/numbers missing.", - "solutions": build_write_blanks_solutions_listening(words, start_id), - "text": replaced_form, - "type": "writeBlanks" - } - - -def gen_multiple_choice_level(mongo_db: Database, quantity: int, start_id=1): - gen_multiple_choice_for_text = "Generate " + str( - quantity) + " multiple choice questions of 4 options for an english level exam, some easy questions, some intermediate " \ - "questions and some advanced questions. Ensure that the questions cover a range of topics such as " \ - "verb tense, subject-verb agreement, pronoun usage, sentence structure, and punctuation. Make sure " \ - "every question only has 1 correct answer." - - messages = [ - { - "role": "system", - "content": ( - 'You are a helpful assistant designed to output JSON on this format: {"questions": [{"id": "9", "options": ' - '[{"id": "A", "text": ' - '"And"}, {"id": "B", "text": "Cat"}, {"id": "C", "text": ' - '"Happy"}, {"id": "D", "text": "Jump"}], ' - '"prompt": "Which of the following is a conjunction?", ' - '"solution": "A", "variant": "text"}]}') - }, - { - "role": "user", - "content": gen_multiple_choice_for_text - } - ] - - token_count = count_total_tokens(messages) - question = make_openai_call(GPT_4_O, messages, token_count, - ["questions"], - GEN_QUESTION_TEMPERATURE) - - if len(question["questions"]) != quantity: - return gen_multiple_choice_level(mongo_db, quantity, start_id) - else: - all_exams = get_all(mongo_db, "level") - seen_keys = set() - for i in range(len(question["questions"])): - question["questions"][i], seen_keys = replace_exercise_if_exists(all_exams, question["questions"][i], - question, - seen_keys) - return { - "id": str(uuid.uuid4()), - "prompt": "Select the appropriate option.", - "questions": fix_exercise_ids(question, start_id)["questions"], - "type": "multipleChoice", - } - - -def replace_exercise_if_exists(all_exams, current_exercise, current_exam, seen_keys): - # Extracting relevant fields for comparison - key = (current_exercise['prompt'], tuple(sorted(option['text'] for option in current_exercise['options']))) - # Check if the key is in the set - if key in seen_keys: - return replace_exercise_if_exists(all_exams, generate_single_mc_level_question(), current_exam, seen_keys) - else: - seen_keys.add(key) - - for exam in all_exams: - exam_dict = exam.to_dict() - if len(exam_dict.get("parts", [])) > 0: - exercise_dict = exam_dict.get("parts", [])[0] - if len(exercise_dict.get("exercises", [])) > 0: - if any( - exercise["prompt"] == current_exercise["prompt"] and - any(exercise["options"][0]["text"] == current_option["text"] for current_option in - current_exercise["options"]) - for exercise in exercise_dict.get("exercises", [])[0]["questions"] - ): - return replace_exercise_if_exists(all_exams, generate_single_mc_level_question(), current_exam, - seen_keys) - return current_exercise, seen_keys - - -def replace_exercise_if_exists_utas(all_exams, current_exercise, current_exam, seen_keys): - # Extracting relevant fields for comparison - key = (current_exercise['prompt'], tuple(sorted(option['text'] for option in current_exercise['options']))) - # Check if the key is in the set - if key in seen_keys: - return replace_exercise_if_exists_utas(all_exams, generate_single_mc_level_question(), current_exam, seen_keys) - else: - seen_keys.add(key) - - for exam in all_exams: - if any( - exercise["prompt"] == current_exercise["prompt"] and - any(exercise["options"][0]["text"] == current_option["text"] for current_option in - current_exercise["options"]) - for exercise in exam.get("questions", []) - ): - return replace_exercise_if_exists_utas(all_exams, generate_single_mc_level_question(), current_exam, - seen_keys) - return current_exercise, seen_keys - - -def replace_blank_space_exercise_if_exists_utas(all_exams, current_exercise, current_exam, seen_keys): - # Extracting relevant fields for comparison - key = (current_exercise['prompt'], tuple(sorted(option['text'] for option in current_exercise['options']))) - # Check if the key is in the set - if key in seen_keys: - return replace_exercise_if_exists_utas(all_exams, generate_single_mc_blank_space_level_question(), current_exam, - seen_keys) - else: - seen_keys.add(key) - - for exam in all_exams: - if any( - exercise["prompt"] == current_exercise["prompt"] and - any(exercise["options"][0]["text"] == current_option["text"] for current_option in - current_exercise["options"]) - for exercise in exam.get("questions", []) - ): - return replace_exercise_if_exists_utas(all_exams, generate_single_mc_blank_space_level_question(), - current_exam, - seen_keys) - return current_exercise, seen_keys - - -def replace_underlined_exercise_if_exists_utas(all_exams, current_exercise, current_exam, seen_keys): - # Extracting relevant fields for comparison - key = (current_exercise['prompt'], tuple(sorted(option['text'] for option in current_exercise['options']))) - # Check if the key is in the set - if key in seen_keys: - return replace_exercise_if_exists_utas(all_exams, generate_single_mc_underlined_level_question(), current_exam, - seen_keys) - else: - seen_keys.add(key) - - for exam in all_exams: - if any( - exercise["prompt"] == current_exercise["prompt"] and - any(exercise["options"][0]["text"] == current_option["text"] for current_option in - current_exercise["options"]) - for exercise in exam.get("questions", []) - ): - return replace_exercise_if_exists_utas(all_exams, generate_single_mc_underlined_level_question(), - current_exam, - seen_keys) - return current_exercise, seen_keys - - -def generate_single_mc_level_question(): - messages = [ - { - "role": "system", - "content": ( - 'You are a helpful assistant designed to output JSON on this format: ' - '{"id": "9", "options": [{"id": "A", "text": "And"}, {"id": "B", "text": "Cat"}, {"id": "C", "text": ' - '"Happy"}, {"id": "D", "text": "Jump"}], "prompt": "Which of the following is a conjunction?", ' - '"solution": "A", "variant": "text"}') - }, - { - "role": "user", - "content": ('Generate 1 multiple choice question of 4 options for an english level exam, it can be easy, ' - 'intermediate or advanced.') - - } - ] - token_count = count_total_tokens(messages) - - question = make_openai_call(GPT_4_O, messages, token_count, ["options"], - GEN_QUESTION_TEMPERATURE) - - return question - - -def generate_single_mc_blank_space_level_question(): - messages = [ - { - "role": "system", - "content": ( - 'You are a helpful assistant designed to output JSON on this format: ' - '{"id": "9", "options": [{"id": "A", "text": "And"}, {"id": "B", "text": "Cat"}, {"id": "C", "text": ' - '"Happy"}, {"id": "D", "text": "Jump"}], "prompt": "Which of the following is a conjunction?", ' - '"solution": "A", "variant": "text"}') - }, - { - "role": "user", - "content": ('Generate 1 multiple choice blank space question of 4 options for an english level exam, ' - 'it can be easy, intermediate or advanced.') - - } - ] - token_count = count_total_tokens(messages) - - question = make_openai_call(GPT_4_O, messages, token_count, ["options"], - GEN_QUESTION_TEMPERATURE) - - return question - - -def generate_single_mc_underlined_level_question(): - messages = [ - { - "role": "system", - "content": ( - 'You are a helpful assistant designed to output JSON on this format: ' - '{"id": "9", "options": [{"id": "A", "text": "And"}, {"id": "B", "text": "Cat"}, {"id": "C", "text": ' - '"Happy"}, {"id": "D", "text": "Jump"}], "prompt": "Which of the following is a conjunction?", ' - '"solution": "A", "variant": "text"}') - }, - { - "role": "user", - "content": ('Generate 1 multiple choice blank space question of 4 options for an english level exam, ' - 'it can be easy, intermediate or advanced.') - - }, - { - "role": "user", - "content": ( - 'The type of multiple choice is the prompt has wrong words or group of words and the options are to ' - 'find the wrong word or group of words that are underlined in the prompt. \nExample:\n' - 'Prompt: "I complain about my boss all the time, but my colleagues thinks the boss is nice."\n' - 'Options:\na: "complain"\nb: "all the time"\nc: "thinks"\nd: "is"') - } - ] - token_count = count_total_tokens(messages) - - question = make_openai_call(GPT_4_O, messages, token_count, ["options"], - GEN_QUESTION_TEMPERATURE) - - return question - - -def parse_conversation(conversation_data): - conversation_list = conversation_data.get('conversation', []) - readable_text = [] - - for message in conversation_list: - name = message.get('name', 'Unknown') - text = message.get('text', '') - readable_text.append(f"{name}: {text}") - - return "\n".join(readable_text) - - -def gen_multiple_choice_blank_space_utas(quantity: int, start_id: int, all_exams=None): - gen_multiple_choice_for_text = "Generate " + str( - quantity) + " multiple choice blank space questions of 4 options for an english level exam, some easy questions, some intermediate " \ - "questions and some advanced questions. Ensure that the questions cover a range of topics such as " \ - "verb tense, subject-verb agreement, pronoun usage, sentence structure, and punctuation. Make sure " \ - "every question only has 1 correct answer." - - messages = [ - { - "role": "system", - "content": ( - 'You are a helpful assistant designed to output JSON on this format: {"questions": [{"id": "9", "options": ' - '[{"id": "A", "text": ' - '"And"}, {"id": "B", "text": "Cat"}, {"id": "C", "text": ' - '"Happy"}, {"id": "D", "text": "Jump"}], ' - '"prompt": "Which of the following is a conjunction?", ' - '"solution": "A", "variant": "text"}]}') - }, - { - "role": "user", - "content": gen_multiple_choice_for_text - } - ] - - token_count = count_total_tokens(messages) - question = make_openai_call(GPT_4_O, messages, token_count, - ["questions"], - GEN_QUESTION_TEMPERATURE) - - if len(question["questions"]) != quantity: - return gen_multiple_choice_blank_space_utas(quantity, start_id) - else: - if all_exams is not None: - seen_keys = set() - for i in range(len(question["questions"])): - question["questions"][i], seen_keys = ( - replace_blank_space_exercise_if_exists_utas(all_exams, question["questions"][i], question, - seen_keys)) - response = fix_exercise_ids(question, start_id) - response["questions"] = randomize_mc_options_order(response["questions"]) - return response - - -def gen_multiple_choice_underlined_utas(quantity: int, start_id: int, all_exams=None): - json_format = { - "questions": [ - { - "id": "9", - "options": [ - { - "id": "A", - "text": "a" - }, - { - "id": "B", - "text": "b" - }, - { - "id": "C", - "text": "c" - }, - { - "id": "D", - "text": "d" - } - ], - "prompt": "prompt", - "solution": "A", - "variant": "text" - } - ] - } - - gen_multiple_choice_for_text = 'Generate ' + str(quantity) + ( - ' multiple choice questions of 4 options for an english ' - 'level exam, some easy questions, some intermediate ' - 'questions and some advanced questions.Ensure that ' - 'the questions cover a range of topics such as verb ' - 'tense, subject-verb agreement, pronoun usage, ' - 'sentence structure, and punctuation. Make sure ' - 'every question only has 1 correct answer.') - - messages = [ - { - "role": "system", - "content": 'You are a helpful assistant designed to output JSON on this format: ' + str(json_format) - }, - { - "role": "user", - "content": gen_multiple_choice_for_text - }, - { - "role": "user", - "content": ( - 'The type of multiple choice is the prompt has wrong words or group of words and the options are to ' - 'find the wrong word or group of words that are underlined in the prompt. \nExample:\n' - 'Prompt: "I complain about my boss all the time, but my colleagues thinks the boss is nice."\n' - 'Options:\na: "complain"\nb: "all the time"\nc: "thinks"\nd: "is"') - } - ] - - token_count = count_total_tokens(messages) - question = make_openai_call(GPT_4_O, messages, token_count, - ["questions"], - GEN_QUESTION_TEMPERATURE) - - if len(question["questions"]) != quantity: - return gen_multiple_choice_underlined_utas(quantity, start_id) - else: - if all_exams is not None: - seen_keys = set() - for i in range(len(question["questions"])): - question["questions"][i], seen_keys = ( - replace_underlined_exercise_if_exists_utas(all_exams, question["questions"][i], question, - seen_keys)) - response = fix_exercise_ids(question, start_id) - response["questions"] = randomize_mc_options_order(response["questions"]) - return response - - -def gen_fill_blanks_mc_utas(quantity: int, start_id: int, size: int, topic=random.choice(mti_topics)): - json_format = { - "question": { - "solutions": [ - { - "id": "", - "solution": "" - } - ], - "words": [ - { - "id": "", - "options": { - "A": "", - "B": "", - "C": "", - "D": "" - } - } - ], - "text": "text" - } - } - - messages = [ - { - "role": "system", - "content": 'You are a helpful assistant designed to output JSON on this format: ' + str(json_format) - }, - { - "role": "user", - "content": ( - f'Generate a text of at least {size} words about the topic {topic}. Make sure the text is structured ' - 'in paragraphs formatted with newlines (\\n\\n) to delimit them.' - ) - }, - { - "role": "user", - "content": ( - f'From the generated text choose {quantity} words (cannot be sequential words) to replace ' - 'once with {{id}} where id starts on ' + str(start_id) + ' and is incremented for each word. ' - 'For each word choose 4 options, 1 correct and the other ones false. Make sure that only 1 is the ' - 'correct one amongst the 4 options and put the solution on the solutions array. ' - 'The ids must be ordered throughout the text and the words must be replaced only once. Put the ' - 'removed words and respective ids on the words array of the json in the correct order. You can\'t ' - 'reference multiple times the same id across the text, if for example one of the chosen words is ' - '"word1" then word1 must be placed in the text with an id once, if word1 is referenced other ' - 'times in the text then replace with the actual text of word.' - ) - } - ] - - token_count = count_total_tokens(messages) - question = make_openai_call(GPT_4_O, messages, token_count, - ["question"], - GEN_QUESTION_TEMPERATURE) - - return question["question"] - - -def gen_blank_space_text_utas(quantity: int, start_id: int, size: int, topic=random.choice(mti_topics)): - json_format = { - "question": { - "words": [ - { - "id": "1", - "text": "a" - }, - { - "id": "2", - "text": "b" - }, - { - "id": "3", - "text": "c" - }, - { - "id": "4", - "text": "d" - } - ], - "text": "text" - } - } - gen_text = 'Generate a text of at least ' + str(size) + ' words about the topic ' + topic + '.' - - messages = [ - { - "role": "system", - "content": 'You are a helpful assistant designed to output JSON on this format: ' + str(json_format) - }, - { - "role": "user", - "content": gen_text - }, - { - "role": "user", - "content": ( - 'From the generated text choose ' + str( - quantity) + ' words (cannot be sequential words) to replace ' - 'once with {{id}} where id starts on ' + str(start_id) + ' and is ' - 'incremented for each word. The ids must be ordered throughout the text and the words must be ' - 'replaced only once. Put the removed words and respective ids on the words array of the json in the correct order.') - } - ] - - token_count = count_total_tokens(messages) - question = make_openai_call(GPT_4_O, messages, token_count, - ["question"], - GEN_QUESTION_TEMPERATURE) - - return question["question"] - - -def gen_reading_passage_utas(mongo_db: Database, start_id, sa_quantity: int, mc_quantity: int, topic=random.choice(mti_topics)): - passage = generate_reading_passage_1_text(topic) - short_answer = gen_short_answer_utas(passage["text"], start_id, sa_quantity) - mc_exercises = gen_text_multiple_choice_utas(mongo_db, passage["text"], start_id + sa_quantity, mc_quantity) - return { - "exercises": { - "shortAnswer": short_answer, - "multipleChoice": mc_exercises, - }, - "text": { - "content": passage["text"], - "title": passage["title"] - } - } - - -def gen_short_answer_utas(text: str, start_id: int, sa_quantity: int): - json_format = {"questions": [{"id": 1, "question": "question", "possible_answers": ["answer_1", "answer_2"]}]} - - messages = [ - { - "role": "system", - "content": 'You are a helpful assistant designed to output JSON on this format: ' + str(json_format) - }, - { - "role": "user", - "content": ( - 'Generate ' + str(sa_quantity) + ' short answer questions, and the possible answers, must have ' - 'maximum 3 words per answer, about this text:\n"' + text + '"') - }, - { - "role": "user", - "content": 'The id starts at ' + str(start_id) + '.' - } - ] - - token_count = count_total_tokens(messages) - return make_openai_call(GPT_4_O, messages, token_count, - ["questions"], - GEN_QUESTION_TEMPERATURE)["questions"] - - -def gen_text_multiple_choice_utas(mongo_db: Database, text: str, start_id: int, mc_quantity: int): - json_format = { - "questions": [ - { - "id": "9", - "options": [ - { - "id": "A", - "text": "a" - }, - { - "id": "B", - "text": "b" - }, - { - "id": "C", - "text": "c" - }, - { - "id": "D", - "text": "d" - } - ], - "prompt": "prompt", - "solution": "A", - "variant": "text" - } - ] - } - - messages = [ - { - "role": "system", - "content": 'You are a helpful assistant designed to output JSON on this format: ' + str(json_format) - }, - { - "role": "user", - "content": 'Generate ' + str( - mc_quantity) + ' multiple choice questions of 4 options for this text:\n' + text - }, - { - "role": "user", - "content": 'Make sure every question only has 1 correct answer.' - } - ] - - token_count = count_total_tokens(messages) - question = make_openai_call(GPT_4_O, messages, token_count, - ["questions"], - GEN_QUESTION_TEMPERATURE) - - if len(question["questions"]) != mc_quantity: - return gen_multiple_choice_level(mongo_db, mc_quantity, start_id) - else: - response = fix_exercise_ids(question, start_id) - response["questions"] = randomize_mc_options_order(response["questions"]) - return response - - -def generate_level_mc(start_id: int, quantity: int, all_questions=None): - json_format = { - "questions": [ - { - "id": "9", - "options": [ - { - "id": "A", - "text": "a" - }, - { - "id": "B", - "text": "b" - }, - { - "id": "C", - "text": "c" - }, - { - "id": "D", - "text": "d" - } - ], - "prompt": "prompt", - "solution": "A", - "variant": "text" - } - ] - } - - messages = [ - { - "role": "system", - "content": 'You are a helpful assistant designed to output JSON on this format: ' + str(json_format) - }, - { - "role": "user", - "content": ('Generate ' + str(quantity) + ' multiple choice question of 4 options for an english level ' - 'exam, it can be easy, intermediate or advanced.') - - }, - { - "role": "user", - "content": 'Make sure every question only has 1 correct answer.' - } - ] - token_count = count_total_tokens(messages) - - question = make_openai_call(GPT_4_O, messages, token_count, ["questions"], - GEN_QUESTION_TEMPERATURE) - - if all_questions is not None: - seen_keys = set() - for i in range(len(question["questions"])): - question["questions"][i], seen_keys = replace_exercise_if_exists_utas(all_questions, - question["questions"][i], - question, - seen_keys) - response = fix_exercise_ids(question, start_id) - response["questions"] = randomize_mc_options_order(response["questions"]) - return response - - -def randomize_mc_options_order(questions): - option_ids = ['A', 'B', 'C', 'D'] - - for question in questions: - # Store the original solution text - original_solution_text = next( - option['text'] for option in question['options'] if option['id'] == question['solution']) - - # Shuffle the options - random.shuffle(question['options']) - - # Update the option ids and find the new solution id - for idx, option in enumerate(question['options']): - option['id'] = option_ids[idx] - if option['text'] == original_solution_text: - question['solution'] = option['id'] - - return questions - - -def gen_writing_task_1(topic, difficulty): - messages = [ - { - "role": "system", - "content": ('You are a helpful assistant designed to output JSON on this format: ' - '{"prompt": "prompt content"}') - }, - { - "role": "user", - "content": ('Craft a prompt for an IELTS Writing Task 1 General Training exercise that instructs the ' - 'student to compose a letter. The prompt should present a specific scenario or situation, ' - 'based on the topic of "' + topic + '", requiring the student to provide information, ' - 'advice, or instructions within the letter. ' - 'Make sure that the generated prompt is ' - 'of ' + difficulty + 'difficulty and does not contain ' - 'forbidden subjects in muslim ' - 'countries.') - }, - { - "role": "user", - "content": 'The prompt should end with "In the letter you should" followed by 3 bullet points of what ' - 'the answer should include.' - } - ] - token_count = count_total_tokens(messages) - response = make_openai_call(GPT_3_5_TURBO, messages, token_count, "prompt", - GEN_QUESTION_TEMPERATURE) - return { - "question": add_newline_before_hyphen(response["prompt"].strip()), - "difficulty": difficulty, - "topic": topic - } - - -def add_newline_before_hyphen(s): - return s.replace(" -", "\n-") - - -def gen_writing_task_2(topic, difficulty): - messages = [ - { - "role": "system", - "content": ('You are a helpful assistant designed to output JSON on this format: ' - '{"prompt": "prompt content"}') - }, - { - "role": "user", - "content": ( - 'Craft a comprehensive question of ' + difficulty + 'difficulty like the ones for IELTS Writing ' - 'Task 2 General Training that directs the ' - 'candidate' - 'to delve into an in-depth analysis of ' - 'contrasting perspectives on the topic ' - 'of "' + topic + '". The candidate should be ' - 'asked to discuss the ' - 'strengths and weaknesses of ' - 'both viewpoints.') - }, - { - "role": "user", - "content": 'The question should lead to an answer with either "theories", "complicated information" or ' - 'be "very descriptive" on the topic.' - } - ] - token_count = count_total_tokens(messages) - response = make_openai_call(GPT_4_O, messages, token_count, "prompt", GEN_QUESTION_TEMPERATURE) - return { - "question": response["prompt"].strip(), - "difficulty": difficulty, - "topic": topic - } - - -def gen_speaking_part_1(first_topic: str, second_topic: str, difficulty): - json_format = { - "first_topic": "topic 1", - "second_topic": "topic 2", - "questions": [ - "Introductory question about the first topic, starting the topic with 'Let's talk about x' and then the " - "question.", - "Follow up question about the first topic", - "Follow up question about the first topic", - "Question about second topic", - "Follow up question about the second topic", - ] - } - - messages = [ - { - "role": "system", - "content": ( - 'You are a helpful assistant designed to output JSON on this format: ' + str(json_format)) - }, - { - "role": "user", - "content": ( - 'Craft 5 simple and single questions of easy difficulty for IELTS Speaking Part 1 ' - 'that encourages candidates to delve deeply into ' - 'personal experiences, preferences, or insights on the topic ' - 'of "' + first_topic + '" and the topic of "' + second_topic + '". ' - 'Make sure that the generated ' - 'question' - 'does not contain forbidden ' - 'subjects in' - 'muslim countries.') - }, - { - "role": "user", - "content": 'The questions should lead to the usage of 4 verb tenses (present perfect, present, ' - 'past and future).' - }, - { - "role": "user", - "content": 'They must be 1 single question each and not be double-barreled questions.' - - } - ] - token_count = count_total_tokens(messages) - response = make_openai_call(GPT_4_O, messages, token_count, ["first_topic"], - GEN_QUESTION_TEMPERATURE) - response["type"] = 1 - response["difficulty"] = difficulty - return response - - -def gen_speaking_part_2(topic: str, difficulty): - json_format = { - "topic": "topic", - "question": "question", - "prompts": [ - "prompt_1", - "prompt_2", - "prompt_3" - ], - "suffix": "And explain why..." - } - - messages = [ - { - "role": "system", - "content": 'You are a helpful assistant designed to output JSON on this format: ' + str(json_format) - }, - { - "role": "user", - "content": ( - 'Create a question of medium difficulty for IELTS Speaking Part 2 ' - 'that encourages candidates to narrate a ' - 'personal experience or story related to the topic ' - 'of "' + topic + '". Include 3 prompts that ' - 'guide the candidate to describe ' - 'specific aspects of the experience, ' - 'such as details about the situation, ' - 'their actions, and the reasons it left a ' - 'lasting impression. Make sure that the ' - 'generated question does not contain ' - 'forbidden subjects in muslim countries.') - }, - { - "role": "user", - "content": 'The prompts must not be questions. Also include a suffix like the ones in the IELTS exams ' - 'that start with "And explain why".' - } - ] - token_count = count_total_tokens(messages) - response = make_openai_call(GPT_4_O, messages, token_count, GEN_FIELDS, GEN_QUESTION_TEMPERATURE) - response["type"] = 2 - response["difficulty"] = difficulty - response["topic"] = topic - return response - - -def gen_speaking_part_3(topic: str, difficulty): - json_format = { - "topic": "topic", - "questions": [ - "Introductory question about the topic.", - "Follow up question about the topic", - "Follow up question about the topic", - "Follow up question about the topic", - "Follow up question about the topic" - ] - } - - messages = [ - { - "role": "system", - "content": ( - 'You are a helpful assistant designed to output JSON on this format: ' + str(json_format)) - }, - { - "role": "user", - "content": ( - 'Formulate a set of 5 single questions of hard difficulty for IELTS Speaking Part 3 that encourage candidates to engage in a ' - 'meaningful discussion on the topic of "' + topic + '". Provide inquiries, ensuring ' - 'they explore various aspects, perspectives, and implications related to the topic.' - 'Make sure that the generated question does not contain forbidden subjects in muslim countries.') - - }, - { - "role": "user", - "content": 'They must be 1 single question each and not be double-barreled questions.' - - } - ] - token_count = count_total_tokens(messages) - response = make_openai_call(GPT_4_O, messages, token_count, GEN_FIELDS, GEN_QUESTION_TEMPERATURE) - # Remove the numbers from the questions only if the string starts with a number - response["questions"] = [re.sub(r"^\d+\.\s*", "", question) if re.match(r"^\d+\.", question) else question for - question in response["questions"]] - response["type"] = 3 - response["difficulty"] = difficulty - response["topic"] = topic - return response - - -def gen_listening_section_1(topic, difficulty, req_exercises, number_of_exercises_q=queue.Queue(), start_id=1): - if (len(req_exercises) == 0): - req_exercises = random.sample(LISTENING_1_EXERCISE_TYPES, 1) - - if (number_of_exercises_q.empty()): - number_of_exercises_q = divide_number_into_parts(TOTAL_LISTENING_SECTION_1_EXERCISES, len(req_exercises)) - - processed_conversation = generate_listening_1_conversation(topic) - - exercises = generate_listening_conversation_exercises(parse_conversation(processed_conversation), - req_exercises, - number_of_exercises_q, - start_id, difficulty) - return { - "exercises": exercises, - "text": processed_conversation, - "difficulty": difficulty - } - - -def gen_listening_section_2(topic, difficulty, req_exercises, number_of_exercises_q=queue.Queue(), start_id=11): - if (len(req_exercises) == 0): - req_exercises = random.sample(LISTENING_2_EXERCISE_TYPES, 2) - - if (number_of_exercises_q.empty()): - number_of_exercises_q = divide_number_into_parts(TOTAL_LISTENING_SECTION_2_EXERCISES, len(req_exercises)) - - monologue = generate_listening_2_monologue(topic) - - exercises = generate_listening_monologue_exercises(str(monologue), req_exercises, number_of_exercises_q, - start_id, difficulty) - return { - "exercises": exercises, - "text": monologue, - "difficulty": difficulty - } - - -def gen_listening_section_3(topic, difficulty, req_exercises, number_of_exercises_q=queue.Queue(), start_id=21): - if (len(req_exercises) == 0): - req_exercises = random.sample(LISTENING_3_EXERCISE_TYPES, 1) - - if (number_of_exercises_q.empty()): - number_of_exercises_q = divide_number_into_parts(TOTAL_LISTENING_SECTION_3_EXERCISES, len(req_exercises)) - - processed_conversation = generate_listening_3_conversation(topic) - - exercises = generate_listening_conversation_exercises(parse_conversation(processed_conversation), req_exercises, - number_of_exercises_q, - start_id, difficulty) - return { - "exercises": exercises, - "text": processed_conversation, - "difficulty": difficulty - } - - -def gen_listening_section_4(topic, difficulty, req_exercises, number_of_exercises_q=queue.Queue(), start_id=31): - if (len(req_exercises) == 0): - req_exercises = random.sample(LISTENING_EXERCISE_TYPES, 2) - - if (number_of_exercises_q.empty()): - number_of_exercises_q = divide_number_into_parts(TOTAL_LISTENING_SECTION_4_EXERCISES, len(req_exercises)) - - monologue = generate_listening_4_monologue(topic) - - exercises = generate_listening_monologue_exercises(str(monologue), req_exercises, number_of_exercises_q, - start_id, difficulty) - return { - "exercises": exercises, - "text": monologue, - "difficulty": difficulty - } diff --git a/helper/file_helper.py b/helper/file_helper.py deleted file mode 100644 index 5a87b91..0000000 --- a/helper/file_helper.py +++ /dev/null @@ -1,17 +0,0 @@ -import datetime -import os -from pathlib import Path - - -def delete_files_older_than_one_day(directory): - current_time = datetime.datetime.now() - - for entry in os.scandir(directory): - if entry.is_file(): - file_path = Path(entry) - file_name = file_path.name - file_modified_time = datetime.datetime.fromtimestamp(file_path.stat().st_mtime) - time_difference = current_time - file_modified_time - if time_difference.days > 1 and "placeholder" not in file_name: - file_path.unlink() - print(f"Deleted file: {file_path}") diff --git a/helper/firebase_helper.py b/helper/firebase_helper.py deleted file mode 100644 index 2b7773b..0000000 --- a/helper/firebase_helper.py +++ /dev/null @@ -1,65 +0,0 @@ -import logging - -from google.cloud import storage -from pymongo.database import Database - - -def download_firebase_file(bucket_name, source_blob_name, destination_file_name): - # Downloads a file from Firebase Storage. - storage_client = storage.Client() - bucket = storage_client.bucket(bucket_name) - blob = bucket.blob(source_blob_name) - blob.download_to_filename(destination_file_name) - logging.info(f"File downloaded to {destination_file_name}") - return destination_file_name - - -def upload_file_firebase(bucket_name, destination_blob_name, source_file_name): - # Uploads a file to Firebase Storage. - storage_client = storage.Client() - bucket = storage_client.bucket(bucket_name) - try: - blob = bucket.blob(destination_blob_name) - blob.upload_from_filename(source_file_name) - logging.info(f"File uploaded to {destination_blob_name}") - return True - except Exception as e: - import app - app.app.logger.error("Error uploading file to Google Cloud Storage: " + str(e)) - return False - - -def upload_file_firebase_get_url(bucket_name, destination_blob_name, source_file_name): - # Uploads a file to Firebase Storage. - storage_client = storage.Client() - bucket = storage_client.bucket(bucket_name) - try: - blob = bucket.blob(destination_blob_name) - blob.upload_from_filename(source_file_name) - logging.info(f"File uploaded to {destination_blob_name}") - - # Make the file public - blob.make_public() - - # Get the public URL - url = blob.public_url - return url - except Exception as e: - import app - app.app.logger.error("Error uploading file to Google Cloud Storage: " + str(e)) - return None - - -def save_to_db_with_id(mongo_db: Database, collection: str, item, id: str): - collection_ref = mongo_db[collection] - - document_ref = collection_ref.insert_one({"id": id, **item}) - if document_ref: - logging.info(f"Document added with ID: {document_ref.inserted_id}") - return (True, document_ref.inserted_id) - else: - return (False, None) - - -def get_all(mongo_db: Database, collection: str): - return list(mongo_db[collection].find()) diff --git a/helper/generate_jwt.py b/helper/generate_jwt.py deleted file mode 100644 index 4826136..0000000 --- a/helper/generate_jwt.py +++ /dev/null @@ -1,17 +0,0 @@ -import os - -import jwt -from dotenv import load_dotenv - -load_dotenv() - -# Define the payload (data to be included in the token) -payload = {'sub': 'test'} - -# Define the secret key -secret_key = os.getenv("JWT_SECRET_KEY") - -# Generate the JWT -jwt_token = jwt.encode(payload, secret_key, algorithm='HS256') - -print(jwt_token) diff --git a/helper/generate_jwt_secret.py b/helper/generate_jwt_secret.py deleted file mode 100644 index 8e39f44..0000000 --- a/helper/generate_jwt_secret.py +++ /dev/null @@ -1,5 +0,0 @@ -import secrets - -jwt_secret_key = secrets.token_hex(32) - -print(jwt_secret_key) diff --git a/helper/heygen_api.py b/helper/heygen_api.py deleted file mode 100644 index 864794b..0000000 --- a/helper/heygen_api.py +++ /dev/null @@ -1,179 +0,0 @@ -import os -import random -import time -from logging import getLogger - -import requests -from dotenv import load_dotenv - -from helper.constants import * -from helper.firebase_helper import upload_file_firebase_get_url, save_to_db_with_id -from heygen.AvatarEnum import AvatarEnum - -load_dotenv() - -logger = getLogger(__name__) - -# Get HeyGen token -TOKEN = os.getenv("HEY_GEN_TOKEN") -FIREBASE_BUCKET = os.getenv('FIREBASE_BUCKET') - -# POST TO CREATE VIDEO -CREATE_VIDEO_URL = 'https://api.heygen.com/v1/template.generate' -GET_VIDEO_URL = 'https://api.heygen.com/v1/video_status.get' -POST_HEADER = { - 'X-Api-Key': TOKEN, - 'Content-Type': 'application/json' -} -GET_HEADER = { - 'X-Api-Key': TOKEN -} - - -def create_videos_and_save_to_db(exercises, template, id): - avatar = random.choice(list(AvatarEnum)) - # Speaking 1 - # Using list comprehension to find the element with the desired value in the 'type' field - found_exercises_1 = [element for element in exercises if element.get('type') == 1] - # Check if any elements were found - if found_exercises_1: - exercise_1 = found_exercises_1[0] - sp1_questions = [] - logger.info('Creating video for speaking part 1') - for question in exercise_1["questions"]: - sp1_result = create_video(question, avatar) - if sp1_result is not None: - sound_file_path = VIDEO_FILES_PATH + sp1_result - firebase_file_path = FIREBASE_SPEAKING_VIDEO_FILES_PATH + sp1_result - url = upload_file_firebase_get_url(FIREBASE_BUCKET, firebase_file_path, sound_file_path) - video = { - "text": question, - "video_path": firebase_file_path, - "video_url": url - } - sp1_questions.append(video) - else: - logger.error("Failed to create video for part 1 question: " + exercise_1["question"]) - template["exercises"][0]["prompts"] = sp1_questions - template["exercises"][0]["first_title"] = exercise_1["first_topic"] - template["exercises"][0]["second_title"] = exercise_1["second_topic"] - - # Speaking 2 - # Using list comprehension to find the element with the desired value in the 'type' field - found_exercises_2 = [element for element in exercises if element.get('type') == 2] - # Check if any elements were found - if found_exercises_2: - exercise_2 = found_exercises_2[0] - logger.info('Creating video for speaking part 2') - sp2_result = create_video(exercise_2["question"], avatar) - if sp2_result is not None: - sound_file_path = VIDEO_FILES_PATH + sp2_result - firebase_file_path = FIREBASE_SPEAKING_VIDEO_FILES_PATH + sp2_result - url = upload_file_firebase_get_url(FIREBASE_BUCKET, firebase_file_path, sound_file_path) - sp2_video_path = firebase_file_path - sp2_video_url = url - template["exercises"][1]["prompts"] = exercise_2["prompts"] - template["exercises"][1]["text"] = exercise_2["question"] - template["exercises"][1]["title"] = exercise_2["topic"] - template["exercises"][1]["video_url"] = sp2_video_url - template["exercises"][1]["video_path"] = sp2_video_path - else: - logger.error("Failed to create video for part 2 question: " + exercise_2["question"]) - - # Speaking 3 - # Using list comprehension to find the element with the desired value in the 'type' field - found_exercises_3 = [element for element in exercises if element.get('type') == 3] - # Check if any elements were found - if found_exercises_3: - exercise_3 = found_exercises_3[0] - sp3_questions = [] - logger.info('Creating videos for speaking part 3') - for question in exercise_3["questions"]: - result = create_video(question, avatar) - if result is not None: - sound_file_path = VIDEO_FILES_PATH + result - firebase_file_path = FIREBASE_SPEAKING_VIDEO_FILES_PATH + result - url = upload_file_firebase_get_url(FIREBASE_BUCKET, firebase_file_path, sound_file_path) - video = { - "text": question, - "video_path": firebase_file_path, - "video_url": url - } - sp3_questions.append(video) - else: - logger.error("Failed to create video for part 3 question: " + question) - template["exercises"][2]["prompts"] = sp3_questions - template["exercises"][2]["title"] = exercise_3["topic"] - - if not found_exercises_3: - template["exercises"].pop(2) - if not found_exercises_2: - template["exercises"].pop(1) - if not found_exercises_1: - template["exercises"].pop(0) - - save_to_db_with_id("speaking", template, id) - logger.info('Saved speaking to DB with id ' + id + " : " + str(template)) - - -def create_video(text, avatar): - # POST TO CREATE VIDEO - create_video_url = 'https://api.heygen.com/v2/template/' + avatar + '/generate' - data = { - "test": False, - "caption": False, - "title": "video_title", - "variables": { - "script_here": { - "name": "script_here", - "type": "text", - "properties": { - "content": text - } - } - } - } - response = requests.post(create_video_url, headers=POST_HEADER, json=data) - logger.info(response.status_code) - logger.info(response.json()) - - # GET TO CHECK STATUS AND GET VIDEO WHEN READY - video_id = response.json()["data"]["video_id"] - params = { - 'video_id': response.json()["data"]["video_id"] - } - response = {} - status = "processing" - error = None - - while status != "completed" and error is None: - response = requests.get(GET_VIDEO_URL, headers=GET_HEADER, params=params) - response_data = response.json() - - status = response_data["data"]["status"] - error = response_data["data"]["error"] - - if status != "completed" and error is None: - logger.info(f"Status: {status}") - time.sleep(10) # Wait for 10 second before the next request - - logger.info(response.status_code) - logger.info(response.json()) - - # DOWNLOAD VIDEO - download_url = response.json()['data']['video_url'] - output_directory = 'download-video/' - output_filename = video_id + '.mp4' - - response = requests.get(download_url) - - if response.status_code == 200: - os.makedirs(output_directory, exist_ok=True) # Create the directory if it doesn't exist - output_path = os.path.join(output_directory, output_filename) - with open(output_path, 'wb') as f: - f.write(response.content) - logger.info(f"File '{output_filename}' downloaded successfully.") - return output_filename - else: - logger.error(f"Failed to download file. Status code: {response.status_code}") - return None diff --git a/helper/openai_interface.py b/helper/openai_interface.py deleted file mode 100644 index 2d50a64..0000000 --- a/helper/openai_interface.py +++ /dev/null @@ -1,250 +0,0 @@ -import json -import os -import re - -from dotenv import load_dotenv -from openai import OpenAI - -from helper.constants import BLACKLISTED_WORDS, GPT_3_5_TURBO -from helper.token_counter import count_tokens - -load_dotenv() -client = OpenAI(api_key=os.getenv('OPENAI_API_KEY')) - -MAX_TOKENS = 4097 -TOP_P = 0.9 -FREQUENCY_PENALTY = 0.5 - -TRY_LIMIT = 2 -try_count = 0 - -# GRADING SUMMARY -chat_config = {'max_tokens': 1000, 'temperature': 0.2} -section_keys = ['reading', 'listening', 'writing', 'speaking', 'level'] -grade_top_limit = 9 - -tools = [{ - "type": "function", - "function": { - "name": "save_evaluation_and_suggestions", - "description": "Saves the evaluation and suggestions requested by input.", - "parameters": { - "type": "object", - "properties": { - "evaluation": { - "type": "string", - "description": "A comment on the IELTS section grade obtained in the specific section and what it could mean without suggestions.", - }, - "suggestions": { - "type": "string", - "description": "A small paragraph text with suggestions on how to possibly get a better grade than the one obtained.", - }, - "bullet_points": { - "type": "string", - "description": "Text with four bullet points to improve the english speaking ability. Only include text for the bullet points separated by a paragraph. ", - }, - }, - "required": ["evaluation", "suggestions"], - }, - } -}] - - -def check_fields(obj, fields): - return all(field in obj for field in fields) - - -def make_openai_call(model, messages, token_count, fields_to_check, temperature, check_blacklisted=True): - global try_count - result = client.chat.completions.create( - model=model, - max_tokens=int(MAX_TOKENS - token_count - 300), - temperature=float(temperature), - messages=messages, - response_format={"type": "json_object"} - ) - result = result.choices[0].message.content - - if check_blacklisted: - found_blacklisted_word = get_found_blacklisted_words(result) - - if found_blacklisted_word is not None and try_count < TRY_LIMIT: - from app import app - app.logger.warning("Result contains blacklisted words: " + str(found_blacklisted_word)) - try_count = try_count + 1 - return make_openai_call(model, messages, token_count, fields_to_check, temperature) - elif found_blacklisted_word is not None and try_count >= TRY_LIMIT: - return "" - - if fields_to_check is None: - return json.loads(result) - - if check_fields(result, fields_to_check) is False and try_count < TRY_LIMIT: - try_count = try_count + 1 - return make_openai_call(model, messages, token_count, fields_to_check, temperature) - elif try_count >= TRY_LIMIT: - try_count = 0 - return json.loads(result) - else: - try_count = 0 - return json.loads(result) - - -# GRADING SUMMARY -def calculate_grading_summary(body): - extracted_sections = extract_existing_sections_from_body(body, section_keys) - - ret = [] - - for section in extracted_sections: - openai_response_dict = calculate_section_grade_summary(section) - - ret = ret + [{'code': section['code'], 'name': section['name'], 'grade': section['grade'], - 'evaluation': openai_response_dict['evaluation'], - 'suggestions': openai_response_dict['suggestions'], - 'bullet_points': parse_bullet_points(openai_response_dict['bullet_points'], section['grade'])}] - - return {'sections': ret} - - -def calculate_section_grade_summary(section): - messages = [ - { - "role": "user", - "content": "You are a IELTS test section grade evaluator. You will receive a IELTS test section name and the grade obtained in the section. You should offer a evaluation comment on this grade and separately suggestions on how to possibly get a better grade.", - }, - { - "role": "user", - "content": "Section: " + str(section['name']) + " Grade: " + str(section['grade']), - }, - {"role": "user", "content": "Speak in third person."}, - {"role": "user", - "content": "Don't offer suggestions in the evaluation comment. Only in the suggestions section."}, - {"role": "user", - "content": "Your evaluation comment on the grade should enunciate the grade, be insightful, be speculative, be one paragraph long. "}, - {"role": "user", "content": "Please save the evaluation comment and suggestions generated."}, - {"role": "user", "content": f"Offer bullet points to improve the english {str(section['name'])} ability."}, - ] - - if section['code'] == "level": - messages[2:2] = [{ - "role": "user", - "content": "This section is comprised of multiple choice questions that measure the user's overall english level. These multiple choice questions are about knowledge on vocabulary, syntax, grammar rules, and contextual usage. The grade obtained measures the ability in these areas and english language overall." - }] - elif section['code'] == "speaking": - messages[2:2] = [{"role": "user", - "content": "This section is s designed to assess the English language proficiency of individuals who want to study or work in English-speaking countries. The speaking section evaluates a candidate's ability to communicate effectively in spoken English."}] - - res = client.chat.completions.create( - model="gpt-3.5-turbo", - max_tokens=chat_config['max_tokens'], - temperature=chat_config['temperature'], - tools=tools, - messages=messages) - - return parse_openai_response(res) - - -def parse_openai_response(response): - if 'choices' in response and len(response['choices']) > 0 and 'message' in response['choices'][ - 0] and 'tool_calls' in response['choices'][0]['message'] and isinstance( - response['choices'][0]['message']['tool_calls'], list) and len( - response['choices'][0]['message']['tool_calls']) > 0 and \ - response['choices'][0]['message']['tool_calls'][0]['function']['arguments']: - return json.loads(response['choices'][0]['message']['tool_calls'][0]['function']['arguments']) - else: - return {'evaluation': "", 'suggestions': "", 'bullet_points': []} - - -def extract_existing_sections_from_body(my_dict, keys_to_extract): - if 'sections' in my_dict and isinstance(my_dict['sections'], list) and len(my_dict['sections']) > 0: - return list(filter( - lambda item: 'code' in item and item['code'] in keys_to_extract and 'grade' in item and 'name' in item, - my_dict['sections'])) - - -def parse_bullet_points(bullet_points_str, grade): - max_grade_for_suggestions = 9 - if isinstance(bullet_points_str, str) and grade < max_grade_for_suggestions: - # Split the string by '\n' - lines = bullet_points_str.split('\n') - - # Remove '-' and trim whitespace from each line - cleaned_lines = [line.replace('-', '').strip() for line in lines] - - # Add '.' to lines that don't end with it - return [line + '.' if line and not line.endswith('.') else line for line in cleaned_lines] - else: - return [] - - -def get_fixed_text(text): - messages = [ - {"role": "system", "content": ('You are a helpful assistant designed to output JSON on this format: ' - '{"fixed_text": "fixed test with no misspelling errors"}') - }, - {"role": "user", "content": ( - 'Fix the errors in the given text and put it in a JSON. Do not complete the answer, only replace what ' - 'is wrong. \n The text: "' + text + '"') - } - ] - token_count = count_total_tokens(messages) - response = make_openai_call(GPT_3_5_TURBO, messages, token_count, ["fixed_text"], 0.2, False) - return response["fixed_text"] - - -def get_speaking_corrections(text): - messages = [ - {"role": "system", "content": ('You are a helpful assistant designed to output JSON on this format: ' - '{"fixed_text": "fixed transcription with no misspelling errors"}') - }, - {"role": "user", "content": ( - 'Fix the errors in the provided transcription and put it in a JSON. Do not complete the answer, only ' - 'replace what is wrong. \n The text: "' + text + '"') - } - ] - token_count = count_total_tokens(messages) - response = make_openai_call(GPT_3_5_TURBO, messages, token_count, ["fixed_text"], 0.2, False) - return response["fixed_text"] - - -def has_blacklisted_words(text: str): - text_lower = text.lower() - return any(word in text_lower for word in BLACKLISTED_WORDS) - - -def get_found_blacklisted_words(text: str): - text_lower = text.lower() - for word in BLACKLISTED_WORDS: - if re.search(r'\b' + re.escape(word) + r'\b', text_lower): - return word - return None - - -def remove_special_characters_from_beginning(string): - cleaned_string = string.lstrip('\n') - if string.startswith("'") or string.startswith('"'): - cleaned_string = string[1:] - if cleaned_string.endswith('"'): - return cleaned_string[:-1] - else: - return cleaned_string - - -def replace_expression_in_object(obj, expression, replacement): - if isinstance(obj, dict): - for key in obj: - if isinstance(obj[key], str): - obj[key] = obj[key].replace(expression, replacement) - elif isinstance(obj[key], list): - obj[key] = [replace_expression_in_object(item, expression, replacement) for item in obj[key]] - elif isinstance(obj[key], dict): - obj[key] = replace_expression_in_object(obj[key], expression, replacement) - return obj - - -def count_total_tokens(messages): - total_tokens = 0 - for message in messages: - total_tokens += count_tokens(message["content"])["n_tokens"] - return total_tokens diff --git a/helper/speech_to_text_helper.py b/helper/speech_to_text_helper.py deleted file mode 100644 index 001bd11..0000000 --- a/helper/speech_to_text_helper.py +++ /dev/null @@ -1,138 +0,0 @@ -import os -import random - -import boto3 -import nltk -import whisper - -nltk.download('words') -from nltk.corpus import words -from helper.constants import * - - -def speech_to_text(file_path): - if os.path.exists(file_path): - model = whisper.load_model("base") - result = model.transcribe(file_path, fp16=False, language='English', verbose=False) - return result["text"] - else: - print("File not found:", file_path) - raise Exception("File " + file_path + " not found.") - - -def text_to_speech(text: str, file_name: str): - # Initialize the Amazon Polly client - client = boto3.client( - 'polly', - region_name='eu-west-1', - aws_access_key_id=os.getenv("AWS_ACCESS_KEY_ID"), - aws_secret_access_key=os.getenv("AWS_SECRET_ACCESS_KEY") - ) - voice = random.choice(ALL_NEURAL_VOICES)['Id'] - # Initialize an empty list to store audio segments - audio_segments = [] - for part in divide_text(text): - tts_response = client.synthesize_speech( - Engine="neural", - Text=part, - OutputFormat="mp3", - VoiceId=voice - ) - audio_segments.append(tts_response['AudioStream'].read()) - - # Add finish message - audio_segments.append(client.synthesize_speech( - Engine="neural", - Text="This audio recording, for the listening exercise, has finished.", - OutputFormat="mp3", - VoiceId="Stephen" - )['AudioStream'].read()) - - # Combine the audio segments into a single audio file - combined_audio = b"".join(audio_segments) - # Save the combined audio to a single file - with open(file_name, "wb") as f: - f.write(combined_audio) - - print("Speech segments saved to " + file_name) - - -def conversation_text_to_speech(conversation: list, file_name: str): - # Initialize the Amazon Polly client - client = boto3.client( - 'polly', - region_name='eu-west-1', - aws_access_key_id=os.getenv("AWS_ACCESS_KEY_ID"), - aws_secret_access_key=os.getenv("AWS_SECRET_ACCESS_KEY") - ) - # Initialize an empty list to store audio segments - audio_segments = [] - # Iterate through the text segments, convert to audio segments, and store them - for segment in conversation: - response = client.synthesize_speech( - Engine="neural", - Text=segment["text"], - OutputFormat="mp3", - VoiceId=segment["voice"] - ) - audio_segments.append(response['AudioStream'].read()) - - # Add finish message - audio_segments.append(client.synthesize_speech( - Engine="neural", - Text="This audio recording, for the listening exercise, has finished.", - OutputFormat="mp3", - VoiceId="Stephen" - )['AudioStream'].read()) - - # Combine the audio segments into a single audio file - combined_audio = b"".join(audio_segments) - # Save the combined audio to a single file - with open(file_name, "wb") as f: - f.write(combined_audio) - - print("Speech segments saved to " + file_name) - - -def has_words(text: str): - if not has_common_words(text): - return False - english_words = set(words.words()) - words_in_input = text.split() - return any(word.lower() in english_words for word in words_in_input) - - -def has_x_words(text: str, quantity): - if not has_common_words(text): - return False - english_words = set(words.words()) - words_in_input = text.split() - english_word_count = sum(1 for word in words_in_input if word.lower() in english_words) - return english_word_count >= quantity - -def has_common_words(text: str): - english_words = {"the", "be", "to", "of", "and", "a", "in", "that", "have", "i"} - words_in_input = text.split() - english_word_count = sum(1 for word in words_in_input if word.lower() in english_words) - return english_word_count >= 10 - -def divide_text(text, max_length=3000): - if len(text) <= max_length: - return [text] - - divisions = [] - current_position = 0 - - while current_position < len(text): - next_position = min(current_position + max_length, len(text)) - next_period_position = text.rfind('.', current_position, next_position) - - if next_period_position != -1 and next_period_position > current_position: - divisions.append(text[current_position:next_period_position + 1]) - current_position = next_period_position + 1 - else: - # If no '.' found in the next chunk, split at max_length - divisions.append(text[current_position:next_position]) - current_position = next_position - - return divisions diff --git a/heygen/AvatarEnum.py b/heygen/AvatarEnum.py deleted file mode 100644 index 8850ae2..0000000 --- a/heygen/AvatarEnum.py +++ /dev/null @@ -1,11 +0,0 @@ -from enum import Enum - - -class AvatarEnum(Enum): - MATTHEW_NOAH = "5912afa7c77c47d3883af3d874047aaf" - VERA_CERISE = "9e58d96a383e4568a7f1e49df549e0e4" - EDWARD_TONY = "d2cdd9c0379a4d06ae2afb6e5039bd0c" - TANYA_MOLLY = "045cb5dcd00042b3a1e4f3bc1c12176b" - KAYLA_ABBI = "1ae1e5396cc444bfad332155fdb7a934" - JEROME_RYAN = "0ee6aa7cc1084063a630ae514fccaa31" - TYLER_CHRISTOPHER = "5772cff935844516ad7eeff21f839e43" diff --git a/heygen/avatars.json b/heygen/avatars.json deleted file mode 100644 index 08e09f0..0000000 --- a/heygen/avatars.json +++ /dev/null @@ -1,8572 +0,0 @@ -{ - "code": 100, - "data": { - "avatars": [ - { - "avatar_id": 1686756027, - "avatar_states": [ - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "Andrew", - "avatar_race": "", - "avatar_style": "", - "circle_box": [ - 0.21157407760620117, - 0.025462962687015533, - 0.8060185313224792, - 0.6199073791503906 - ], - "close_up_box": [ - 0.017592592164874077, - 0.025462962687015533, - 1, - 0.6199073791503906 - ], - "close_up_view_crop_x": 0.2022603452205658, - "created_at": 1686756027, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1.100000023841858, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/1ea493e901024034900422df18dbee1a.wav", - "tts_duration": 6.466, - "voice_gender": "male", - "voice_id": "ec4aa6ac882147ffb679176d49f3e41f", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/2143307c9bf840ad9408ed94116d4eaa.wav", - "tts_duration": 5.042, - "voice_gender": "male", - "voice_id": "b3150d405d374dd99e569282ee68fa21", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "male", - "id": "Andrew_public_pro1_20230614", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": true, - "name": "Alex", - "normal_preview": "https://files.movio.la/avatar/v3/ed0577c3046545018aade5e35fc6e491_2750/preview_target.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/ed0577c3046545018aade5e35fc6e491_2750/preview_target_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/ed0577c3046545018aade5e35fc6e491_2750/preview_target_small.webp", - "normal_view_crop_x": 0.17499999701976776, - "pose_name": "Alex in Black Suit", - "sort_index": 126, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/ed0577c3046545018aade5e35fc6e491_2750/preview_video_target.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "Andrew", - "avatar_race": "", - "avatar_style": "", - "circle_box": [ - 0.21157407760620117, - 0.01805555634200573, - 0.8125, - 0.6194444298744202 - ], - "close_up_box": [ - 0.024074073880910873, - 0.01805555634200573, - 1, - 0.6194444298744202 - ], - "close_up_view_crop_x": 0.19384829699993134, - "created_at": 1686756064, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1.100000023841858, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/1ea493e901024034900422df18dbee1a.wav", - "tts_duration": 6.466, - "voice_gender": "male", - "voice_id": "ec4aa6ac882147ffb679176d49f3e41f", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/2143307c9bf840ad9408ed94116d4eaa.wav", - "tts_duration": 5.042, - "voice_gender": "male", - "voice_id": "b3150d405d374dd99e569282ee68fa21", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "male", - "id": "Andrew_public_pro3_20230614", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": true, - "name": "Alex", - "normal_preview": "https://files.movio.la/avatar/v3/ed0577c3046545018aade5e35fc6e491_2750/preview_talk_2.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/ed0577c3046545018aade5e35fc6e491_2750/preview_talk_2_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/ed0577c3046545018aade5e35fc6e491_2750/preview_talk_2_small.webp", - "normal_view_crop_x": 0.15694443881511688, - "pose_name": "Alex in Jacket", - "sort_index": 124, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/ed0577c3046545018aade5e35fc6e491_2750/preview_video_talk_2.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "Andrew", - "avatar_race": "", - "avatar_style": "", - "circle_box": [ - 0.19722221791744232, - 0, - 0.8074073791503906, - 0.6106481552124023 - ], - "close_up_box": [ - 0.004629629664123058, - 0, - 1, - 0.6106481552124023 - ], - "close_up_view_crop_x": 0.1704169064760208, - "created_at": 1686756112, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1.100000023841858, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/1ea493e901024034900422df18dbee1a.wav", - "tts_duration": 6.466, - "voice_gender": "male", - "voice_id": "ec4aa6ac882147ffb679176d49f3e41f", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/2143307c9bf840ad9408ed94116d4eaa.wav", - "tts_duration": 5.042, - "voice_gender": "male", - "voice_id": "b3150d405d374dd99e569282ee68fa21", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "male", - "id": "Andrew_public_pro2_20230614", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": true, - "name": "Alex", - "normal_preview": "https://files.movio.la/avatar/v3/f5f78b56b91d4117b3902fe168257530_2724/preview_target.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/f5f78b56b91d4117b3902fe168257530_2724/preview_target_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/f5f78b56b91d4117b3902fe168257530_2724/preview_target_small.webp", - "normal_view_crop_x": 0.14027777314186096, - "pose_name": "Alex in White Coat", - "sort_index": 125, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/f5f78b56b91d4117b3902fe168257530_2724/preview_video_target.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "Andrew", - "avatar_race": "", - "avatar_style": "", - "circle_box": [ - 0.20509259402751923, - 0.021759258583188057, - 0.793055534362793, - 0.6101852059364319 - ], - "close_up_box": [ - 0, - 0.021759258583188057, - 0.9981481432914734, - 0.6101852059364319 - ], - "close_up_view_crop_x": 0.17984651029109955, - "created_at": 1686756148, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1.100000023841858, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/1ea493e901024034900422df18dbee1a.wav", - "tts_duration": 6.466, - "voice_gender": "male", - "voice_id": "ec4aa6ac882147ffb679176d49f3e41f", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/2143307c9bf840ad9408ed94116d4eaa.wav", - "tts_duration": 5.042, - "voice_gender": "male", - "voice_id": "b3150d405d374dd99e569282ee68fa21", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "male", - "id": "Andrew_public_pro4_20230614", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": true, - "name": "Alex", - "normal_preview": "https://files.movio.la/avatar/v3/7cd8a8ebd400418a97274f159f27b531_2745/preview_talk_1.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/7cd8a8ebd400418a97274f159f27b531_2745/preview_talk_1_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/7cd8a8ebd400418a97274f159f27b531_2745/preview_talk_1_small.webp", - "normal_view_crop_x": 0.16249999403953552, - "pose_name": "Alex in Yellow Sweater", - "sort_index": 123, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/7cd8a8ebd400418a97274f159f27b531_2745/preview_video_talk_1.mp4" - } - } - ], - "created_at": 1686756027, - "gender": "male", - "name": "Alex" - }, - { - "avatar_id": 1685681199, - "avatar_states": [ - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "Brian", - "avatar_race": "", - "avatar_style": "", - "circle_box": [ - 0.009259259328246117, - 0.14427083730697632, - 0.9037036895751953, - 0.6473958492279053 - ], - "close_up_box": [ - 0, - 0.14427083730697632, - 0.9129629731178284, - 0.6473958492279053 - ], - "close_up_view_crop_x": 0, - "created_at": 1685681199, - "custom_avatar_type": "lite", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/da4e501e123e40838ba09046e32603d0.wav", - "tts_duration": 6.551, - "voice_gender": "male", - "voice_id": "1ae3be1e24894ccabdb4d8139399f721", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/d414cbc712b54fc2bc5e4d6d01e915bb.wav", - "tts_duration": 5.146, - "voice_gender": "male", - "voice_id": "cac876fea7c541e7a634a9b386ee3b53", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "male", - "id": "Brian_public_lite1_20230601", - "is_customer": true, - "is_demo": false, - "is_favorite": false, - "is_finetune": true, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": true, - "name": "Blake", - "normal_preview": "https://files.movio.la/avatar/v3/8cf8ec8d3ca84bd489150779b16a6861_2624/preview_target.webp", - "normal_preview_height": 720, - "normal_preview_width": 405, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/8cf8ec8d3ca84bd489150779b16a6861_2624/preview_target_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/8cf8ec8d3ca84bd489150779b16a6861_2624/preview_target_small.webp", - "normal_view_crop_x": 0, - "pose_name": "Blake", - "sort_index": 11, - "start_speech_offset": 0.5, - "support_4k": false, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/8cf8ec8d3ca84bd489150779b16a6861_2624/preview_video_target.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "Brian", - "avatar_race": "", - "avatar_style": "", - "circle_box": [ - 0.10989583283662796, - 0, - 0.551562488079071, - 0.7851851582527161 - ], - "close_up_box": [ - 0, - 0, - 0.6614583134651184, - 0.7851851582527161 - ], - "close_up_view_crop_x": 0, - "created_at": 1685681235, - "custom_avatar_type": "lite", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/da4e501e123e40838ba09046e32603d0.wav", - "tts_duration": 6.551, - "voice_gender": "male", - "voice_id": "1ae3be1e24894ccabdb4d8139399f721", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/d414cbc712b54fc2bc5e4d6d01e915bb.wav", - "tts_duration": 5.146, - "voice_gender": "male", - "voice_id": "cac876fea7c541e7a634a9b386ee3b53", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "male", - "id": "Brian_public_lite2_20230601", - "is_customer": true, - "is_demo": false, - "is_favorite": false, - "is_finetune": true, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": true, - "name": "Blake", - "normal_preview": "https://files.movio.la/avatar/v3/3be86de8adfc430baa5902f77eb9e5b3_2625/preview_target.webp", - "normal_preview_height": 720, - "normal_preview_width": 1280, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/3be86de8adfc430baa5902f77eb9e5b3_2625/preview_target_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/3be86de8adfc430baa5902f77eb9e5b3_2625/preview_target_small.webp", - "normal_view_crop_x": 0, - "pose_name": "Blake", - "sort_index": 12, - "start_speech_offset": 0.5, - "support_4k": false, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/3be86de8adfc430baa5902f77eb9e5b3_2625/preview_video_target.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "Brian", - "avatar_race": "", - "avatar_style": "", - "circle_box": [ - 0.19675925374031067, - 0, - 0.7958333492279053, - 0.5995370149612427 - ], - "close_up_box": [ - 0, - 0, - 0.9925925731658936, - 0.5995370149612427 - ], - "close_up_view_crop_x": 0.20734526216983795, - "created_at": 1686371768, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/da4e501e123e40838ba09046e32603d0.wav", - "tts_duration": 6.551, - "voice_gender": "male", - "voice_id": "1ae3be1e24894ccabdb4d8139399f721", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/d414cbc712b54fc2bc5e4d6d01e915bb.wav", - "tts_duration": 5.146, - "voice_gender": "male", - "voice_id": "cac876fea7c541e7a634a9b386ee3b53", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "male", - "id": "Brain_public_pro1_20230609", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": true, - "name": "Blake", - "normal_preview": "https://files.movio.la/avatar/v3/48f7053c462f4701ad65d69f248bf46d_2660/preview_talk_1.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/48f7053c462f4701ad65d69f248bf46d_2660/preview_talk_1_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/48f7053c462f4701ad65d69f248bf46d_2660/preview_talk_1_small.webp", - "normal_view_crop_x": 0.17638888955116272, - "outfit_circle_box": [ - 0.14907407760620117, - 0, - 0.8509259223937988, - 0.7018518447875977 - ], - "outfit_close_up_box": [ - 0.14444445073604584, - 0, - 0.855555534362793, - 0.7018518447875977 - ], - "pose_name": "Blake in Blue Suit", - "sort_index": 136, - "start_speech_offset": 0.5, - "support_4k": true, - "support_ai_outfit": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/48f7053c462f4701ad65d69f248bf46d_2660/preview_video_talk_1.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "Brian", - "avatar_race": "", - "avatar_style": "", - "circle_box": [ - 0.2143518477678299, - 0, - 0.7902777791023254, - 0.5763888955116272 - ], - "close_up_box": [ - 0.004629629664123058, - 0, - 1, - 0.5763888955116272 - ], - "close_up_view_crop_x": 0.19378891587257385, - "created_at": 1686371795, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/da4e501e123e40838ba09046e32603d0.wav", - "tts_duration": 6.551, - "voice_gender": "male", - "voice_id": "1ae3be1e24894ccabdb4d8139399f721", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/d414cbc712b54fc2bc5e4d6d01e915bb.wav", - "tts_duration": 5.146, - "voice_gender": "male", - "voice_id": "cac876fea7c541e7a634a9b386ee3b53", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "male", - "id": "Brain_public_pro2_20230609", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": true, - "name": "Blake", - "normal_preview": "https://files.movio.la/avatar/v3/48f7053c462f4701ad65d69f248bf46d_2660/preview_talk_4.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/48f7053c462f4701ad65d69f248bf46d_2660/preview_talk_4_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/48f7053c462f4701ad65d69f248bf46d_2660/preview_talk_4_small.webp", - "normal_view_crop_x": 0.1736111044883728, - "pose_name": "Blake in Brown Coat", - "sort_index": 135, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/48f7053c462f4701ad65d69f248bf46d_2660/preview_video_talk_4.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "Brian", - "avatar_race": "", - "avatar_style": "", - "circle_box": [ - 0.2004629671573639, - 0, - 0.792129635810852, - 0.592129647731781 - ], - "close_up_box": [ - 0, - 0, - 0.9925925731658936, - 0.592129647731781 - ], - "close_up_view_crop_x": 0.19983430206775665, - "created_at": 1686371817, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/da4e501e123e40838ba09046e32603d0.wav", - "tts_duration": 6.551, - "voice_gender": "male", - "voice_id": "1ae3be1e24894ccabdb4d8139399f721", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/d414cbc712b54fc2bc5e4d6d01e915bb.wav", - "tts_duration": 5.146, - "voice_gender": "male", - "voice_id": "cac876fea7c541e7a634a9b386ee3b53", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "male", - "id": "Brain_public_pro3_20230609", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": true, - "name": "Blake", - "normal_preview": "https://files.movio.la/avatar/v3/48f7053c462f4701ad65d69f248bf46d_2660/preview_talk_3.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/48f7053c462f4701ad65d69f248bf46d_2660/preview_talk_3_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/48f7053c462f4701ad65d69f248bf46d_2660/preview_talk_3_small.webp", - "normal_view_crop_x": 0.18472221493721008, - "pose_name": "Blake in White T-shirt", - "sort_index": 133, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/48f7053c462f4701ad65d69f248bf46d_2660/preview_video_talk_3.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "Brian", - "avatar_race": "", - "avatar_style": "", - "circle_box": [ - 0.18009258806705475, - 0.011111111380159855, - 0.782870352268219, - 0.6143518686294556 - ], - "close_up_box": [ - 0, - 0.011111111380159855, - 0.9629629850387573, - 0.6143518686294556 - ], - "close_up_view_crop_x": 0.17599844932556152, - "created_at": 1686657698, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/da4e501e123e40838ba09046e32603d0.wav", - "tts_duration": 6.551, - "voice_gender": "male", - "voice_id": "1ae3be1e24894ccabdb4d8139399f721", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/d414cbc712b54fc2bc5e4d6d01e915bb.wav", - "tts_duration": 5.146, - "voice_gender": "male", - "voice_id": "cac876fea7c541e7a634a9b386ee3b53", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "male", - "id": "Brain_public_pro4_20230613", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": true, - "name": "Blake", - "normal_preview": "https://files.movio.la/avatar/v3/a8a8e72d9e1840cd97c9bb9429eb6b80_2688/preview_target.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/a8a8e72d9e1840cd97c9bb9429eb6b80_2688/preview_target_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/a8a8e72d9e1840cd97c9bb9429eb6b80_2688/preview_target_small.webp", - "normal_view_crop_x": 0.1805555522441864, - "pose_name": "Blake in Sweatshirt", - "sort_index": 134, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/a8a8e72d9e1840cd97c9bb9429eb6b80_2688/preview_video_target.mp4" - } - } - ], - "created_at": 1685681199, - "gender": "male", - "name": "Blake" - }, - { - "avatar_id": 1685680932, - "avatar_states": [ - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "Eric", - "avatar_race": "", - "avatar_style": "", - "circle_box": [ - 0.25462964177131653, - 0.010648148134350777, - 0.7620370388031006, - 0.5180555582046509 - ], - "close_up_box": [ - 0.05740740895271301, - 0.010648148134350777, - 0.9592592716217041, - 0.5180555582046509 - ], - "close_up_view_crop_x": 0.19939380884170532, - "created_at": 1685680932, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/636527f370a148348f787b45df35a585.wav", - "tts_duration": 6.526, - "voice_gender": "male", - "voice_id": "f5a3cb4edbfc4d37b5614ce118be7bc8", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/8bc1b057827e47329ef5c93e7e237f67.wav", - "tts_duration": 5.564, - "voice_gender": "male", - "voice_id": "52b62505407d4f369b9924c2afcdfe72", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "male", - "id": "Eric_public_pro1_20230601", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": true, - "name": "Edward", - "normal_preview": "https://files.movio.la/avatar/v3/15e5253e9ae94a08a720b3ba45522eb5_2606/preview_talk_1.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/15e5253e9ae94a08a720b3ba45522eb5_2606/preview_talk_1_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/15e5253e9ae94a08a720b3ba45522eb5_2606/preview_talk_1_small.webp", - "normal_view_crop_x": 0.2222222238779068, - "pose_name": "Edward in Black Suit", - "sort_index": 131, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/15e5253e9ae94a08a720b3ba45522eb5_2606/preview_video_talk_1.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "Eric", - "avatar_race": "", - "avatar_style": "", - "circle_box": [ - 0.3294270932674408, - 0.11574073880910873, - 0.6924479007720947, - 0.7615740895271301 - ], - "close_up_box": [ - 0.18802084028720856, - 0.11574073880910873, - 0.8338541388511658, - 0.7615740895271301 - ], - "close_up_view_crop_x": 0, - "created_at": 1685681149, - "custom_avatar_type": "lite", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/636527f370a148348f787b45df35a585.wav", - "tts_duration": 6.526, - "voice_gender": "male", - "voice_id": "f5a3cb4edbfc4d37b5614ce118be7bc8", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/8bc1b057827e47329ef5c93e7e237f67.wav", - "tts_duration": 5.564, - "voice_gender": "male", - "voice_id": "52b62505407d4f369b9924c2afcdfe72", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "male", - "id": "Eric_public_lite1_20230601", - "is_customer": true, - "is_demo": false, - "is_favorite": false, - "is_finetune": true, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": true, - "name": "Edward", - "normal_preview": "https://files.movio.la/avatar/v3/e259aabd01a24e958299ce130b6f4928_2623/preview_target.webp", - "normal_preview_height": 720, - "normal_preview_width": 1280, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/e259aabd01a24e958299ce130b6f4928_2623/preview_target_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/e259aabd01a24e958299ce130b6f4928_2623/preview_target_small.webp", - "normal_view_crop_x": 0, - "pose_name": "Edward", - "sort_index": 9, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/e259aabd01a24e958299ce130b6f4928_2623/preview_video_target.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "Eric", - "avatar_race": "", - "avatar_style": "", - "circle_box": [ - 0.23379629850387573, - 0.01944444514811039, - 0.782870352268219, - 0.5685185194015503 - ], - "close_up_box": [ - 0.020370369777083397, - 0.01944444514811039, - 0.9962962865829468, - 0.5685185194015503 - ], - "close_up_view_crop_x": 0.19747251272201538, - "created_at": 1686232764, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/636527f370a148348f787b45df35a585.wav", - "tts_duration": 6.526, - "voice_gender": "male", - "voice_id": "f5a3cb4edbfc4d37b5614ce118be7bc8", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/8bc1b057827e47329ef5c93e7e237f67.wav", - "tts_duration": 5.564, - "voice_gender": "male", - "voice_id": "52b62505407d4f369b9924c2afcdfe72", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "male", - "id": "Eric_public_pro2_20230608", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": true, - "name": "Edward", - "normal_preview": "https://files.movio.la/avatar/v3/bab998cb82fb4423b521341a9e962017_2662/preview_target.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/bab998cb82fb4423b521341a9e962017_2662/preview_target_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/bab998cb82fb4423b521341a9e962017_2662/preview_target_small.webp", - "normal_view_crop_x": 0.1805555522441864, - "pose_name": "Edward in Blue Shirt", - "sort_index": 130, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/bab998cb82fb4423b521341a9e962017_2662/preview_video_target.mp4" - } - } - ], - "created_at": 1685680932, - "gender": "male", - "name": "Edward" - }, - { - "avatar_id": 1685681264, - "avatar_states": [ - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "Lily", - "avatar_race": "", - "avatar_style": "", - "circle_box": [ - 0.3072916567325592, - 0.03333333507180214, - 0.6760416626930237, - 0.6888889074325562 - ], - "close_up_box": [ - 0.1640625, - 0.03333333507180214, - 0.8192708492279053, - 0.6888889074325562 - ], - "close_up_view_crop_x": 0, - "created_at": 1685964859, - "custom_avatar_type": "lite", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1.100000023841858, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/c4b35a0a22c14fc5abea338d4e8617d9.wav", - "tts_duration": 6.841, - "voice_gender": "female", - "voice_id": "1bd001e7e50f421d891986aad5158bc8", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/71456a37e30c48e9a83f4b34562a9902.wav", - "tts_duration": 5.146, - "voice_gender": "female", - "voice_id": "232e3bb29f3b45d695f873503af7068c", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "female", - "id": "Lily_public_lite1_20230601", - "is_customer": true, - "is_demo": false, - "is_favorite": false, - "is_finetune": true, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": true, - "name": "Leah", - "normal_preview": "https://files.movio.la/avatar/v3/b596c0849b7942778ad27f63c5995e33_2626/preview_talk_1.webp", - "normal_preview_height": 720, - "normal_preview_width": 1280, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/b596c0849b7942778ad27f63c5995e33_2626/preview_talk_1_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/b596c0849b7942778ad27f63c5995e33_2626/preview_talk_1_small.webp", - "normal_view_crop_x": 0, - "pose_name": "Leah", - "sort_index": 7, - "start_speech_offset": 0.5, - "support_4k": false, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/b596c0849b7942778ad27f63c5995e33_2626/preview_video_talk_1.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "Lily", - "avatar_race": "", - "avatar_style": "", - "circle_box": [ - 0.21583011746406555, - 0, - 0.7888031005859375, - 0.6870370507240295 - ], - "close_up_box": [ - 0.00463320454582572, - 0, - 1, - 0.6870370507240295 - ], - "close_up_view_crop_x": 0.2124404013156891, - "created_at": 1686755727, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1.100000023841858, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/c4b35a0a22c14fc5abea338d4e8617d9.wav", - "tts_duration": 6.841, - "voice_gender": "female", - "voice_id": "1bd001e7e50f421d891986aad5158bc8", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/71456a37e30c48e9a83f4b34562a9902.wav", - "tts_duration": 5.146, - "voice_gender": "female", - "voice_id": "232e3bb29f3b45d695f873503af7068c", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "female", - "id": "Lily_public_pro1_20230614", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": true, - "name": "Leah", - "normal_preview": "https://files.movio.la/avatar/v3/51267c0f0f2045518a8c66bb1709bf2a_2654/preview_target.webp", - "normal_preview_height": 720, - "normal_preview_width": 863, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/51267c0f0f2045518a8c66bb1709bf2a_2654/preview_target_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/51267c0f0f2045518a8c66bb1709bf2a_2654/preview_target_small.webp", - "normal_view_crop_x": 0.205098494887352, - "pose_name": "Leah in Black Suit", - "sort_index": 128, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/51267c0f0f2045518a8c66bb1709bf2a_2654/preview_video_target.mp4" - } - } - ], - "created_at": 1685681264, - "gender": "female", - "name": "Leah" - }, - { - "avatar_id": 1661166377, - "avatar_states": [ - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "angela", - "avatar_race": "Asian", - "avatar_style": "Smart Casual", - "circle_box": [ - 0.1893518567085266, - 0.019907407462596893, - 0.8171296119689941, - 0.647685170173645 - ], - "close_up_box": [ - 0, - 0.019907407462596893, - 1, - 0.647685170173645 - ], - "close_up_view_crop_x": 0.24237141013145447, - "created_at": 1665319122, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/7dd0a767d6a747e3a73a64a5a504eecc.wav", - "tts_duration": 6.863, - "voice_gender": "female", - "voice_id": "131a436c47064f708210df6628ef8f32", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/69366e1207ee4197adca8fa5523c447c.wav", - "tts_duration": 6.863, - "voice_gender": "female", - "voice_id": "131a436c47064f708210df6628ef8f32", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "female", - "id": "Angela-inblackskirt-20220820", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Angela", - "normal_preview": "https://files.movio.la/avatar/v3/dc4c9111fa61481c9c09aad80d697fb2_1053/preview_talk_2.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/dc4c9111fa61481c9c09aad80d697fb2_1053/preview_talk_2_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/dc4c9111fa61481c9c09aad80d697fb2_1053/preview_talk_2_small.webp", - "normal_view_crop_x": 0.2222222238779068, - "pose_name": "Angela in Black Dress", - "sort_index": 48, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/dc4c9111fa61481c9c09aad80d697fb2_1053/preview_video_talk_2.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "angela", - "avatar_race": "Asian", - "avatar_style": "Business Casual", - "circle_box": [ - 0.1814814805984497, - 0.029629629105329514, - 0.8277778029441833, - 0.6759259104728699 - ], - "close_up_box": [ - 0, - 0.029629629105329514, - 1, - 0.6759259104728699 - ], - "close_up_view_crop_x": 0.24147216975688934, - "created_at": 1665319207, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/7dd0a767d6a747e3a73a64a5a504eecc.wav", - "tts_duration": 6.863, - "voice_gender": "female", - "voice_id": "131a436c47064f708210df6628ef8f32", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/69366e1207ee4197adca8fa5523c447c.wav", - "tts_duration": 6.863, - "voice_gender": "female", - "voice_id": "131a436c47064f708210df6628ef8f32", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "female", - "id": "Angela-insuit-20220820", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Angela", - "normal_preview": "https://files.movio.la/avatar/v3/dc4c9111fa61481c9c09aad80d697fb2_1053/preview_talk_4.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/dc4c9111fa61481c9c09aad80d697fb2_1053/preview_talk_4_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/dc4c9111fa61481c9c09aad80d697fb2_1053/preview_talk_4_small.webp", - "normal_view_crop_x": 0.19861111044883728, - "pose_name": "Angela in Suit", - "sort_index": 46, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/dc4c9111fa61481c9c09aad80d697fb2_1053/preview_video_talk_4.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "angela", - "avatar_race": "Asian", - "avatar_style": "Smart Casual", - "circle_box": [ - 0.16435185074806213, - 0.025925925001502037, - 0.8217592835426331, - 0.6837962865829468 - ], - "close_up_box": [ - 0, - 0.025925925001502037, - 1, - 0.6837962865829468 - ], - "close_up_view_crop_x": 0.2404021918773651, - "created_at": 1665319236, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/7dd0a767d6a747e3a73a64a5a504eecc.wav", - "tts_duration": 6.863, - "voice_gender": "female", - "voice_id": "131a436c47064f708210df6628ef8f32", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/69366e1207ee4197adca8fa5523c447c.wav", - "tts_duration": 6.863, - "voice_gender": "female", - "voice_id": "131a436c47064f708210df6628ef8f32", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "female", - "id": "Angela-inwhiteskirt-20220820", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Angela", - "normal_preview": "https://files.movio.la/avatar/v3/dc4c9111fa61481c9c09aad80d697fb2_1053/preview_talk_6.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/dc4c9111fa61481c9c09aad80d697fb2_1053/preview_talk_6_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/dc4c9111fa61481c9c09aad80d697fb2_1053/preview_talk_6_small.webp", - "normal_view_crop_x": 0.2013888955116272, - "pose_name": "Angela in White Dress", - "sort_index": 45, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/dc4c9111fa61481c9c09aad80d697fb2_1053/preview_video_talk_6.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "angela", - "avatar_race": "Asian", - "avatar_style": "Casual", - "circle_box": [ - 0.1953703761100769, - 0.032870370894670486, - 0.8416666388511658, - 0.6796296238899231 - ], - "close_up_box": [ - 0, - 0.032870370894670486, - 1, - 0.6796296238899231 - ], - "close_up_view_crop_x": 0.216531902551651, - "created_at": 1665322197, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/7dd0a767d6a747e3a73a64a5a504eecc.wav", - "tts_duration": 6.863, - "voice_gender": "female", - "voice_id": "131a436c47064f708210df6628ef8f32", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/69366e1207ee4197adca8fa5523c447c.wav", - "tts_duration": 6.863, - "voice_gender": "female", - "voice_id": "131a436c47064f708210df6628ef8f32", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "female", - "id": "Angela-inTshirt-20220820", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Angela", - "normal_preview": "https://files.movio.la/avatar/v3/dc4c9111fa61481c9c09aad80d697fb2_1053/preview_talk_10.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/dc4c9111fa61481c9c09aad80d697fb2_1053/preview_talk_10_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/dc4c9111fa61481c9c09aad80d697fb2_1053/preview_talk_10_small.webp", - "normal_view_crop_x": 0.20694445073604584, - "outfit_circle_box": [ - 0.14907407760620117, - 0, - 0.8509259223937988, - 0.7018518447875977 - ], - "outfit_close_up_box": [ - 0.14444445073604584, - 0, - 0.855555534362793, - 0.7018518447875977 - ], - "pose_name": "Angela in T-shirt", - "sort_index": 44, - "start_speech_offset": 0.5, - "support_4k": true, - "support_ai_outfit": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/dc4c9111fa61481c9c09aad80d697fb2_1053/preview_video_talk_10.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "angela", - "avatar_race": "Asian", - "avatar_style": "Business Casual", - "circle_box": [ - 0.22268518805503845, - 0.05092592537403107, - 0.8254629373550415, - 0.6541666388511658 - ], - "close_up_box": [ - 0, - 0.05092592537403107, - 1, - 0.6541666388511658 - ], - "close_up_view_crop_x": 0.23283082246780396, - "created_at": 1665319286, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/7dd0a767d6a747e3a73a64a5a504eecc.wav", - "tts_duration": 6.863, - "voice_gender": "female", - "voice_id": "131a436c47064f708210df6628ef8f32", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/69366e1207ee4197adca8fa5523c447c.wav", - "tts_duration": 6.863, - "voice_gender": "female", - "voice_id": "131a436c47064f708210df6628ef8f32", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "female", - "id": "Angela-incasualsuit-20220820", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Angela", - "normal_preview": "https://files.movio.la/avatar/v3/ea88b771cefb402881e009b8fb597e91_1046/preview_target.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/ea88b771cefb402881e009b8fb597e91_1046/preview_target_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/ea88b771cefb402881e009b8fb597e91_1046/preview_target_small.webp", - "normal_view_crop_x": 0.20972222089767456, - "pose_name": "Angela in Casual Suit", - "sort_index": 47, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/ea88b771cefb402881e009b8fb597e91_1046/preview_video_target.mp4" - } - } - ], - "created_at": 1661166377, - "gender": "female", - "name": "Angela" - }, - { - "avatar_id": 1683546801, - "avatar_states": [ - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "aurelien", - "avatar_race": "", - "avatar_style": "", - "circle_box": [ - 0.009259259328246117, - 0, - 0.9888888597488403, - 0.9800925850868225 - ], - "close_up_box": [ - 0, - 0, - 0.9981481432914734, - 0.9800925850868225 - ], - "close_up_view_crop_x": 0.03676671162247658, - "created_at": 1685696736, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/06290b62fb7246fe8a18cd8ab41deba0.wav", - "tts_duration": 6.551, - "voice_gender": "male", - "voice_id": "1ae3be1e24894ccabdb4d8139399f721", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/45b8ef7b970745dd894ad75be7a46b9a.wav", - "tts_duration": 5.016, - "voice_gender": "male", - "voice_id": "cac876fea7c541e7a634a9b386ee3b53", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "male", - "id": "Aurelien_public_pro4_20230601", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": true, - "name": "Austin", - "normal_preview": "https://files.movio.la/avatar/v3/49b25ad2cbfe4f8ea1259998f77cd54b_2633/preview_target.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/49b25ad2cbfe4f8ea1259998f77cd54b_2633/preview_target_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/49b25ad2cbfe4f8ea1259998f77cd54b_2633/preview_target_small.webp", - "normal_view_crop_x": 0.03333333507180214, - "pose_name": "Austin in Suit", - "sort_index": 25, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/49b25ad2cbfe4f8ea1259998f77cd54b_2633/preview_video_target.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "aurelien", - "avatar_race": "", - "avatar_style": "", - "circle_box": [ - 0.035185184329748154, - 0, - 0.9638888835906982, - 0.9291666746139526 - ], - "close_up_box": [ - 0, - 0, - 0.9990741014480591, - 0.9291666746139526 - ], - "close_up_view_crop_x": 0.07099363207817078, - "created_at": 1685696863, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/06290b62fb7246fe8a18cd8ab41deba0.wav", - "tts_duration": 6.551, - "voice_gender": "male", - "voice_id": "1ae3be1e24894ccabdb4d8139399f721", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/45b8ef7b970745dd894ad75be7a46b9a.wav", - "tts_duration": 5.016, - "voice_gender": "male", - "voice_id": "cac876fea7c541e7a634a9b386ee3b53", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "male", - "id": "Aurelien_public_pro1_20230601", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": true, - "name": "Austin", - "normal_preview": "https://files.movio.la/avatar/v3/0fb2f9ff60114f71a9ea7be31da84a19_2573/preview_target.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/0fb2f9ff60114f71a9ea7be31da84a19_2573/preview_target_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/0fb2f9ff60114f71a9ea7be31da84a19_2573/preview_target_small.webp", - "normal_view_crop_x": 0.05833333358168602, - "pose_name": "Austin in Blue Casual Suit", - "sort_index": 26, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/0fb2f9ff60114f71a9ea7be31da84a19_2573/preview_video_target.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "aurelien", - "avatar_race": "", - "avatar_style": "", - "circle_box": [ - -0.008333333767950535, - 0, - 0.9916666746139526, - 1 - ], - "close_up_box": [ - 0, - 0, - 0.9833333492279053, - 1 - ], - "close_up_view_crop_x": 0.04305555671453476, - "created_at": 1685697548, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/06290b62fb7246fe8a18cd8ab41deba0.wav", - "tts_duration": 6.551, - "voice_gender": "male", - "voice_id": "1ae3be1e24894ccabdb4d8139399f721", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/45b8ef7b970745dd894ad75be7a46b9a.wav", - "tts_duration": 5.016, - "voice_gender": "male", - "voice_id": "cac876fea7c541e7a634a9b386ee3b53", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "male", - "id": "Aurelien_public_pro2_20230601", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": true, - "name": "Austin", - "normal_preview": "https://files.movio.la/avatar/v3/4e21df8179ad46b4a81281c5575690af_2634/preview_talk_1.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/4e21df8179ad46b4a81281c5575690af_2634/preview_talk_1_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/4e21df8179ad46b4a81281c5575690af_2634/preview_talk_1_small.webp", - "normal_view_crop_x": 0.04305555671453476, - "pose_name": "Austin in Black Jacket", - "sort_index": 23, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/4e21df8179ad46b4a81281c5575690af_2634/preview_video_talk_1.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "aurelien", - "avatar_race": "", - "avatar_style": "", - "circle_box": [ - -0.014351852238178253, - 0, - 0.9856481552124023, - 1 - ], - "close_up_box": [ - 0, - 0, - 0.9712963104248047, - 1 - ], - "close_up_view_crop_x": 0.03195967897772789, - "created_at": 1685686854, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/06290b62fb7246fe8a18cd8ab41deba0.wav", - "tts_duration": 6.551, - "voice_gender": "male", - "voice_id": "1ae3be1e24894ccabdb4d8139399f721", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/45b8ef7b970745dd894ad75be7a46b9a.wav", - "tts_duration": 5.016, - "voice_gender": "male", - "voice_id": "cac876fea7c541e7a634a9b386ee3b53", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "male", - "id": "Aurelien_public_pro3_20230601", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": true, - "name": "Austin", - "normal_preview": "https://files.movio.la/avatar/v3/d618bfca0bd74fdeaa3c7bf1cd3916d5_2634/preview_talk_2.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/d618bfca0bd74fdeaa3c7bf1cd3916d5_2634/preview_talk_2_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/d618bfca0bd74fdeaa3c7bf1cd3916d5_2634/preview_talk_2_small.webp", - "normal_view_crop_x": 0.05416666716337204, - "pose_name": "Austin in Blue Suit", - "sort_index": 24, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/d618bfca0bd74fdeaa3c7bf1cd3916d5_2634/preview_video_talk_2.mp4" - } - } - ], - "created_at": 1683546801, - "gender": "male", - "name": "Austin" - }, - { - "avatar_id": 1669694954, - "avatar_states": [ - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "bill", - "avatar_race": "White", - "avatar_style": "Business Attire", - "circle_box": [ - 0.1726851910352707, - 0.024537036195397377, - 0.7773148417472839, - 0.6291666626930237 - ], - "close_up_box": [ - 0, - 0.024537036195397377, - 1, - 0.6291666626930237 - ], - "close_up_view_crop_x": 0.18136020004749298, - "created_at": 1670484041, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/cc57d9cb0c034d118999e813f7089402.wav", - "tts_duration": 6.551, - "voice_gender": "male", - "voice_id": "1ae3be1e24894ccabdb4d8139399f721", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/f8da0a52258d491f912d736dc2a4e33c.wav", - "tts_duration": 5.669, - "voice_gender": "male", - "voice_id": "086b225655694cd9ae60e712469ce474", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "male", - "id": "Ben-pro-insuit-20221207", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Bill", - "normal_preview": "https://files.movio.la/avatar/v3/4ac4f5fc2d134073b090005f3331752c_1413/preview_talk_4.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/4ac4f5fc2d134073b090005f3331752c_1413/preview_talk_4_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/4ac4f5fc2d134073b090005f3331752c_1413/preview_talk_4_small.webp", - "normal_view_crop_x": 0.14305555820465088, - "pose_name": "Bill in Suit", - "sort_index": 109, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/4ac4f5fc2d134073b090005f3331752c_1413/preview_video_talk_4.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "bill", - "avatar_race": "White", - "avatar_style": "Smart Casual", - "circle_box": [ - 0.1527777761220932, - 0, - 0.8472222089767456, - 0.6944444179534912 - ], - "close_up_box": [ - 0, - 0, - 1, - 0.6944444179534912 - ], - "close_up_view_crop_x": 0.1465766578912735, - "created_at": 1671098683, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/cc57d9cb0c034d118999e813f7089402.wav", - "tts_duration": 6.551, - "voice_gender": "male", - "voice_id": "1ae3be1e24894ccabdb4d8139399f721", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/f8da0a52258d491f912d736dc2a4e33c.wav", - "tts_duration": 5.669, - "voice_gender": "male", - "voice_id": "086b225655694cd9ae60e712469ce474", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "male", - "id": "Ben-pro-jacket-20221215", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Bill", - "normal_preview": "https://files.movio.la/avatar/v3/b7745c72a90b4c46af0fc54321d7debd_1462/preview_talk_2.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/b7745c72a90b4c46af0fc54321d7debd_1462/preview_talk_2_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/b7745c72a90b4c46af0fc54321d7debd_1462/preview_talk_2_small.webp", - "normal_view_crop_x": 0.1041666641831398, - "pose_name": "Bill in Jacket", - "sort_index": 108, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/b7745c72a90b4c46af0fc54321d7debd_1462/preview_video_talk_2.mp4" - } - } - ], - "created_at": 1669694954, - "gender": "male", - "name": "Bill" - }, - { - "avatar_id": 1660815129, - "avatar_states": [ - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "daisy", - "avatar_race": "White", - "avatar_style": "Business Attire", - "circle_box": [ - 0.2074074000120163, - 0.01666666753590107, - 0.7861111164093018, - 0.595370352268219 - ], - "close_up_box": [ - 0, - 0.01666666753590107, - 1, - 0.595370352268219 - ], - "close_up_view_crop_x": 0.23151125013828278, - "created_at": 1664551094, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/80db026894874c2cb262ad9e42e86ac3.wav", - "tts_duration": 6.625, - "voice_gender": "female", - "voice_id": "2f72ee82b83d4b00af16c4771d611752", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/5fdd0d97f54a45339d770cfbbd86ed8a.wav", - "tts_duration": 5.329, - "voice_gender": "female", - "voice_id": "aa815b9a80534d928634cb7df4f99754", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "female", - "id": "Daisy-insuit-20220818", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Daisy", - "normal_preview": "https://files.movio.la/avatar/v3/d99ba541a2c9413b941fa7efe90a1130_1059/preview_target.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/d99ba541a2c9413b941fa7efe90a1130_1059/preview_target_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/d99ba541a2c9413b941fa7efe90a1130_1059/preview_target_small.webp", - "normal_view_crop_x": 0.20972222089767456, - "pose_name": "Daisy in Suit", - "sort_index": 78, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/d99ba541a2c9413b941fa7efe90a1130_1059/preview_video_target.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "daisy", - "avatar_race": "White", - "avatar_style": "Smart Casual", - "circle_box": [ - 0.19583334028720856, - 0.007870370522141457, - 0.7865740656852722, - 0.5990740656852722 - ], - "close_up_box": [ - 0, - 0.007870370522141457, - 1, - 0.5990740656852722 - ], - "close_up_view_crop_x": 0.22824302315711975, - "created_at": 1664551123, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/80db026894874c2cb262ad9e42e86ac3.wav", - "tts_duration": 6.625, - "voice_gender": "female", - "voice_id": "2f72ee82b83d4b00af16c4771d611752", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/5fdd0d97f54a45339d770cfbbd86ed8a.wav", - "tts_duration": 5.329, - "voice_gender": "female", - "voice_id": "aa815b9a80534d928634cb7df4f99754", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "female", - "id": "Daisy-inshirt-20220818", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Daisy", - "normal_preview": "https://files.movio.la/avatar/v3/d99ba541a2c9413b941fa7efe90a1130_1059/preview_talk_4.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/d99ba541a2c9413b941fa7efe90a1130_1059/preview_talk_4_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/d99ba541a2c9413b941fa7efe90a1130_1059/preview_talk_4_small.webp", - "normal_view_crop_x": 0.1875, - "pose_name": "Daisy in Shirt", - "sort_index": 77, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/d99ba541a2c9413b941fa7efe90a1130_1059/preview_video_talk_4.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "daisy", - "avatar_race": "White", - "avatar_style": "Smart Casual", - "circle_box": [ - 0.21296297013759613, - 0, - 0.7675926089286804, - 0.5546296238899231 - ], - "close_up_box": [ - 0, - 0, - 0.9833333492279053, - 0.5546296238899231 - ], - "close_up_view_crop_x": 0.20020882785320282, - "created_at": 1664551149, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/80db026894874c2cb262ad9e42e86ac3.wav", - "tts_duration": 6.625, - "voice_gender": "female", - "voice_id": "2f72ee82b83d4b00af16c4771d611752", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/5fdd0d97f54a45339d770cfbbd86ed8a.wav", - "tts_duration": 5.329, - "voice_gender": "female", - "voice_id": "aa815b9a80534d928634cb7df4f99754", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "female", - "id": "Daisy-inskirt-20220818", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Daisy", - "normal_preview": "https://files.movio.la/avatar/v3/d99ba541a2c9413b941fa7efe90a1130_1059/preview_talk_7.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/d99ba541a2c9413b941fa7efe90a1130_1059/preview_talk_7_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/d99ba541a2c9413b941fa7efe90a1130_1059/preview_talk_7_small.webp", - "normal_view_crop_x": 0.1736111044883728, - "pose_name": "Daisy in Dress", - "sort_index": 76, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/d99ba541a2c9413b941fa7efe90a1130_1059/preview_video_talk_7.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "daisy", - "avatar_race": "White", - "avatar_style": "Casual", - "circle_box": [ - 0.22499999403953552, - 0.010185184888541698, - 0.8055555820465088, - 0.5912036895751953 - ], - "close_up_box": [ - 0, - 0.010185184888541698, - 1, - 0.5912036895751953 - ], - "close_up_view_crop_x": 0.2074253410100937, - "created_at": 1664551173, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/80db026894874c2cb262ad9e42e86ac3.wav", - "tts_duration": 6.625, - "voice_gender": "female", - "voice_id": "2f72ee82b83d4b00af16c4771d611752", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/5fdd0d97f54a45339d770cfbbd86ed8a.wav", - "tts_duration": 5.329, - "voice_gender": "female", - "voice_id": "aa815b9a80534d928634cb7df4f99754", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "female", - "id": "Daisy-inTshirt-20220819", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Daisy", - "normal_preview": "https://files.movio.la/avatar/v3/942859e6a10243d5816dd9b941c0a5d3_1041/preview_talk_1.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/942859e6a10243d5816dd9b941c0a5d3_1041/preview_talk_1_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/942859e6a10243d5816dd9b941c0a5d3_1041/preview_talk_1_small.webp", - "normal_view_crop_x": 0.19861111044883728, - "outfit_circle_box": [ - 0.14907407760620117, - 0, - 0.8509259223937988, - 0.7018518447875977 - ], - "outfit_close_up_box": [ - 0.14444445073604584, - 0, - 0.855555534362793, - 0.7018518447875977 - ], - "pose_name": "Daisy in T-shirt", - "sort_index": 75, - "start_speech_offset": 0.5, - "support_4k": true, - "support_ai_outfit": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/942859e6a10243d5816dd9b941c0a5d3_1041/preview_video_talk_1.mp4" - } - } - ], - "created_at": 1660815129, - "gender": "female", - "name": "Daisy" - }, - { - "avatar_id": 1660811777, - "avatar_states": [ - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "derek", - "avatar_race": "White", - "avatar_style": "Casual", - "circle_box": [ - 0.17037037014961243, - 0, - 0.8231481313705444, - 0.6532407402992249 - ], - "close_up_box": [ - 0, - 0, - 1, - 0.6532407402992249 - ], - "close_up_view_crop_x": 0.15335753560066223, - "created_at": 1667789408, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/8d4babc923a94030a42485ef1564389c.wav", - "tts_duration": 7.438, - "voice_gender": "male", - "voice_id": "f7658a75545d4b70b04d8784c07bd038", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/9b4a2a6a785d4fa2953f92d690f52a27.wav", - "tts_duration": 5.329, - "voice_gender": "male", - "voice_id": "0ebe70d83b2349529e56492c002c9572", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "male", - "id": "Derek-inshirt-200220816", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Derek", - "normal_preview": "https://files.movio.la/avatar/v3/44f9a21dcbba41dfa5eec508f7682da3_1075/preview_talk_1.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/44f9a21dcbba41dfa5eec508f7682da3_1075/preview_talk_1_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/44f9a21dcbba41dfa5eec508f7682da3_1075/preview_talk_1_small.webp", - "normal_view_crop_x": 0.12361110746860504, - "pose_name": "Derek in Shirt", - "sort_index": 106, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/44f9a21dcbba41dfa5eec508f7682da3_1075/preview_video_talk_1.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "derek", - "avatar_race": "White", - "avatar_style": "Business Attire", - "circle_box": [ - 0.18888889253139496, - 0, - 0.8148148059844971, - 0.6263889074325562 - ], - "close_up_box": [ - 0, - 0, - 1, - 0.6263889074325562 - ], - "close_up_view_crop_x": 0.18537859618663788, - "created_at": 1667789581, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/8d4babc923a94030a42485ef1564389c.wav", - "tts_duration": 7.438, - "voice_gender": "male", - "voice_id": "f7658a75545d4b70b04d8784c07bd038", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/9b4a2a6a785d4fa2953f92d690f52a27.wav", - "tts_duration": 5.329, - "voice_gender": "male", - "voice_id": "0ebe70d83b2349529e56492c002c9572", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "male", - "id": "Derek-insuit-200220816", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Derek", - "normal_preview": "https://files.movio.la/avatar/v3/44f9a21dcbba41dfa5eec508f7682da3_1075/preview_talk_2.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/44f9a21dcbba41dfa5eec508f7682da3_1075/preview_talk_2_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/44f9a21dcbba41dfa5eec508f7682da3_1075/preview_talk_2_small.webp", - "normal_view_crop_x": 0.15555556118488312, - "pose_name": "Derek in Suit", - "sort_index": 105, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/44f9a21dcbba41dfa5eec508f7682da3_1075/preview_video_talk_2.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "derek", - "avatar_race": "White", - "avatar_style": "Business Casual", - "circle_box": [ - 0.21250000596046448, - 0.004629629664123058, - 0.8291666507720947, - 0.6212962865829468 - ], - "close_up_box": [ - 0, - 0.004629629664123058, - 1, - 0.6212962865829468 - ], - "close_up_view_crop_x": 0.1686643809080124, - "created_at": 1667789687, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/8d4babc923a94030a42485ef1564389c.wav", - "tts_duration": 7.438, - "voice_gender": "male", - "voice_id": "f7658a75545d4b70b04d8784c07bd038", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/9b4a2a6a785d4fa2953f92d690f52a27.wav", - "tts_duration": 5.329, - "voice_gender": "male", - "voice_id": "0ebe70d83b2349529e56492c002c9572", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "male", - "id": "Derek-incasualsuit-200220816", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Derek", - "normal_preview": "https://files.movio.la/avatar/v3/bc51820f5ff94ce5bde7becc9f325313_1171/preview_target.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/bc51820f5ff94ce5bde7becc9f325313_1171/preview_target_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/bc51820f5ff94ce5bde7becc9f325313_1171/preview_target_small.webp", - "normal_view_crop_x": 0.13750000298023224, - "outfit_circle_box": [ - 0.14907407760620117, - 0, - 0.8509259223937988, - 0.7018518447875977 - ], - "outfit_close_up_box": [ - 0.14444445073604584, - 0, - 0.855555534362793, - 0.7018518447875977 - ], - "pose_name": "Derek in Casual Suit", - "sort_index": 104, - "start_speech_offset": 0.5, - "support_4k": true, - "support_ai_outfit": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/bc51820f5ff94ce5bde7becc9f325313_1171/preview_video_target.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "derek", - "avatar_race": "White", - "avatar_style": "Casual", - "circle_box": [ - 0.20555555820465088, - 0.033796295523643494, - 0.8259259462356567, - 0.654629647731781 - ], - "close_up_box": [ - 0, - 0.033796295523643494, - 1, - 0.654629647731781 - ], - "close_up_view_crop_x": 0.15775862336158752, - "created_at": 1665319965, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/8d4babc923a94030a42485ef1564389c.wav", - "tts_duration": 7.438, - "voice_gender": "male", - "voice_id": "f7658a75545d4b70b04d8784c07bd038", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/9b4a2a6a785d4fa2953f92d690f52a27.wav", - "tts_duration": 5.329, - "voice_gender": "male", - "voice_id": "0ebe70d83b2349529e56492c002c9572", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "male", - "id": "Derek-inTshirt-200220816", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Derek", - "normal_preview": "https://files.movio.la/avatar/v3/f9fb7f884fcf41c396291d54920201d9_1075/preview_talk_7.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/f9fb7f884fcf41c396291d54920201d9_1075/preview_talk_7_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/f9fb7f884fcf41c396291d54920201d9_1075/preview_talk_7_small.webp", - "normal_view_crop_x": 0.14722222089767456, - "pose_name": "Derek in T-shirt", - "sort_index": 103, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/f9fb7f884fcf41c396291d54920201d9_1075/preview_video_talk_7.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "derek", - "avatar_race": "White", - "avatar_style": "Smart Casual", - "circle_box": [ - 0.18009258806705475, - 0.004166666883975267, - 0.8467592597007751, - 0.6708333492279053 - ], - "close_up_box": [ - 0, - 0.004166666883975267, - 1, - 0.6708333492279053 - ], - "close_up_view_crop_x": 0.14259259402751923, - "created_at": 1667789645, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/8d4babc923a94030a42485ef1564389c.wav", - "tts_duration": 7.438, - "voice_gender": "male", - "voice_id": "f7658a75545d4b70b04d8784c07bd038", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/9b4a2a6a785d4fa2953f92d690f52a27.wav", - "tts_duration": 5.329, - "voice_gender": "male", - "voice_id": "0ebe70d83b2349529e56492c002c9572", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "male", - "id": "Derek-infloweryshirt-200220816", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Derek", - "normal_preview": "https://files.movio.la/avatar/v3/44f9a21dcbba41dfa5eec508f7682da3_1075/preview_talk_8.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/44f9a21dcbba41dfa5eec508f7682da3_1075/preview_talk_8_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/44f9a21dcbba41dfa5eec508f7682da3_1075/preview_talk_8_small.webp", - "normal_view_crop_x": 0.13611111044883728, - "pose_name": "Derek in Flowery Shirt", - "sort_index": 102, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/44f9a21dcbba41dfa5eec508f7682da3_1075/preview_video_talk_8.mp4" - } - } - ], - "created_at": 1660811777, - "gender": "male", - "name": "Derek" - }, - { - "avatar_id": 1658380510, - "avatar_states": [ - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "jake", - "avatar_race": "African American", - "avatar_style": "Casual", - "circle_box": [ - 0.20000000298023224, - 0, - 0.824999988079071, - 0.6254629492759705 - ], - "close_up_box": [ - 0, - 0, - 1, - 0.6254629492759705 - ], - "close_up_view_crop_x": 0.16594265401363373, - "created_at": 1664550567, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/123d3a7177b64727b3d7a982441a2633.wav", - "tts_duration": 6.488, - "voice_gender": "male", - "voice_id": "ff465a8dab0d42c78f874a135b11d47d", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/634e66f0edd942fc8f4d3ecbf1f502c5.wav", - "tts_duration": 6.488, - "voice_gender": "male", - "voice_id": "ff465a8dab0d42c78f874a135b11d47d", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "male", - "id": "Jake-inshirt-20220721", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Jake", - "normal_preview": "https://files.movio.la/avatar/v3/2fe505d2f4f546b7addd4fa083149284_1060/preview_target.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/2fe505d2f4f546b7addd4fa083149284_1060/preview_target_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/2fe505d2f4f546b7addd4fa083149284_1060/preview_target_small.webp", - "normal_view_crop_x": 0.12361110746860504, - "pose_name": "Jake in Shirt", - "sort_index": 82, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/2fe505d2f4f546b7addd4fa083149284_1060/preview_video_target.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "jake", - "avatar_race": "African American", - "avatar_style": "Business Attire", - "circle_box": [ - 0.19907407462596893, - 0, - 0.824999988079071, - 0.6263889074325562 - ], - "close_up_box": [ - 0, - 0, - 1, - 0.6263889074325562 - ], - "close_up_view_crop_x": 0.19582244753837585, - "created_at": 1664550634, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/123d3a7177b64727b3d7a982441a2633.wav", - "tts_duration": 6.488, - "voice_gender": "male", - "voice_id": "ff465a8dab0d42c78f874a135b11d47d", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/634e66f0edd942fc8f4d3ecbf1f502c5.wav", - "tts_duration": 6.488, - "voice_gender": "male", - "voice_id": "ff465a8dab0d42c78f874a135b11d47d", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "male", - "id": "Jake-insuit-20220721", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Jake", - "normal_preview": "https://files.movio.la/avatar/v3/2fe505d2f4f546b7addd4fa083149284_1060/preview_talk_3.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/2fe505d2f4f546b7addd4fa083149284_1060/preview_talk_3_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/2fe505d2f4f546b7addd4fa083149284_1060/preview_talk_3_small.webp", - "normal_view_crop_x": 0.16249999403953552, - "pose_name": "Jake in Suit", - "sort_index": 84, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/2fe505d2f4f546b7addd4fa083149284_1060/preview_video_talk_3.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "jake", - "avatar_race": "African American", - "avatar_style": "Business Casual", - "circle_box": [ - 0.20324073731899261, - 0, - 0.8254629373550415, - 0.6226851940155029 - ], - "close_up_box": [ - 0, - 0, - 1, - 0.6226851940155029 - ], - "close_up_view_crop_x": 0.193771630525589, - "created_at": 1664550681, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/123d3a7177b64727b3d7a982441a2633.wav", - "tts_duration": 6.488, - "voice_gender": "male", - "voice_id": "ff465a8dab0d42c78f874a135b11d47d", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/634e66f0edd942fc8f4d3ecbf1f502c5.wav", - "tts_duration": 6.488, - "voice_gender": "male", - "voice_id": "ff465a8dab0d42c78f874a135b11d47d", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "male", - "id": "Jake-incasualsuit-20220721", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Jake", - "normal_preview": "https://files.movio.la/avatar/v3/2fe505d2f4f546b7addd4fa083149284_1060/preview_talk_5.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/2fe505d2f4f546b7addd4fa083149284_1060/preview_talk_5_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/2fe505d2f4f546b7addd4fa083149284_1060/preview_talk_5_small.webp", - "normal_view_crop_x": 0.1666666716337204, - "pose_name": "Jake in Casual Suit", - "sort_index": 83, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/2fe505d2f4f546b7addd4fa083149284_1060/preview_video_talk_5.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "jake", - "avatar_race": "African American", - "avatar_style": "Smart Casual", - "circle_box": [ - 0.18472221493721008, - 0, - 0.8208333253860474, - 0.6361111402511597 - ], - "close_up_box": [ - 0, - 0, - 1, - 0.6361111402511597 - ], - "close_up_view_crop_x": 0.19169610738754272, - "created_at": 1664550977, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/123d3a7177b64727b3d7a982441a2633.wav", - "tts_duration": 6.488, - "voice_gender": "male", - "voice_id": "ff465a8dab0d42c78f874a135b11d47d", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/634e66f0edd942fc8f4d3ecbf1f502c5.wav", - "tts_duration": 6.488, - "voice_gender": "male", - "voice_id": "ff465a8dab0d42c78f874a135b11d47d", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "male", - "id": "Jake-infloweryshirt-20220721", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Jake", - "normal_preview": "https://files.movio.la/avatar/v3/2fe505d2f4f546b7addd4fa083149284_1060/preview_talk_6.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/2fe505d2f4f546b7addd4fa083149284_1060/preview_talk_6_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/2fe505d2f4f546b7addd4fa083149284_1060/preview_talk_6_small.webp", - "normal_view_crop_x": 0.16388888657093048, - "outfit_circle_box": [ - 0.10277777910232544, - 0, - 0.8972222208976746, - 0.7944444417953491 - ], - "outfit_close_up_box": [ - 0.09814814478158951, - 0, - 0.9018518328666687, - 0.7944444417953491 - ], - "pose_name": "Jake in Flowery Shirt", - "sort_index": 81, - "start_speech_offset": 0.5, - "support_4k": true, - "support_ai_outfit": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/2fe505d2f4f546b7addd4fa083149284_1060/preview_video_talk_6.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "jake", - "avatar_race": "African American", - "avatar_style": "Casual", - "circle_box": [ - 0.19675925374031067, - 0, - 0.8282407522201538, - 0.6314814686775208 - ], - "close_up_box": [ - 0, - 0, - 1, - 0.6314814686775208 - ], - "close_up_view_crop_x": 0.16140350699424744, - "created_at": 1664551038, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/123d3a7177b64727b3d7a982441a2633.wav", - "tts_duration": 6.488, - "voice_gender": "male", - "voice_id": "ff465a8dab0d42c78f874a135b11d47d", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/634e66f0edd942fc8f4d3ecbf1f502c5.wav", - "tts_duration": 6.488, - "voice_gender": "male", - "voice_id": "ff465a8dab0d42c78f874a135b11d47d", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "male", - "id": "Jake-inT-shirt-20220721", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Jake", - "normal_preview": "https://files.movio.la/avatar/v3/2fe505d2f4f546b7addd4fa083149284_1060/preview_talk_8.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/2fe505d2f4f546b7addd4fa083149284_1060/preview_talk_8_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/2fe505d2f4f546b7addd4fa083149284_1060/preview_talk_8_small.webp", - "normal_view_crop_x": 0.02222222276031971, - "pose_name": "Jake in T-shirt", - "sort_index": 80, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/2fe505d2f4f546b7addd4fa083149284_1060/preview_video_talk_8.mp4" - } - } - ], - "created_at": 1658380510, - "gender": "male", - "name": "Jake" - }, - { - "avatar_id": 1658828334, - "avatar_states": [ - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "jeff", - "avatar_race": "White", - "avatar_style": "Business Casual", - "circle_box": [ - 0.20694445073604584, - 0, - 0.8180555701255798, - 0.6115740537643433 - ], - "close_up_box": [ - 0, - 0, - 1, - 0.6115740537643433 - ], - "close_up_view_crop_x": 0.2030586302280426, - "created_at": 1666257896, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1.100000023841858, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/8016f816e719414781f495dbd18cf872.wav", - "tts_duration": 6.466, - "voice_gender": "male", - "voice_id": "ec4aa6ac882147ffb679176d49f3e41f", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/55b3c12a9874421c90273e8dbdd229e4.wav", - "tts_duration": 5.277, - "voice_gender": "male", - "voice_id": "6648fd92bcba41df809a01712faf9a4a", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "male", - "id": "Jeff-incasualsuit-20220722", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Jeff", - "normal_preview": "https://files.movio.la/avatar/v3/a43b84ae994d4776a64aba7dc40ad9c9_1126/preview_talk_6.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/a43b84ae994d4776a64aba7dc40ad9c9_1126/preview_talk_6_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/a43b84ae994d4776a64aba7dc40ad9c9_1126/preview_talk_6_small.webp", - "normal_view_crop_x": 0.18194444477558136, - "pose_name": "Jeff in Casual Suit", - "sort_index": 72, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/a43b84ae994d4776a64aba7dc40ad9c9_1126/preview_video_talk_6.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "jeff", - "avatar_race": "White", - "avatar_style": "Business Attire", - "circle_box": [ - 0.16435185074806213, - 0, - 0.8356481194496155, - 0.6717592477798462 - ], - "close_up_box": [ - 0, - 0, - 1, - 0.6717592477798462 - ], - "close_up_view_crop_x": 0.1893656700849533, - "created_at": 1666257855, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1.100000023841858, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/8016f816e719414781f495dbd18cf872.wav", - "tts_duration": 6.466, - "voice_gender": "male", - "voice_id": "ec4aa6ac882147ffb679176d49f3e41f", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/55b3c12a9874421c90273e8dbdd229e4.wav", - "tts_duration": 5.277, - "voice_gender": "male", - "voice_id": "6648fd92bcba41df809a01712faf9a4a", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "male", - "id": "Jeff-insuit-20220722", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Jeff", - "normal_preview": "https://files.movio.la/avatar/v3/a43b84ae994d4776a64aba7dc40ad9c9_1126/preview_talk_1.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/a43b84ae994d4776a64aba7dc40ad9c9_1126/preview_talk_1_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/a43b84ae994d4776a64aba7dc40ad9c9_1126/preview_talk_1_small.webp", - "normal_view_crop_x": 0.1736111044883728, - "pose_name": "Jeff in Suit", - "sort_index": 73, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/a43b84ae994d4776a64aba7dc40ad9c9_1126/preview_video_talk_1.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "jeff", - "avatar_race": "White", - "avatar_style": "Casual", - "circle_box": [ - 0.20509259402751923, - 0.010185184888541698, - 0.8282407522201538, - 0.6333333253860474 - ], - "close_up_box": [ - 0, - 0.010185184888541698, - 1, - 0.6333333253860474 - ], - "close_up_view_crop_x": 0.1766233742237091, - "created_at": 1666257940, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1.100000023841858, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/8016f816e719414781f495dbd18cf872.wav", - "tts_duration": 6.466, - "voice_gender": "male", - "voice_id": "ec4aa6ac882147ffb679176d49f3e41f", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/55b3c12a9874421c90273e8dbdd229e4.wav", - "tts_duration": 5.277, - "voice_gender": "male", - "voice_id": "6648fd92bcba41df809a01712faf9a4a", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "male", - "id": "Jeff-inTshirt-20220722", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Jeff", - "normal_preview": "https://files.movio.la/avatar/v3/a43b84ae994d4776a64aba7dc40ad9c9_1126/preview_talk_10.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/a43b84ae994d4776a64aba7dc40ad9c9_1126/preview_talk_10_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/a43b84ae994d4776a64aba7dc40ad9c9_1126/preview_talk_10_small.webp", - "normal_view_crop_x": 0.1527777761220932, - "outfit_circle_box": [ - 0.14907407760620117, - 0, - 0.8509259223937988, - 0.7018518447875977 - ], - "outfit_close_up_box": [ - 0.14444445073604584, - 0, - 0.855555534362793, - 0.7018518447875977 - ], - "pose_name": "Jeff in T-shirt", - "sort_index": 71, - "start_speech_offset": 0.5, - "support_4k": true, - "support_ai_outfit": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/a43b84ae994d4776a64aba7dc40ad9c9_1126/preview_video_talk_10.mp4" - } - } - ], - "created_at": 1658828334, - "gender": "male", - "name": "Jeff" - }, - { - "avatar_id": 1658826953, - "avatar_states": [ - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "jerome", - "avatar_race": "African American", - "avatar_style": "Casual", - "circle_box": [ - 0.20972222089767456, - 0, - 0.8291666507720947, - 0.6199073791503906 - ], - "close_up_box": [ - 0, - 0, - 1, - 0.6199073791503906 - ], - "close_up_view_crop_x": 0.17743325233459473, - "created_at": 1664551346, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/6d58ceca4e9848509a4a6c70ee663707.wav", - "tts_duration": 6.651, - "voice_gender": "male", - "voice_id": "3fbd2cac3ddd4c109e17296e324845ec", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/b478d4a628d249c1ba53637ec5451c10.wav", - "tts_duration": 4.728, - "voice_gender": "male", - "voice_id": "23e526605d744f66b85a7eb5116db028", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "male", - "id": "Jerome-inwhiteTshirt-20220722", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Jerome", - "normal_preview": "https://files.movio.la/avatar/v3/05c935f6bd9b48d696f75cfa7efb2714_1065/preview_target.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/05c935f6bd9b48d696f75cfa7efb2714_1065/preview_target_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/05c935f6bd9b48d696f75cfa7efb2714_1065/preview_target_small.webp", - "normal_view_crop_x": 0.15694443881511688, - "outfit_circle_box": [ - 0.14907407760620117, - 0, - 0.8509259223937988, - 0.7018518447875977 - ], - "outfit_close_up_box": [ - 0.14444445073604584, - 0, - 0.855555534362793, - 0.7018518447875977 - ], - "pose_name": "Jerome in White T-shirt", - "sort_index": 63, - "start_speech_offset": 0.5, - "support_4k": true, - "support_ai_outfit": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/05c935f6bd9b48d696f75cfa7efb2714_1065/preview_video_target.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "jerome", - "avatar_race": "African American", - "avatar_style": "Business Attire", - "circle_box": [ - 0.19583334028720856, - 0, - 0.8050925731658936, - 0.6092592477798462 - ], - "close_up_box": [ - 0, - 0, - 1, - 0.6092592477798462 - ], - "close_up_view_crop_x": 0.18612521886825562, - "created_at": 1664551379, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/6d58ceca4e9848509a4a6c70ee663707.wav", - "tts_duration": 6.651, - "voice_gender": "male", - "voice_id": "3fbd2cac3ddd4c109e17296e324845ec", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/b478d4a628d249c1ba53637ec5451c10.wav", - "tts_duration": 4.728, - "voice_gender": "male", - "voice_id": "23e526605d744f66b85a7eb5116db028", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "male", - "id": "Jerome-insuit-20220722", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Jerome", - "normal_preview": "https://files.movio.la/avatar/v3/05c935f6bd9b48d696f75cfa7efb2714_1065/preview_talk_3.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/05c935f6bd9b48d696f75cfa7efb2714_1065/preview_talk_3_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/05c935f6bd9b48d696f75cfa7efb2714_1065/preview_talk_3_small.webp", - "normal_view_crop_x": 0.1597222238779068, - "pose_name": "Jerome in Suit", - "sort_index": 65, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/05c935f6bd9b48d696f75cfa7efb2714_1065/preview_video_talk_3.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "jerome", - "avatar_race": "African American", - "avatar_style": "Business Casual", - "circle_box": [ - 0.21157407760620117, - 0, - 0.8060185313224792, - 0.5949074029922485 - ], - "close_up_box": [ - 0, - 0, - 1, - 0.5949074029922485 - ], - "close_up_view_crop_x": 0.20909090340137482, - "created_at": 1664551399, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/6d58ceca4e9848509a4a6c70ee663707.wav", - "tts_duration": 6.651, - "voice_gender": "male", - "voice_id": "3fbd2cac3ddd4c109e17296e324845ec", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/b478d4a628d249c1ba53637ec5451c10.wav", - "tts_duration": 4.728, - "voice_gender": "male", - "voice_id": "23e526605d744f66b85a7eb5116db028", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "male", - "id": "Jerome-inshirt-20220722", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Jerome", - "normal_preview": "https://files.movio.la/avatar/v3/05c935f6bd9b48d696f75cfa7efb2714_1065/preview_talk_6.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/05c935f6bd9b48d696f75cfa7efb2714_1065/preview_talk_6_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/05c935f6bd9b48d696f75cfa7efb2714_1065/preview_talk_6_small.webp", - "normal_view_crop_x": 0.18472221493721008, - "pose_name": "Jerome in Shirt", - "sort_index": 64, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/05c935f6bd9b48d696f75cfa7efb2714_1065/preview_video_talk_6.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "jerome", - "avatar_race": "African American", - "avatar_style": "Casual", - "circle_box": [ - 0.1805555522441864, - 0.0027777778450399637, - 0.7907407283782959, - 0.6134259104728699 - ], - "close_up_box": [ - 0, - 0.0027777778450399637, - 1, - 0.6134259104728699 - ], - "close_up_view_crop_x": 0.19168786704540253, - "created_at": 1664551417, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/6d58ceca4e9848509a4a6c70ee663707.wav", - "tts_duration": 6.651, - "voice_gender": "male", - "voice_id": "3fbd2cac3ddd4c109e17296e324845ec", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/b478d4a628d249c1ba53637ec5451c10.wav", - "tts_duration": 4.728, - "voice_gender": "male", - "voice_id": "23e526605d744f66b85a7eb5116db028", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "male", - "id": "Jerome-inpinkTshirt-20220722", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Jerome", - "normal_preview": "https://files.movio.la/avatar/v3/05c935f6bd9b48d696f75cfa7efb2714_1065/preview_talk_9.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/05c935f6bd9b48d696f75cfa7efb2714_1065/preview_talk_9_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/05c935f6bd9b48d696f75cfa7efb2714_1065/preview_talk_9_small.webp", - "normal_view_crop_x": 0.1805555522441864, - "pose_name": "Jerome in Pink T-shirt", - "sort_index": 62, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/05c935f6bd9b48d696f75cfa7efb2714_1065/preview_video_talk_9.mp4" - } - } - ], - "created_at": 1658826953, - "gender": "male", - "name": "Jerome" - }, - { - "avatar_id": 1661171563, - "avatar_states": [ - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "joon", - "avatar_race": "Asian", - "avatar_style": "Casual", - "circle_box": [ - 0.17638888955116272, - 0, - 0.8578703999519348, - 0.6814814805984497 - ], - "close_up_box": [ - 0, - 0, - 1, - 0.6814814805984497 - ], - "close_up_view_crop_x": 0.14664143323898315, - "created_at": 1664550276, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1.100000023841858, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/6a6e5c5bfec243ac989d900f8404f5cc.wav", - "tts_duration": 6.43, - "voice_gender": "male", - "voice_id": "beaa640abaa24c32bea33b280d2f5ea3", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1.100000023841858, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/dadce47caf584e9695b48df3193bf609.wav", - "tts_duration": 6.43, - "voice_gender": "male", - "voice_id": "beaa640abaa24c32bea33b280d2f5ea3", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "male", - "id": "Joon-inblackshirt-20220821", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Joon", - "normal_preview": "https://files.movio.la/avatar/v3/f4712d6634514500b2cbcacd3aaef64b_1058/preview_talk_2.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/f4712d6634514500b2cbcacd3aaef64b_1058/preview_talk_2_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/f4712d6634514500b2cbcacd3aaef64b_1058/preview_talk_2_small.webp", - "normal_view_crop_x": 0.13333334028720856, - "outfit_circle_box": [ - 0.11666666716337204, - 0, - 0.8833333253860474, - 0.7666666507720947 - ], - "outfit_close_up_box": [ - 0.09814814478158951, - 0, - 0.9018518328666687, - 0.7666666507720947 - ], - "pose_name": "Joon in Black Shirt", - "sort_index": 40, - "start_speech_offset": 0.5, - "support_4k": true, - "support_ai_outfit": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/f4712d6634514500b2cbcacd3aaef64b_1058/preview_video_talk_2.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "joon", - "avatar_race": "Asian", - "avatar_style": "Business Attire", - "circle_box": [ - 0.17731481790542603, - 0, - 0.8300926089286804, - 0.6532407402992249 - ], - "close_up_box": [ - 0, - 0, - 1, - 0.6532407402992249 - ], - "close_up_view_crop_x": 0.1851179599761963, - "created_at": 1664550369, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1.100000023841858, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/6a6e5c5bfec243ac989d900f8404f5cc.wav", - "tts_duration": 6.43, - "voice_gender": "male", - "voice_id": "beaa640abaa24c32bea33b280d2f5ea3", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1.100000023841858, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/dadce47caf584e9695b48df3193bf609.wav", - "tts_duration": 6.43, - "voice_gender": "male", - "voice_id": "beaa640abaa24c32bea33b280d2f5ea3", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "male", - "id": "Joon-insuit-20220821", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Joon", - "normal_preview": "https://files.movio.la/avatar/v3/f4712d6634514500b2cbcacd3aaef64b_1058/preview_talk_4.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/f4712d6634514500b2cbcacd3aaef64b_1058/preview_talk_4_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/f4712d6634514500b2cbcacd3aaef64b_1058/preview_talk_4_small.webp", - "normal_view_crop_x": 0.14722222089767456, - "pose_name": "Joon in Suit", - "sort_index": 42, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/f4712d6634514500b2cbcacd3aaef64b_1058/preview_video_talk_4.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "joon", - "avatar_race": "Asian", - "avatar_style": "Business Casual", - "circle_box": [ - 0.18425926566123962, - 0, - 0.8268518447875977, - 0.6430555582046509 - ], - "close_up_box": [ - 0, - 0, - 1, - 0.6430555582046509 - ], - "close_up_view_crop_x": 0.17678570747375488, - "created_at": 1664550415, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1.100000023841858, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/6a6e5c5bfec243ac989d900f8404f5cc.wav", - "tts_duration": 6.43, - "voice_gender": "male", - "voice_id": "beaa640abaa24c32bea33b280d2f5ea3", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1.100000023841858, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/dadce47caf584e9695b48df3193bf609.wav", - "tts_duration": 6.43, - "voice_gender": "male", - "voice_id": "beaa640abaa24c32bea33b280d2f5ea3", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "male", - "id": "Joon-incasualsuit-20220821", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Joon", - "normal_preview": "https://files.movio.la/avatar/v3/f4712d6634514500b2cbcacd3aaef64b_1058/preview_talk_6.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/f4712d6634514500b2cbcacd3aaef64b_1058/preview_talk_6_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/f4712d6634514500b2cbcacd3aaef64b_1058/preview_talk_6_small.webp", - "normal_view_crop_x": 0.14027777314186096, - "pose_name": "Joon in Casual Suit", - "sort_index": 41, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/f4712d6634514500b2cbcacd3aaef64b_1058/preview_video_talk_6.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "joon", - "avatar_race": "Asian", - "avatar_style": "Casual", - "circle_box": [ - 0.1796296238899231, - 0, - 0.8361111283302307, - 0.6564815044403076 - ], - "close_up_box": [ - 0, - 0, - 1, - 0.6564815044403076 - ], - "close_up_view_crop_x": 0.17775751650333405, - "created_at": 1664550499, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1.100000023841858, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/6a6e5c5bfec243ac989d900f8404f5cc.wav", - "tts_duration": 6.43, - "voice_gender": "male", - "voice_id": "beaa640abaa24c32bea33b280d2f5ea3", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1.100000023841858, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/dadce47caf584e9695b48df3193bf609.wav", - "tts_duration": 6.43, - "voice_gender": "male", - "voice_id": "beaa640abaa24c32bea33b280d2f5ea3", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "male", - "id": "Joon-inwhiteshirt-20220821", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Joon", - "normal_preview": "https://files.movio.la/avatar/v3/f4712d6634514500b2cbcacd3aaef64b_1058/preview_talk_8.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/f4712d6634514500b2cbcacd3aaef64b_1058/preview_talk_8_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/f4712d6634514500b2cbcacd3aaef64b_1058/preview_talk_8_small.webp", - "normal_view_crop_x": 0.14166666567325592, - "pose_name": "Joon in White Shirt", - "sort_index": 39, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/f4712d6634514500b2cbcacd3aaef64b_1058/preview_video_talk_8.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "joon", - "avatar_race": "Asian", - "avatar_style": "Casual", - "circle_box": [ - 0.17037037014961243, - 0, - 0.8259259462356567, - 0.6560184955596924 - ], - "close_up_box": [ - 0, - 0, - 1, - 0.6560184955596924 - ], - "close_up_view_crop_x": 0.1803278625011444, - "created_at": 1664550525, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1.100000023841858, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/6a6e5c5bfec243ac989d900f8404f5cc.wav", - "tts_duration": 6.43, - "voice_gender": "male", - "voice_id": "beaa640abaa24c32bea33b280d2f5ea3", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1.100000023841858, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/dadce47caf584e9695b48df3193bf609.wav", - "tts_duration": 6.43, - "voice_gender": "male", - "voice_id": "beaa640abaa24c32bea33b280d2f5ea3", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "male", - "id": "Joon-inyellowshirt-20220821", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Joon", - "normal_preview": "https://files.movio.la/avatar/v3/f4712d6634514500b2cbcacd3aaef64b_1058/preview_talk_10.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/f4712d6634514500b2cbcacd3aaef64b_1058/preview_talk_10_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/f4712d6634514500b2cbcacd3aaef64b_1058/preview_talk_10_small.webp", - "normal_view_crop_x": 0.14722222089767456, - "pose_name": "Joon in Yellow Shirt", - "sort_index": 38, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/f4712d6634514500b2cbcacd3aaef64b_1058/preview_video_talk_10.mp4" - } - } - ], - "created_at": 1661171563, - "gender": "male", - "name": "Joon" - }, - { - "avatar_id": 1691584618, - "avatar_states": [ - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "joshua_public", - "avatar_race": "", - "avatar_style": "", - "circle_box": [ - 0.2619791626930237, - 0, - 0.7203124761581421, - 0.8157407641410828 - ], - "close_up_box": [ - 0.0833333358168602, - 0, - 0.8989583253860474, - 0.8157407641410828 - ], - "close_up_view_crop_x": 0, - "created_at": 1691584618, - "custom_avatar_type": "lite", - "end_speech_offset": 0.5, - "gender": "male", - "id": "josh_lite_public_20230714", - "is_customer": true, - "is_demo": false, - "is_favorite": false, - "is_finetune": true, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": true, - "name": "Josh", - "normal_preview": "https://files.movio.la/avatar/v3/2072d60780d042b0908b09ea4fc1c6b7_3011/preview_target.webp", - "normal_preview_height": 720, - "normal_preview_width": 1280, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/2072d60780d042b0908b09ea4fc1c6b7_3011/preview_target_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/2072d60780d042b0908b09ea4fc1c6b7_3011/preview_target_small.webp", - "normal_view_crop_x": 0, - "pose_name": "Josh HeyGen CEO", - "sort_index": 15, - "start_speech_offset": 0.5, - "support_4k": false, - "support_eye_contact": false, - "support_matting": true, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/2072d60780d042b0908b09ea4fc1c6b7_3011/preview_video_target.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "joshua_public", - "avatar_race": "", - "avatar_style": "", - "circle_box": [ - 0.2802083194255829, - 0, - 0.8427083492279053, - 1 - ], - "close_up_box": [ - 0.12291666865348816, - 0, - 1, - 1 - ], - "close_up_view_crop_x": 0, - "created_at": 1691584688, - "custom_avatar_type": "lite", - "end_speech_offset": 0.5, - "gender": "male", - "id": "josh_lite3_public_20230714", - "is_customer": true, - "is_demo": false, - "is_favorite": false, - "is_finetune": true, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": true, - "name": "Josh", - "normal_preview": "https://files.movio.la/avatar/v3/10063c743f114722ab6538b35905c51c_3013/preview_target.webp", - "normal_preview_height": 720, - "normal_preview_width": 1280, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/10063c743f114722ab6538b35905c51c_3013/preview_target_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/10063c743f114722ab6538b35905c51c_3013/preview_target_small.webp", - "normal_view_crop_x": 0, - "pose_name": "Josh HeyGen CEO", - "sort_index": 14, - "start_speech_offset": 0.5, - "support_4k": false, - "support_eye_contact": false, - "support_matting": true, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/10063c743f114722ab6538b35905c51c_3013/preview_video_target.mp4" - } - } - ], - "created_at": 1691584618, - "gender": "male", - "name": "Josh" - }, - { - "avatar_id": 1660829487, - "avatar_states": [ - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "kayla", - "avatar_race": "White", - "avatar_style": "Business Casual", - "circle_box": [ - 0.19583334028720856, - 0, - 0.8273147940635681, - 0.6319444179534912 - ], - "close_up_box": [ - 0, - 0, - 1, - 0.6319444179534912 - ], - "close_up_view_crop_x": 0.20017559826374054, - "created_at": 1665320076, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1.100000023841858, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/39beb20432a741b5a35340bb8d57d0d3.wav", - "tts_duration": 6.455, - "voice_gender": "female", - "voice_id": "2d5b0e6cf36f460aa7fc47e3eee4ba54", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/5bbe5a2cf159454fb4a4d0ed1e788344.wav", - "tts_duration": 5.564, - "voice_gender": "female", - "voice_id": "c29568d0e4a54715bb62bb40daa67875", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "female", - "id": "Kayla-incasualsuit-20220818", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Kayla", - "normal_preview": "https://files.movio.la/avatar/v3/bf83f0f830794d90b509ba6524962e05_1079/preview_talk_2.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/bf83f0f830794d90b509ba6524962e05_1079/preview_talk_2_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/bf83f0f830794d90b509ba6524962e05_1079/preview_talk_2_small.webp", - "normal_view_crop_x": 0.16527777910232544, - "pose_name": "Kayla in Casual Suit", - "sort_index": 59, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/bf83f0f830794d90b509ba6524962e05_1079/preview_video_talk_2.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "kayla", - "avatar_race": "White", - "avatar_style": "Casual", - "circle_box": [ - 0.19120369851589203, - 0, - 0.822685182094574, - 0.6314814686775208 - ], - "close_up_box": [ - 0, - 0, - 1, - 0.6314814686775208 - ], - "close_up_view_crop_x": 0.20964911580085754, - "created_at": 1665320104, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1.100000023841858, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/39beb20432a741b5a35340bb8d57d0d3.wav", - "tts_duration": 6.455, - "voice_gender": "female", - "voice_id": "2d5b0e6cf36f460aa7fc47e3eee4ba54", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/5bbe5a2cf159454fb4a4d0ed1e788344.wav", - "tts_duration": 5.564, - "voice_gender": "female", - "voice_id": "c29568d0e4a54715bb62bb40daa67875", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "female", - "id": "Kayla-insweater-20220818", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Kayla", - "normal_preview": "https://files.movio.la/avatar/v3/bf83f0f830794d90b509ba6524962e05_1079/preview_talk_5.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/bf83f0f830794d90b509ba6524962e05_1079/preview_talk_5_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/bf83f0f830794d90b509ba6524962e05_1079/preview_talk_5_small.webp", - "normal_view_crop_x": 0.18472221493721008, - "outfit_circle_box": [ - 0.14907407760620117, - 0, - 0.8509259223937988, - 0.7018518447875977 - ], - "outfit_close_up_box": [ - 0.14444445073604584, - 0, - 0.855555534362793, - 0.7018518447875977 - ], - "pose_name": "Kayla in Shirt", - "sort_index": 57, - "start_speech_offset": 0.5, - "support_4k": true, - "support_ai_outfit": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/bf83f0f830794d90b509ba6524962e05_1079/preview_video_talk_5.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "kayla", - "avatar_race": "White", - "avatar_style": "Smart Casual", - "circle_box": [ - 0.17407406866550446, - 0.0032407406251877546, - 0.8111110925674438, - 0.6402778029441833 - ], - "close_up_box": [ - 0, - 0.0032407406251877546, - 1, - 0.6402778029441833 - ], - "close_up_view_crop_x": 0.21681416034698486, - "created_at": 1665320198, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1.100000023841858, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/39beb20432a741b5a35340bb8d57d0d3.wav", - "tts_duration": 6.455, - "voice_gender": "female", - "voice_id": "2d5b0e6cf36f460aa7fc47e3eee4ba54", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/5bbe5a2cf159454fb4a4d0ed1e788344.wav", - "tts_duration": 5.564, - "voice_gender": "female", - "voice_id": "c29568d0e4a54715bb62bb40daa67875", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "female", - "id": "Kayla-inchiffon-20220818", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Kayla", - "normal_preview": "https://files.movio.la/avatar/v3/bf83f0f830794d90b509ba6524962e05_1079/preview_talk_6.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/bf83f0f830794d90b509ba6524962e05_1079/preview_talk_6_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/bf83f0f830794d90b509ba6524962e05_1079/preview_talk_6_small.webp", - "normal_view_crop_x": 0.1736111044883728, - "pose_name": "Kayla in Chiffon", - "sort_index": 58, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/bf83f0f830794d90b509ba6524962e05_1079/preview_video_talk_6.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "kayla", - "avatar_race": "White", - "avatar_style": "Business Casual", - "circle_box": [ - 0.21064814925193787, - 0.0069444444961845875, - 0.8282407522201538, - 0.625 - ], - "close_up_box": [ - 0, - 0.0069444444961845875, - 1, - 0.625 - ], - "close_up_view_crop_x": 0.20858369767665863, - "created_at": 1665320025, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1.100000023841858, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/39beb20432a741b5a35340bb8d57d0d3.wav", - "tts_duration": 6.455, - "voice_gender": "female", - "voice_id": "2d5b0e6cf36f460aa7fc47e3eee4ba54", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/5bbe5a2cf159454fb4a4d0ed1e788344.wav", - "tts_duration": 5.564, - "voice_gender": "female", - "voice_id": "c29568d0e4a54715bb62bb40daa67875", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "female", - "id": "Kayla-insuit-20220819", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Kayla", - "normal_preview": "https://files.movio.la/avatar/v3/bf83f0f830794d90b509ba6524962e05_1079/preview_target.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/bf83f0f830794d90b509ba6524962e05_1079/preview_target_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/bf83f0f830794d90b509ba6524962e05_1079/preview_target_small.webp", - "normal_view_crop_x": 0.17222222685813904, - "pose_name": "Kayla in Suit", - "sort_index": 60, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/bf83f0f830794d90b509ba6524962e05_1079/preview_video_target.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "kayla", - "avatar_race": "White", - "avatar_style": "Smart Casual", - "circle_box": [ - 0.19861111044883728, - 0, - 0.8263888955116272, - 0.6282407641410828 - ], - "close_up_box": [ - 0, - 0, - 1, - 0.6282407641410828 - ], - "close_up_view_crop_x": 0.2181500941514969, - "created_at": 1665320303, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1.100000023841858, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/39beb20432a741b5a35340bb8d57d0d3.wav", - "tts_duration": 6.455, - "voice_gender": "female", - "voice_id": "2d5b0e6cf36f460aa7fc47e3eee4ba54", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/5bbe5a2cf159454fb4a4d0ed1e788344.wav", - "tts_duration": 5.564, - "voice_gender": "female", - "voice_id": "c29568d0e4a54715bb62bb40daa67875", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "female", - "id": "Kayla-inturtleneck-20220818", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Kayla", - "normal_preview": "https://files.movio.la/avatar/v3/bf83f0f830794d90b509ba6524962e05_1079/preview_talk_9.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/bf83f0f830794d90b509ba6524962e05_1079/preview_talk_9_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/bf83f0f830794d90b509ba6524962e05_1079/preview_talk_9_small.webp", - "normal_view_crop_x": 0.18888889253139496, - "pose_name": "Kayla in Turtleneck", - "sort_index": 56, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/bf83f0f830794d90b509ba6524962e05_1079/preview_video_talk_9.mp4" - } - } - ], - "created_at": 1660829487, - "gender": "female", - "name": "Kayla" - }, - { - "avatar_id": 1659495234, - "avatar_states": [ - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "kent", - "avatar_race": "White", - "avatar_style": "Casual", - "circle_box": [ - 0.18611110746860504, - 0, - 0.7564814686775208, - 0.5703703761100769 - ], - "close_up_box": [ - 0, - 0, - 0.9782407283782959, - 0.5703703761100769 - ], - "close_up_view_crop_x": 0.20356912910938263, - "created_at": 1664551226, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/9a5d2b9182324fe09c755af3fb7e258d.wav", - "tts_duration": 6.526, - "voice_gender": "male", - "voice_id": "f5a3cb4edbfc4d37b5614ce118be7bc8", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/b51e2fdb1dbe40aa827ce2f566835939.wav", - "tts_duration": 6.526, - "voice_gender": "male", - "voice_id": "f5a3cb4edbfc4d37b5614ce118be7bc8", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "male", - "id": "Kent-inpolo-20220728", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Kent", - "normal_preview": "https://files.movio.la/avatar/v3/f539d51cc23d462f84c68354064dc76d_1057/preview_target.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/f539d51cc23d462f84c68354064dc76d_1057/preview_target_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/f539d51cc23d462f84c68354064dc76d_1057/preview_target_small.webp", - "normal_view_crop_x": 0.17916665971279144, - "pose_name": "Kent in Polo", - "sort_index": 53, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/f539d51cc23d462f84c68354064dc76d_1057/preview_video_target.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "kent", - "avatar_race": "White", - "avatar_style": "Business Attire", - "circle_box": [ - 0.1814814805984497, - 0, - 0.7638888955116272, - 0.582870364189148 - ], - "close_up_box": [ - 0, - 0, - 0.9907407164573669, - 0.582870364189148 - ], - "close_up_view_crop_x": 0.20883260667324066, - "created_at": 1664551254, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/9a5d2b9182324fe09c755af3fb7e258d.wav", - "tts_duration": 6.526, - "voice_gender": "male", - "voice_id": "f5a3cb4edbfc4d37b5614ce118be7bc8", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/b51e2fdb1dbe40aa827ce2f566835939.wav", - "tts_duration": 6.526, - "voice_gender": "male", - "voice_id": "f5a3cb4edbfc4d37b5614ce118be7bc8", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "male", - "id": "Kent-insuit-20220728", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Kent", - "normal_preview": "https://files.movio.la/avatar/v3/f539d51cc23d462f84c68354064dc76d_1057/preview_talk_3.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/f539d51cc23d462f84c68354064dc76d_1057/preview_talk_3_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/f539d51cc23d462f84c68354064dc76d_1057/preview_talk_3_small.webp", - "normal_view_crop_x": 0.1597222238779068, - "outfit_circle_box": [ - 0.14907407760620117, - 0, - 0.8509259223937988, - 0.7018518447875977 - ], - "outfit_close_up_box": [ - 0.14444445073604584, - 0, - 0.855555534362793, - 0.7018518447875977 - ], - "pose_name": "Kent in Suit", - "sort_index": 54, - "start_speech_offset": 0.5, - "support_4k": true, - "support_ai_outfit": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/f539d51cc23d462f84c68354064dc76d_1057/preview_video_talk_3.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "kent", - "avatar_race": "White", - "avatar_style": "Smart Casual", - "circle_box": [ - 0.2152777761220932, - 0, - 0.8041666746139526, - 0.5888888835906982 - ], - "close_up_box": [ - 0, - 0, - 1, - 0.5888888835906982 - ], - "close_up_view_crop_x": 0.200327068567276, - "created_at": 1664551277, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/9a5d2b9182324fe09c755af3fb7e258d.wav", - "tts_duration": 6.526, - "voice_gender": "male", - "voice_id": "f5a3cb4edbfc4d37b5614ce118be7bc8", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/b51e2fdb1dbe40aa827ce2f566835939.wav", - "tts_duration": 6.526, - "voice_gender": "male", - "voice_id": "f5a3cb4edbfc4d37b5614ce118be7bc8", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "male", - "id": "Kent-inTshirt-20220728", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Kent", - "normal_preview": "https://files.movio.la/avatar/v3/f539d51cc23d462f84c68354064dc76d_1057/preview_talk_4.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/f539d51cc23d462f84c68354064dc76d_1057/preview_talk_4_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/f539d51cc23d462f84c68354064dc76d_1057/preview_talk_4_small.webp", - "normal_view_crop_x": 0.16388888657093048, - "pose_name": "Kent in T-shirt", - "sort_index": 51, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/f539d51cc23d462f84c68354064dc76d_1057/preview_video_talk_4.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "kent", - "avatar_race": "White", - "avatar_style": "Casual", - "circle_box": [ - 0.18703703582286835, - 0, - 0.8046296238899231, - 0.6180555820465088 - ], - "close_up_box": [ - 0, - 0, - 1, - 0.6180555820465088 - ], - "close_up_view_crop_x": 0.19313304126262665, - "created_at": 1664551296, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/9a5d2b9182324fe09c755af3fb7e258d.wav", - "tts_duration": 6.526, - "voice_gender": "male", - "voice_id": "f5a3cb4edbfc4d37b5614ce118be7bc8", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/b51e2fdb1dbe40aa827ce2f566835939.wav", - "tts_duration": 6.526, - "voice_gender": "male", - "voice_id": "f5a3cb4edbfc4d37b5614ce118be7bc8", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "male", - "id": "Kent-inshirt-20220728", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Kent", - "normal_preview": "https://files.movio.la/avatar/v3/f539d51cc23d462f84c68354064dc76d_1057/preview_talk_7.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/f539d51cc23d462f84c68354064dc76d_1057/preview_talk_7_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/f539d51cc23d462f84c68354064dc76d_1057/preview_talk_7_small.webp", - "normal_view_crop_x": 0.16111111640930176, - "pose_name": "Kent in Button Down", - "sort_index": 52, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/f539d51cc23d462f84c68354064dc76d_1057/preview_video_talk_7.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "kent", - "avatar_race": "White", - "avatar_style": "Casual", - "circle_box": [ - 0.19074073433876038, - 0.007870370522141457, - 0.8046296238899231, - 0.6217592358589172 - ], - "close_up_box": [ - 0, - 0.007870370522141457, - 1, - 0.6217592358589172 - ], - "close_up_view_crop_x": 0.20716112852096558, - "created_at": 1664551315, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/9a5d2b9182324fe09c755af3fb7e258d.wav", - "tts_duration": 6.526, - "voice_gender": "male", - "voice_id": "f5a3cb4edbfc4d37b5614ce118be7bc8", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/b51e2fdb1dbe40aa827ce2f566835939.wav", - "tts_duration": 6.526, - "voice_gender": "male", - "voice_id": "f5a3cb4edbfc4d37b5614ce118be7bc8", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "male", - "id": "Kent-inhoodie-20220728", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Kent", - "normal_preview": "https://files.movio.la/avatar/v3/f539d51cc23d462f84c68354064dc76d_1057/preview_talk_9.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/f539d51cc23d462f84c68354064dc76d_1057/preview_talk_9_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/f539d51cc23d462f84c68354064dc76d_1057/preview_talk_9_small.webp", - "normal_view_crop_x": 0.17499999701976776, - "pose_name": "Kent in Hoodie", - "sort_index": 50, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/f539d51cc23d462f84c68354064dc76d_1057/preview_video_talk_9.mp4" - } - } - ], - "created_at": 1659495234, - "gender": "male", - "name": "Kent" - }, - { - "avatar_id": 1669694956, - "avatar_states": [ - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "matthew", - "avatar_race": "", - "avatar_style": "", - "circle_box": [ - 0.2513020932674408, - 0, - 0.6856771111488342, - 0.772685170173645 - ], - "close_up_box": [ - 0.08203125, - 0, - 0.854687511920929, - 0.772685170173645 - ], - "close_up_view_crop_x": 0, - "created_at": 1669694956, - "custom_avatar_type": "lite", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1.100000023841858, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/251413a389714f299555e1838be754db.wav", - "tts_duration": 6.466, - "voice_gender": "male", - "voice_id": "ec4aa6ac882147ffb679176d49f3e41f", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/f40a7fc17f6b41638b37344ed137666b.wav", - "tts_duration": 5.016, - "voice_gender": "male", - "voice_id": "6648fd92bcba41df809a01712faf9a4a", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "male", - "id": "Mido-lite-20221128", - "is_customer": true, - "is_demo": false, - "is_favorite": false, - "is_finetune": true, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": true, - "name": "Matthew", - "normal_preview": "https://files.movio.la/avatar/v3/5c304ab1e7534e2c887e2f795fbe6568_1354/preview_talk_1.webp", - "normal_preview_height": 720, - "normal_preview_width": 1280, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/5c304ab1e7534e2c887e2f795fbe6568_1354/preview_talk_1_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/5c304ab1e7534e2c887e2f795fbe6568_1354/preview_talk_1_small.webp", - "normal_view_crop_x": 0, - "pose_name": "Matthew", - "sort_index": 5, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/5c304ab1e7534e2c887e2f795fbe6568_1354/preview_video_talk_1.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "matthew", - "avatar_race": "White", - "avatar_style": "Business Attire", - "circle_box": [ - 0.20694445073604584, - 0, - 0.8467592597007751, - 0.6398147940635681 - ], - "close_up_box": [ - 0, - 0, - 1, - 0.6398147940635681 - ], - "close_up_view_crop_x": 0.15962837636470795, - "created_at": 1670550247, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1.100000023841858, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/251413a389714f299555e1838be754db.wav", - "tts_duration": 6.466, - "voice_gender": "male", - "voice_id": "ec4aa6ac882147ffb679176d49f3e41f", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/f40a7fc17f6b41638b37344ed137666b.wav", - "tts_duration": 5.016, - "voice_gender": "male", - "voice_id": "6648fd92bcba41df809a01712faf9a4a", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "male", - "id": "Mido-pro-insuit-20221208", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Matthew", - "normal_preview": "https://files.movio.la/avatar/v3/b2464b1b3d6d4e8d8b3695a4cbc3bba5_1434/preview_target.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/b2464b1b3d6d4e8d8b3695a4cbc3bba5_1434/preview_target_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/b2464b1b3d6d4e8d8b3695a4cbc3bba5_1434/preview_target_small.webp", - "normal_view_crop_x": 0.13472221791744232, - "pose_name": "Matthew in Suit", - "sort_index": 117, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/b2464b1b3d6d4e8d8b3695a4cbc3bba5_1434/preview_video_target.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "matthew", - "avatar_race": "White", - "avatar_style": "Smart Casual", - "circle_box": [ - 0.14074073731899261, - 0.03703703731298447, - 0.730555534362793, - 0.6273148059844971 - ], - "close_up_box": [ - 0, - 0.03703703731298447, - 0.9606481194496155, - 0.6273148059844971 - ], - "close_up_view_crop_x": 0.21229340136051178, - "created_at": 1670550344, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1.100000023841858, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/251413a389714f299555e1838be754db.wav", - "tts_duration": 6.466, - "voice_gender": "male", - "voice_id": "ec4aa6ac882147ffb679176d49f3e41f", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/f40a7fc17f6b41638b37344ed137666b.wav", - "tts_duration": 5.016, - "voice_gender": "male", - "voice_id": "6648fd92bcba41df809a01712faf9a4a", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "male", - "id": "Mido-pro-flowershirt-20221208", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Matthew", - "normal_preview": "https://files.movio.la/avatar/v3/448086197fe64997b29c44a479db5853_1435/preview_target.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/448086197fe64997b29c44a479db5853_1435/preview_target_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/448086197fe64997b29c44a479db5853_1435/preview_target_small.webp", - "normal_view_crop_x": 0.20000000298023224, - "pose_name": "Matthew in Flowery Shirt", - "sort_index": 115, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/448086197fe64997b29c44a479db5853_1435/preview_video_target.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "matthew", - "avatar_race": "White", - "avatar_style": "Casual", - "circle_box": [ - 0.17083333432674408, - 0, - 0.7995370626449585, - 0.6291666626930237 - ], - "close_up_box": [ - 0, - 0, - 1, - 0.6291666626930237 - ], - "close_up_view_crop_x": 0.19055944681167603, - "created_at": 1670652942, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1.100000023841858, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/251413a389714f299555e1838be754db.wav", - "tts_duration": 6.466, - "voice_gender": "male", - "voice_id": "ec4aa6ac882147ffb679176d49f3e41f", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/f40a7fc17f6b41638b37344ed137666b.wav", - "tts_duration": 5.016, - "voice_gender": "male", - "voice_id": "6648fd92bcba41df809a01712faf9a4a", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "male", - "id": "Mido-pro-greysweater-20221209", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Matthew", - "normal_preview": "https://files.movio.la/avatar/v3/a0620cb143784340af00d5c9c36605c1_1430/preview_talk_2.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/a0620cb143784340af00d5c9c36605c1_1430/preview_talk_2_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/a0620cb143784340af00d5c9c36605c1_1430/preview_talk_2_small.webp", - "normal_view_crop_x": 0.17638888955116272, - "pose_name": "Matthew in Grey Sweater", - "sort_index": 116, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/a0620cb143784340af00d5c9c36605c1_1430/preview_video_talk_2.mp4" - } - } - ], - "created_at": 1669694956, - "gender": "male", - "name": "Matthew" - }, - { - "avatar_id": 1660891566, - "avatar_states": [ - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "monica", - "avatar_race": "White", - "avatar_style": "Smart Casual", - "circle_box": [ - 0.19907407462596893, - 0.017129629850387573, - 0.7675926089286804, - 0.5856481194496155 - ], - "close_up_box": [ - 0, - 0.017129629850387573, - 0.9884259104728699, - 0.5856481194496155 - ], - "close_up_view_crop_x": 0.19342200458049774, - "created_at": 1666702656, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1.100000023841858, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/4ef99fdefec3406cafe7eb8182db8ac2.wav", - "tts_duration": 6.841, - "voice_gender": "female", - "voice_id": "1bd001e7e50f421d891986aad5158bc8", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/d3a558e15d59477593cb3d36212cf732.wav", - "tts_duration": 5.512, - "voice_gender": "female", - "voice_id": "6d9be61f6e0646f4b6750d3eb03b118f", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "female", - "id": "Monica_inskirt_20220819", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Monica", - "normal_preview": "https://files.movio.la/avatar/v3/6250f18607cc49939541e189b2764248_1157/preview_target.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/6250f18607cc49939541e189b2764248_1157/preview_target_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/6250f18607cc49939541e189b2764248_1157/preview_target_small.webp", - "normal_view_crop_x": 0.20416666567325592, - "pose_name": "Monica in Dress", - "sort_index": 98, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/6250f18607cc49939541e189b2764248_1157/preview_video_target.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "monica", - "avatar_race": "White", - "avatar_style": "Business Attire", - "circle_box": [ - 0.21990740299224854, - 0.03888889029622078, - 0.7745370268821716, - 0.5939815044403076 - ], - "close_up_box": [ - 0.003703703638166189, - 0.03888889029622078, - 0.9907407164573669, - 0.5939815044403076 - ], - "close_up_view_crop_x": 0.23287904262542725, - "created_at": 1665319763, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1.100000023841858, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/4ef99fdefec3406cafe7eb8182db8ac2.wav", - "tts_duration": 6.841, - "voice_gender": "female", - "voice_id": "1bd001e7e50f421d891986aad5158bc8", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/d3a558e15d59477593cb3d36212cf732.wav", - "tts_duration": 5.512, - "voice_gender": "female", - "voice_id": "6d9be61f6e0646f4b6750d3eb03b118f", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "female", - "id": "Monica_insuit_20220819", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Monica", - "normal_preview": "https://files.movio.la/avatar/v3/1c4fa9e9940848748af2cb79f577166d_1085/preview_talk_3.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/1c4fa9e9940848748af2cb79f577166d_1085/preview_talk_3_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/1c4fa9e9940848748af2cb79f577166d_1085/preview_talk_3_small.webp", - "normal_view_crop_x": 0.20555555820465088, - "pose_name": "Monica in Suit", - "sort_index": 100, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/1c4fa9e9940848748af2cb79f577166d_1085/preview_video_talk_3.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "monica", - "avatar_race": "White", - "avatar_style": "Smart Casual", - "circle_box": [ - 0.23657406866550446, - 0.046296294778585434, - 0.782870352268219, - 0.5925925970077515 - ], - "close_up_box": [ - 0.024074073880910873, - 0.046296294778585434, - 0.9953703880310059, - 0.5925925970077515 - ], - "close_up_view_crop_x": 0.2299240529537201, - "created_at": 1665319789, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1.100000023841858, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/4ef99fdefec3406cafe7eb8182db8ac2.wav", - "tts_duration": 6.841, - "voice_gender": "female", - "voice_id": "1bd001e7e50f421d891986aad5158bc8", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/d3a558e15d59477593cb3d36212cf732.wav", - "tts_duration": 5.512, - "voice_gender": "female", - "voice_id": "6d9be61f6e0646f4b6750d3eb03b118f", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "female", - "id": "Monica_inSleeveless _20220819", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Monica", - "normal_preview": "https://files.movio.la/avatar/v3/1c4fa9e9940848748af2cb79f577166d_1085/preview_talk_5.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/1c4fa9e9940848748af2cb79f577166d_1085/preview_talk_5_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/1c4fa9e9940848748af2cb79f577166d_1085/preview_talk_5_small.webp", - "normal_view_crop_x": 0.20416666567325592, - "pose_name": "Monica in Sleeveless", - "sort_index": 99, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/1c4fa9e9940848748af2cb79f577166d_1085/preview_video_talk_5.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "monica", - "avatar_race": "White", - "avatar_style": "Smart Casual", - "circle_box": [ - 0.21574074029922485, - 0.046296294778585434, - 0.7666666507720947, - 0.5976851582527161 - ], - "close_up_box": [ - 0.0009259259095415473, - 0.046296294778585434, - 0.9810185432434082, - 0.5976851582527161 - ], - "close_up_view_crop_x": 0.23124060034751892, - "created_at": 1665319813, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1.100000023841858, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/4ef99fdefec3406cafe7eb8182db8ac2.wav", - "tts_duration": 6.841, - "voice_gender": "female", - "voice_id": "1bd001e7e50f421d891986aad5158bc8", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/d3a558e15d59477593cb3d36212cf732.wav", - "tts_duration": 5.512, - "voice_gender": "female", - "voice_id": "6d9be61f6e0646f4b6750d3eb03b118f", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "female", - "id": "Monica_inshirt_20220819", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Monica", - "normal_preview": "https://files.movio.la/avatar/v3/1c4fa9e9940848748af2cb79f577166d_1085/preview_talk_8.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/1c4fa9e9940848748af2cb79f577166d_1085/preview_talk_8_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/1c4fa9e9940848748af2cb79f577166d_1085/preview_talk_8_small.webp", - "normal_view_crop_x": 0.18888889253139496, - "outfit_circle_box": [ - 0.1537037044763565, - 0, - 0.8462963104248047, - 0.6925926208496094 - ], - "outfit_close_up_box": [ - 0.14444445073604584, - 0, - 0.855555534362793, - 0.6925926208496094 - ], - "pose_name": "Monica in Shirt", - "sort_index": 97, - "start_speech_offset": 0.5, - "support_4k": true, - "support_ai_outfit": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/1c4fa9e9940848748af2cb79f577166d_1085/preview_video_talk_8.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "monica", - "avatar_race": "White", - "avatar_style": "Smart Casual", - "circle_box": [ - 0.23194444179534912, - 0.02638888917863369, - 0.7986111044883728, - 0.5930555462837219 - ], - "close_up_box": [ - 0.011574073694646358, - 0.02638888917863369, - 1, - 0.5930555462837219 - ], - "close_up_view_crop_x": 0.22349758446216583, - "created_at": 1665319835, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1.100000023841858, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/4ef99fdefec3406cafe7eb8182db8ac2.wav", - "tts_duration": 6.841, - "voice_gender": "female", - "voice_id": "1bd001e7e50f421d891986aad5158bc8", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/d3a558e15d59477593cb3d36212cf732.wav", - "tts_duration": 5.512, - "voice_gender": "female", - "voice_id": "6d9be61f6e0646f4b6750d3eb03b118f", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "female", - "id": "Monica_inTskirt_20220819", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Monica", - "normal_preview": "https://files.movio.la/avatar/v3/1c4fa9e9940848748af2cb79f577166d_1085/preview_talk_10.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/1c4fa9e9940848748af2cb79f577166d_1085/preview_talk_10_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/1c4fa9e9940848748af2cb79f577166d_1085/preview_talk_10_small.webp", - "normal_view_crop_x": 0.18333333730697632, - "pose_name": "Monica in Pink Shirt", - "sort_index": 96, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/1c4fa9e9940848748af2cb79f577166d_1085/preview_video_talk_10.mp4" - } - } - ], - "created_at": 1660891566, - "gender": "female", - "name": "Monica" - }, - { - "avatar_id": 1670934013, - "avatar_states": [ - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "tanya", - "avatar_race": "White", - "avatar_style": "Smart Casual", - "circle_box": [ - 0.2083333283662796, - 0.025462962687015533, - 0.8324074149131775, - 0.6495370268821716 - ], - "close_up_box": [ - 0, - 0.025462962687015533, - 1, - 0.6495370268821716 - ], - "close_up_view_crop_x": 0.20710572600364685, - "created_at": 1670934013, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/63540b7dab534a008b1b5c80de47342c.wav", - "tts_duration": 7.238, - "voice_gender": "female", - "voice_id": "fd6bf3b9c3254137aefbe36972c39349", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/c7754eab598546c48821e2f2816734e2.wav", - "tts_duration": 5.198, - "voice_gender": "female", - "voice_id": "c29568d0e4a54715bb62bb40daa67875", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "female", - "id": "Tatiana-pro-Vskirt-20221213", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Tanya", - "normal_preview": "https://files.movio.la/avatar/v3/2f2769e0040f4037a6a16f59ad3cc1a2_1456/preview_target.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/2f2769e0040f4037a6a16f59ad3cc1a2_1456/preview_target_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/2f2769e0040f4037a6a16f59ad3cc1a2_1456/preview_target_small.webp", - "normal_view_crop_x": 0.1736111044883728, - "pose_name": "Tanya in Flowery Shirt", - "sort_index": 111, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/2f2769e0040f4037a6a16f59ad3cc1a2_1456/preview_video_target.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "tanya", - "avatar_race": "White", - "avatar_style": "Business Casual", - "circle_box": [ - 0.19953703880310059, - 0, - 0.8717592358589172, - 0.6722221970558167 - ], - "close_up_box": [ - 0, - 0, - 1, - 0.6722221970558167 - ], - "close_up_view_crop_x": 0.188608780503273, - "created_at": 1670934110, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/63540b7dab534a008b1b5c80de47342c.wav", - "tts_duration": 7.238, - "voice_gender": "female", - "voice_id": "fd6bf3b9c3254137aefbe36972c39349", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/c7754eab598546c48821e2f2816734e2.wav", - "tts_duration": 5.198, - "voice_gender": "female", - "voice_id": "c29568d0e4a54715bb62bb40daa67875", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "female", - "id": "Tatiana-pro-greysuit-20221213", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Tanya", - "normal_preview": "https://files.movio.la/avatar/v3/2f2769e0040f4037a6a16f59ad3cc1a2_1456/preview_talk_5.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/2f2769e0040f4037a6a16f59ad3cc1a2_1456/preview_talk_5_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/2f2769e0040f4037a6a16f59ad3cc1a2_1456/preview_talk_5_small.webp", - "normal_view_crop_x": 0.15833333134651184, - "pose_name": "Tanya in Grey Shirt", - "sort_index": 112, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/2f2769e0040f4037a6a16f59ad3cc1a2_1456/preview_video_talk_5.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "tanya", - "avatar_race": "White", - "avatar_style": "Business Attire", - "circle_box": [ - 0.19027778506278992, - 0.011111111380159855, - 0.8097222447395325, - 0.6310185194015503 - ], - "close_up_box": [ - 0, - 0.011111111380159855, - 1, - 0.6310185194015503 - ], - "close_up_view_crop_x": 0.1946597695350647, - "created_at": 1670934163, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/63540b7dab534a008b1b5c80de47342c.wav", - "tts_duration": 7.238, - "voice_gender": "female", - "voice_id": "fd6bf3b9c3254137aefbe36972c39349", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/c7754eab598546c48821e2f2816734e2.wav", - "tts_duration": 5.198, - "voice_gender": "female", - "voice_id": "c29568d0e4a54715bb62bb40daa67875", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "female", - "id": "Tatiana-pro-blacksuit-20221213", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Tanya", - "normal_preview": "https://files.movio.la/avatar/v3/4397e548e4f44dd99848aadcd03c4b3c_1438/preview_talk_1.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/4397e548e4f44dd99848aadcd03c4b3c_1438/preview_talk_1_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/4397e548e4f44dd99848aadcd03c4b3c_1438/preview_talk_1_small.webp", - "normal_view_crop_x": 0.15833333134651184, - "pose_name": "Tanya in Black Suit", - "sort_index": 113, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/4397e548e4f44dd99848aadcd03c4b3c_1438/preview_video_talk_1.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "tanya", - "avatar_race": "", - "avatar_style": "", - "circle_box": [ - 0.1197916641831398, - 0, - 0.5614583492279053, - 0.7861111164093018 - ], - "close_up_box": [ - 0, - 0, - 0.6812499761581421, - 0.7861111164093018 - ], - "close_up_view_crop_x": 0, - "created_at": 1678796478, - "custom_avatar_type": "lite", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/63540b7dab534a008b1b5c80de47342c.wav", - "tts_duration": 7.238, - "voice_gender": "female", - "voice_id": "fd6bf3b9c3254137aefbe36972c39349", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/c7754eab598546c48821e2f2816734e2.wav", - "tts_duration": 5.198, - "voice_gender": "female", - "voice_id": "c29568d0e4a54715bb62bb40daa67875", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "female", - "id": "Tatiana-lite-20221219", - "is_customer": true, - "is_demo": false, - "is_favorite": false, - "is_finetune": true, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": true, - "name": "Tanya", - "normal_preview": "https://files.movio.la/avatar/v3/681b12a19307430dbf1c233b1e018db8_1996/preview_target.webp", - "normal_preview_height": 720, - "normal_preview_width": 1280, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/681b12a19307430dbf1c233b1e018db8_1996/preview_target_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/681b12a19307430dbf1c233b1e018db8_1996/preview_target_small.webp", - "normal_view_crop_x": 0, - "pose_name": "", - "sort_index": 3, - "start_speech_offset": 0.5, - "support_4k": false, - "support_eye_contact": false, - "support_matting": true, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/681b12a19307430dbf1c233b1e018db8_1996/preview_video_target.mp4" - } - } - ], - "created_at": 1670934013, - "gender": "female", - "name": "Tanya" - }, - { - "avatar_id": 1661166695, - "avatar_states": [ - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "tina", - "avatar_race": "Asian", - "avatar_style": "Smart Casual", - "circle_box": [ - 0.1805555522441864, - 0, - 0.8009259104728699, - 0.6203703880310059 - ], - "close_up_box": [ - 0, - 0, - 1, - 0.6203703880310059 - ], - "close_up_view_crop_x": 0.21274763345718384, - "created_at": 1662980186, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/d730a9efaed04b989c4e943b01a18d7e.wav", - "tts_duration": 6.963, - "voice_gender": "female", - "voice_id": "c2958d67f1e74403a0038e3445d93d50", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/1fd87adda2dc499792a934307b7b7699.wav", - "tts_duration": 5.146, - "voice_gender": "female", - "voice_id": "aa815b9a80534d928634cb7df4f99754", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "female", - "id": "Tina-inStripedshirt-20220821", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Tina", - "normal_preview": "https://files.movio.la/avatar/v3/129be09bde4d46799b935cd982fa28e5_1002/preview_target.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/129be09bde4d46799b935cd982fa28e5_1002/preview_target_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/129be09bde4d46799b935cd982fa28e5_1002/preview_target_small.webp", - "normal_view_crop_x": 0.15555556118488312, - "pose_name": "Tina in Striped Shirt", - "sort_index": 34, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/129be09bde4d46799b935cd982fa28e5_1002/preview_video_target.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "tina", - "avatar_race": "Asian", - "avatar_style": "Casual", - "circle_box": [ - 0.18425926566123962, - 0.003703703638166189, - 0.7925925850868225, - 0.6120370626449585 - ], - "close_up_box": [ - 0, - 0.003703703638166189, - 1, - 0.6120370626449585 - ], - "close_up_view_crop_x": 0.23986487090587616, - "created_at": 1662980223, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/d730a9efaed04b989c4e943b01a18d7e.wav", - "tts_duration": 6.963, - "voice_gender": "female", - "voice_id": "c2958d67f1e74403a0038e3445d93d50", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/1fd87adda2dc499792a934307b7b7699.wav", - "tts_duration": 5.146, - "voice_gender": "female", - "voice_id": "aa815b9a80534d928634cb7df4f99754", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "female", - "id": "Tina-inblack-20220821", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Tina", - "normal_preview": "https://files.movio.la/avatar/v3/129be09bde4d46799b935cd982fa28e5_1002/preview_talk_4.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/129be09bde4d46799b935cd982fa28e5_1002/preview_talk_4_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/129be09bde4d46799b935cd982fa28e5_1002/preview_talk_4_small.webp", - "normal_view_crop_x": 0.19027778506278992, - "pose_name": "Tina in Black", - "sort_index": 33, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/129be09bde4d46799b935cd982fa28e5_1002/preview_video_talk_4.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "tina", - "avatar_race": "Asian", - "avatar_style": "Casual", - "circle_box": [ - 0.18518517911434174, - 0, - 0.8074073791503906, - 0.6226851940155029 - ], - "close_up_box": [ - 0, - 0, - 1, - 0.6226851940155029 - ], - "close_up_view_crop_x": 0.21712802350521088, - "created_at": 1662980313, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/d730a9efaed04b989c4e943b01a18d7e.wav", - "tts_duration": 6.963, - "voice_gender": "female", - "voice_id": "c2958d67f1e74403a0038e3445d93d50", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/1fd87adda2dc499792a934307b7b7699.wav", - "tts_duration": 5.146, - "voice_gender": "female", - "voice_id": "aa815b9a80534d928634cb7df4f99754", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "female", - "id": "Tina-inwhite-20220821", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Tina", - "normal_preview": "https://files.movio.la/avatar/v3/129be09bde4d46799b935cd982fa28e5_1002/preview_talk_5.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/129be09bde4d46799b935cd982fa28e5_1002/preview_talk_5_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/129be09bde4d46799b935cd982fa28e5_1002/preview_talk_5_small.webp", - "normal_view_crop_x": 0.19305555522441864, - "pose_name": "Tina in White", - "sort_index": 32, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/129be09bde4d46799b935cd982fa28e5_1002/preview_video_talk_5.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "tina", - "avatar_race": "Asian", - "avatar_style": "Business Attire", - "circle_box": [ - 0.19629628956317902, - 0.0018518518190830946, - 0.7990740537643433, - 0.6050925850868225 - ], - "close_up_box": [ - 0, - 0.0018518518190830946, - 1, - 0.6050925850868225 - ], - "close_up_view_crop_x": 0.22278057038784027, - "created_at": 1665570707, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/d730a9efaed04b989c4e943b01a18d7e.wav", - "tts_duration": 6.963, - "voice_gender": "female", - "voice_id": "c2958d67f1e74403a0038e3445d93d50", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/1fd87adda2dc499792a934307b7b7699.wav", - "tts_duration": 5.146, - "voice_gender": "female", - "voice_id": "aa815b9a80534d928634cb7df4f99754", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "female", - "id": "Tina-insuit-20220821", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Tina", - "normal_preview": "https://files.movio.la/avatar/v3/16fbaaae1c96473da8f5ec14df551994_1055/preview_talk_1.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/16fbaaae1c96473da8f5ec14df551994_1055/preview_talk_1_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/16fbaaae1c96473da8f5ec14df551994_1055/preview_talk_1_small.webp", - "normal_view_crop_x": 0.18888889253139496, - "pose_name": "Tina in Suit", - "sort_index": 36, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/16fbaaae1c96473da8f5ec14df551994_1055/preview_video_talk_1.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "tina", - "avatar_race": "Asian", - "avatar_style": "Smart Casual", - "circle_box": [ - 0.20000000298023224, - 0, - 0.8277778029441833, - 0.6282407641410828 - ], - "close_up_box": [ - 0, - 0, - 1, - 0.6282407641410828 - ], - "close_up_view_crop_x": 0.20244328677654266, - "created_at": 1665570797, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/d730a9efaed04b989c4e943b01a18d7e.wav", - "tts_duration": 6.963, - "voice_gender": "female", - "voice_id": "c2958d67f1e74403a0038e3445d93d50", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/1fd87adda2dc499792a934307b7b7699.wav", - "tts_duration": 5.146, - "voice_gender": "female", - "voice_id": "aa815b9a80534d928634cb7df4f99754", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "female", - "id": "Tina-inskirt-20220821", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Tina", - "normal_preview": "https://files.movio.la/avatar/v3/16fbaaae1c96473da8f5ec14df551994_1055/preview_talk_3.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/16fbaaae1c96473da8f5ec14df551994_1055/preview_talk_3_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/16fbaaae1c96473da8f5ec14df551994_1055/preview_talk_3_small.webp", - "normal_view_crop_x": 0.15000000596046448, - "pose_name": "Tina in Dress", - "sort_index": 35, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/16fbaaae1c96473da8f5ec14df551994_1055/preview_video_talk_3.mp4" - } - } - ], - "created_at": 1661166695, - "gender": "female", - "name": "Tina" - }, - { - "avatar_id": 1658476115, - "avatar_states": [ - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "tyler", - "avatar_race": "Asian", - "avatar_style": "Business Casual", - "circle_box": [ - 0.20277777314186096, - 0, - 0.8435184955596924, - 0.6412037014961243 - ], - "close_up_box": [ - 0, - 0, - 1, - 0.6412037014961243 - ], - "close_up_view_crop_x": 0.17008014023303986, - "created_at": 1664551509, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/fc853e0b67aa4ab3af85cf299292e2ca.wav", - "tts_duration": 7.001, - "voice_gender": "male", - "voice_id": "d7bbcdd6964c47bdaae26decade4a933", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/40c599c274c7414ebb32d09628a060f3.wav", - "tts_duration": 5.669, - "voice_gender": "male", - "voice_id": "ccf05082198240f18053e57ac1dc2b5c", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "male", - "id": "Tyler-incasualsuit-20220721", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Tyler", - "normal_preview": "https://files.movio.la/avatar/v3/d577f7fc2ed24ac8802b265688b867ae_1054/preview_talk_11.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/d577f7fc2ed24ac8802b265688b867ae_1054/preview_talk_11_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/d577f7fc2ed24ac8802b265688b867ae_1054/preview_talk_11_small.webp", - "normal_view_crop_x": 0.13611111044883728, - "pose_name": "Tyler in Casual Suit", - "sort_index": 93, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/d577f7fc2ed24ac8802b265688b867ae_1054/preview_video_talk_11.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "tyler", - "avatar_race": "Asian", - "avatar_style": "Casual", - "circle_box": [ - 0.1578703671693802, - 0, - 0.8217592835426331, - 0.6638888716697693 - ], - "close_up_box": [ - 0, - 0, - 1, - 0.6638888716697693 - ], - "close_up_view_crop_x": 0.14930875599384308, - "created_at": 1664551443, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/fc853e0b67aa4ab3af85cf299292e2ca.wav", - "tts_duration": 7.001, - "voice_gender": "male", - "voice_id": "d7bbcdd6964c47bdaae26decade4a933", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/40c599c274c7414ebb32d09628a060f3.wav", - "tts_duration": 5.669, - "voice_gender": "male", - "voice_id": "ccf05082198240f18053e57ac1dc2b5c", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "male", - "id": "Tyler-inshirt-20220721", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Tyler", - "normal_preview": "https://files.movio.la/avatar/v3/d577f7fc2ed24ac8802b265688b867ae_1054/preview_talk_2.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/d577f7fc2ed24ac8802b265688b867ae_1054/preview_talk_2_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/d577f7fc2ed24ac8802b265688b867ae_1054/preview_talk_2_small.webp", - "normal_view_crop_x": 0.12916666269302368, - "outfit_circle_box": [ - 0.14907407760620117, - 0, - 0.8509259223937988, - 0.7018518447875977 - ], - "outfit_close_up_box": [ - 0.14444445073604584, - 0, - 0.855555534362793, - 0.7018518447875977 - ], - "pose_name": "Tyler in Shirt", - "sort_index": 92, - "start_speech_offset": 0.5, - "support_4k": true, - "support_ai_outfit": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/d577f7fc2ed24ac8802b265688b867ae_1054/preview_video_talk_2.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "tyler", - "avatar_race": "Asian", - "avatar_style": "Business Attire", - "circle_box": [ - 0.1606481522321701, - 0, - 0.8282407522201538, - 0.668055534362793 - ], - "close_up_box": [ - 0, - 0, - 1, - 0.668055534362793 - ], - "close_up_view_crop_x": 0.17068645358085632, - "created_at": 1664551488, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/fc853e0b67aa4ab3af85cf299292e2ca.wav", - "tts_duration": 7.001, - "voice_gender": "male", - "voice_id": "d7bbcdd6964c47bdaae26decade4a933", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/40c599c274c7414ebb32d09628a060f3.wav", - "tts_duration": 5.669, - "voice_gender": "male", - "voice_id": "ccf05082198240f18053e57ac1dc2b5c", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "male", - "id": "Tyler-insuit-20220721", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Tyler", - "normal_preview": "https://files.movio.la/avatar/v3/d577f7fc2ed24ac8802b265688b867ae_1054/preview_talk_5.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/d577f7fc2ed24ac8802b265688b867ae_1054/preview_talk_5_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/d577f7fc2ed24ac8802b265688b867ae_1054/preview_talk_5_small.webp", - "normal_view_crop_x": 0.14444445073604584, - "pose_name": "Tyler in Suit", - "sort_index": 94, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/d577f7fc2ed24ac8802b265688b867ae_1054/preview_video_talk_5.mp4" - } - } - ], - "created_at": 1658476115, - "gender": "male", - "name": "Tyler" - }, - { - "avatar_id": 55, - "avatar_states": [ - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "vanessa", - "avatar_race": "African American", - "avatar_style": "Smart Casual", - "circle_box": [ - 0.15138888359069824, - 0, - 0.8282407522201538, - 0.6768518686294556 - ], - "close_up_box": [ - 0, - 0, - 1, - 0.6768518686294556 - ], - "close_up_view_crop_x": 0.18890976905822754, - "created_at": 1666257703, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1.100000023841858, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/e5f9ad565b1d4980b85d8813ad568e59.wav", - "tts_duration": 6.58, - "voice_gender": "female", - "voice_id": "c15a2314cbc446b7b6637f44234d6836", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/ea4524ce773344af8f063018cb7109d1.wav", - "tts_duration": 5.381, - "voice_gender": "female", - "voice_id": "c028be6858d04ee79c12a2209ab47bf8", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "female", - "id": "Vanessa-inskirt-20220722", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Vanessa", - "normal_preview": "https://files.movio.la/avatar/v3/93649b8ef2764e1da827dbd1d34967e3_1115/preview_talk_9.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/93649b8ef2764e1da827dbd1d34967e3_1115/preview_talk_9_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/93649b8ef2764e1da827dbd1d34967e3_1115/preview_talk_9_small.webp", - "normal_view_crop_x": 0.16527777910232544, - "pose_name": "Vanessa in Dress", - "sort_index": 68, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/93649b8ef2764e1da827dbd1d34967e3_1115/preview_video_talk_9.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "vanessa", - "avatar_race": "African American", - "avatar_style": "Business Attire", - "circle_box": [ - 0.16296295821666718, - 0.009722222574055195, - 0.8342592716217041, - 0.6814814805984497 - ], - "close_up_box": [ - 0, - 0.009722222574055195, - 1, - 0.6814814805984497 - ], - "close_up_view_crop_x": 0.19309701025485992, - "created_at": 1666257482, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1.100000023841858, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/e5f9ad565b1d4980b85d8813ad568e59.wav", - "tts_duration": 6.58, - "voice_gender": "female", - "voice_id": "c15a2314cbc446b7b6637f44234d6836", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/ea4524ce773344af8f063018cb7109d1.wav", - "tts_duration": 5.381, - "voice_gender": "female", - "voice_id": "c028be6858d04ee79c12a2209ab47bf8", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "female", - "id": "Vanessa-insuit-20220722", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Vanessa", - "normal_preview": "https://files.movio.la/avatar/v3/93649b8ef2764e1da827dbd1d34967e3_1115/preview_talk_2.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/93649b8ef2764e1da827dbd1d34967e3_1115/preview_talk_2_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/93649b8ef2764e1da827dbd1d34967e3_1115/preview_talk_2_small.webp", - "normal_view_crop_x": 0.16805554926395416, - "pose_name": "Vanessa in Suit", - "sort_index": 69, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/93649b8ef2764e1da827dbd1d34967e3_1115/preview_video_talk_2.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "vanessa", - "avatar_race": "African American", - "avatar_style": "Casual", - "circle_box": [ - 0.17129629850387573, - 0, - 0.8398148417472839, - 0.6689814925193787 - ], - "close_up_box": [ - 0, - 0, - 1, - 0.6689814925193787 - ], - "close_up_view_crop_x": 0.18308550119400024, - "created_at": 1666257797, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1.100000023841858, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/e5f9ad565b1d4980b85d8813ad568e59.wav", - "tts_duration": 6.58, - "voice_gender": "female", - "voice_id": "c15a2314cbc446b7b6637f44234d6836", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/ea4524ce773344af8f063018cb7109d1.wav", - "tts_duration": 5.381, - "voice_gender": "female", - "voice_id": "c028be6858d04ee79c12a2209ab47bf8", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "female", - "id": "Vanessa-invest-20220722", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Vanessa", - "normal_preview": "https://files.movio.la/avatar/v3/93649b8ef2764e1da827dbd1d34967e3_1115/preview_talk_14.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/93649b8ef2764e1da827dbd1d34967e3_1115/preview_talk_14_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/93649b8ef2764e1da827dbd1d34967e3_1115/preview_talk_14_small.webp", - "normal_view_crop_x": 0.15555556118488312, - "outfit_circle_box": [ - 0.10277777910232544, - 0, - 0.8972222208976746, - 0.7944444417953491 - ], - "outfit_close_up_box": [ - 0.09814814478158951, - 0, - 0.9018518328666687, - 0.7944444417953491 - ], - "pose_name": "Vanessa in Tank Top", - "sort_index": 67, - "start_speech_offset": 0.5, - "support_4k": true, - "support_ai_outfit": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/93649b8ef2764e1da827dbd1d34967e3_1115/preview_video_talk_14.mp4" - } - } - ], - "created_at": 1658928954, - "gender": "female", - "name": "Vanessa" - }, - { - "avatar_id": 1670166774, - "avatar_states": [ - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "vera", - "avatar_race": "", - "avatar_style": "", - "circle_box": [ - 0.2874999940395355, - 0.16223958134651184, - 0.8634259104728699, - 0.48619791865348816 - ], - "close_up_box": [ - 0.0634259283542633, - 0.16223958134651184, - 1, - 0.48619791865348816 - ], - "close_up_view_crop_x": 0, - "created_at": 1670296207, - "custom_avatar_type": "lite", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/a2a4ee52cb604615bb9ffe3b0ad0c78c.wav", - "tts_duration": 6.988, - "voice_gender": "female", - "voice_id": "932643d355ed4a3d837370a3068bbd1b", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/8c797953df8b4696ba7b13cca67e0888.wav", - "tts_duration": 5.198, - "voice_gender": "female", - "voice_id": "232e3bb29f3b45d695f873503af7068c", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "female", - "id": "Vlada-lite-20221129", - "is_customer": true, - "is_demo": false, - "is_favorite": false, - "is_finetune": true, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": true, - "name": "Vera", - "normal_preview": "https://files.movio.la/avatar/v3/7e22ce3be20042a5baa33d83997cb305_1366/preview_target.webp", - "normal_preview_height": 720, - "normal_preview_width": 405, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/7e22ce3be20042a5baa33d83997cb305_1366/preview_target_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/7e22ce3be20042a5baa33d83997cb305_1366/preview_target_small.webp", - "normal_view_crop_x": 0, - "pose_name": "", - "sort_index": 1, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/7e22ce3be20042a5baa33d83997cb305_1366/preview_video_target.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "vera", - "avatar_race": "White", - "avatar_style": "Business Casual", - "circle_box": [ - 0.18009258806705475, - 0.050462961196899414, - 0.7680555582046509, - 0.6384259462356567 - ], - "close_up_box": [ - 0, - 0.050462961196899414, - 0.9967592358589172, - 0.6384259462356567 - ], - "close_up_view_crop_x": 0.21551550924777985, - "created_at": 1671098797, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/a2a4ee52cb604615bb9ffe3b0ad0c78c.wav", - "tts_duration": 6.988, - "voice_gender": "female", - "voice_id": "932643d355ed4a3d837370a3068bbd1b", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/8c797953df8b4696ba7b13cca67e0888.wav", - "tts_duration": 5.198, - "voice_gender": "female", - "voice_id": "232e3bb29f3b45d695f873503af7068c", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "female", - "id": "Vlada-pro-insuit-20221215", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Vera", - "normal_preview": "https://files.movio.la/avatar/v3/a0cef940444143f98a7b9c1c3c0485e7_1468/preview_target.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/a0cef940444143f98a7b9c1c3c0485e7_1468/preview_target_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/a0cef940444143f98a7b9c1c3c0485e7_1468/preview_target_small.webp", - "normal_view_crop_x": 0.18888889253139496, - "pose_name": "Vera in Suit", - "sort_index": 121, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/a0cef940444143f98a7b9c1c3c0485e7_1468/preview_video_target.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "vera", - "avatar_race": "White", - "avatar_style": "Casual", - "circle_box": [ - 0.21250000596046448, - 0.019907407462596893, - 0.8245370388031006, - 0.6324074268341064 - ], - "close_up_box": [ - 0, - 0.019907407462596893, - 1, - 0.6324074268341064 - ], - "close_up_view_crop_x": 0.18367347121238708, - "created_at": 1671445758, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/a2a4ee52cb604615bb9ffe3b0ad0c78c.wav", - "tts_duration": 6.988, - "voice_gender": "female", - "voice_id": "932643d355ed4a3d837370a3068bbd1b", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/8c797953df8b4696ba7b13cca67e0888.wav", - "tts_duration": 5.198, - "voice_gender": "female", - "voice_id": "232e3bb29f3b45d695f873503af7068c", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "female", - "id": "Vlada-pro-whiteshirt-20221219", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Vera", - "normal_preview": "https://files.movio.la/avatar/v3/33b592cf54114521a5424ea37dc0e55b_1486/preview_target.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/33b592cf54114521a5424ea37dc0e55b_1486/preview_target_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/33b592cf54114521a5424ea37dc0e55b_1486/preview_target_small.webp", - "normal_view_crop_x": 0.1666666716337204, - "pose_name": "Vera in T-shirt", - "sort_index": 120, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/33b592cf54114521a5424ea37dc0e55b_1486/preview_video_target.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "vera", - "avatar_race": "White", - "avatar_style": "Smart Casual", - "circle_box": [ - 0.18472221493721008, - 0.02361111156642437, - 0.793055534362793, - 0.6319444179534912 - ], - "close_up_box": [ - 0, - 0.02361111156642437, - 1, - 0.6319444179534912 - ], - "close_up_view_crop_x": 0.22719594836235046, - "created_at": 1671711370, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/a2a4ee52cb604615bb9ffe3b0ad0c78c.wav", - "tts_duration": 6.988, - "voice_gender": "female", - "voice_id": "932643d355ed4a3d837370a3068bbd1b", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/8c797953df8b4696ba7b13cca67e0888.wav", - "tts_duration": 5.198, - "voice_gender": "female", - "voice_id": "232e3bb29f3b45d695f873503af7068c", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "female", - "id": "Vlada-pro-jacket-20221222", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Vera", - "normal_preview": "https://files.movio.la/avatar/v3/2506c85b3d97497d8390a17467d30190_1518/preview_target.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/2506c85b3d97497d8390a17467d30190_1518/preview_target_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/2506c85b3d97497d8390a17467d30190_1518/preview_target_small.webp", - "normal_view_crop_x": 0.20694445073604584, - "outfit_circle_box": [ - 0.14907407760620117, - 0, - 0.8509259223937988, - 0.7018518447875977 - ], - "outfit_close_up_box": [ - 0.14444445073604584, - 0, - 0.855555534362793, - 0.7018518447875977 - ], - "pose_name": "Vera in Jacket", - "sort_index": 119, - "start_speech_offset": 0.5, - "support_4k": true, - "support_ai_outfit": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/2506c85b3d97497d8390a17467d30190_1518/preview_video_target.mp4" - } - } - ], - "created_at": 1670166774, - "gender": "female", - "name": "Vera" - }, - { - "avatar_id": 1658827891, - "avatar_states": [ - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "wilson", - "avatar_race": "Asian", - "avatar_style": "Business Casual", - "circle_box": [ - 0.17175926268100739, - 0.006018518470227718, - 0.8069444298744202, - 0.6412037014961243 - ], - "close_up_box": [ - 0, - 0.006018518470227718, - 1, - 0.6412037014961243 - ], - "close_up_view_crop_x": 0.20282186567783356, - "created_at": 1669348384, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/d98bac59ade6402bbeb3f201ee7ca1e9.wav", - "tts_duration": 7.001, - "voice_gender": "male", - "voice_id": "d7bbcdd6964c47bdaae26decade4a933", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/a464e4ced7f44c06820a853c32b9e937.wav", - "tts_duration": 4.963, - "voice_gender": "male", - "voice_id": "6648fd92bcba41df809a01712faf9a4a", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "male", - "id": "Wilson-insuit-20220722", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Wilson", - "normal_preview": "https://files.movio.la/avatar/v3/56218cddfa2d4681bf95f98eb4658675_1280/preview_talk_1.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/56218cddfa2d4681bf95f98eb4658675_1280/preview_talk_1_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/56218cddfa2d4681bf95f98eb4658675_1280/preview_talk_1_small.webp", - "normal_view_crop_x": 0.1736111044883728, - "outfit_circle_box": [ - 0.14907407760620117, - 0, - 0.8509259223937988, - 0.7018518447875977 - ], - "outfit_close_up_box": [ - 0.14444445073604584, - 0, - 0.855555534362793, - 0.7018518447875977 - ], - "pose_name": "Wilson in Suit", - "sort_index": 30, - "start_speech_offset": 0.5, - "support_4k": true, - "support_ai_outfit": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/56218cddfa2d4681bf95f98eb4658675_1280/preview_video_talk_1.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "wilson", - "avatar_race": "Asian", - "avatar_style": "Business Casual", - "circle_box": [ - 0.19398148357868195, - 0, - 0.8439815044403076, - 0.6499999761581421 - ], - "close_up_box": [ - 0, - 0, - 1, - 0.6499999761581421 - ], - "close_up_view_crop_x": 0.2166064977645874, - "created_at": 1669348447, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/d98bac59ade6402bbeb3f201ee7ca1e9.wav", - "tts_duration": 7.001, - "voice_gender": "male", - "voice_id": "d7bbcdd6964c47bdaae26decade4a933", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/a464e4ced7f44c06820a853c32b9e937.wav", - "tts_duration": 4.963, - "voice_gender": "male", - "voice_id": "6648fd92bcba41df809a01712faf9a4a", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "male", - "id": "Wilson-inshirt-20220722", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Wilson", - "normal_preview": "https://files.movio.la/avatar/v3/56218cddfa2d4681bf95f98eb4658675_1280/preview_talk_5.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/56218cddfa2d4681bf95f98eb4658675_1280/preview_talk_5_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/56218cddfa2d4681bf95f98eb4658675_1280/preview_talk_5_small.webp", - "normal_view_crop_x": 0.19722221791744232, - "pose_name": "Wilson in Shirt", - "sort_index": 29, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/56218cddfa2d4681bf95f98eb4658675_1280/preview_video_talk_5.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "wilson", - "avatar_race": "", - "avatar_style": "", - "circle_box": [ - 0.19398148357868195, - 0.007407407276332378, - 0.8152777552604675, - 0.6291666626930237 - ], - "close_up_box": [ - 0, - 0.007407407276332378, - 1, - 0.6291666626930237 - ], - "close_up_view_crop_x": 0.22193436324596405, - "created_at": 1669368871, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/d98bac59ade6402bbeb3f201ee7ca1e9.wav", - "tts_duration": 7.001, - "voice_gender": "male", - "voice_id": "d7bbcdd6964c47bdaae26decade4a933", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/a464e4ced7f44c06820a853c32b9e937.wav", - "tts_duration": 4.963, - "voice_gender": "male", - "voice_id": "6648fd92bcba41df809a01712faf9a4a", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "male", - "id": "Wilson-inTshirt-20221124", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Wilson", - "normal_preview": "https://files.movio.la/avatar/v3/61d53a2a1325467296f77ce7f510f1f4_1280/preview_talk_7.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/61d53a2a1325467296f77ce7f510f1f4_1280/preview_talk_7_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/61d53a2a1325467296f77ce7f510f1f4_1280/preview_talk_7_small.webp", - "normal_view_crop_x": 0.2083333283662796, - "pose_name": "Wilson in T-shirt", - "sort_index": 28, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/61d53a2a1325467296f77ce7f510f1f4_1280/preview_video_talk_7.mp4" - } - } - ], - "created_at": 1658827891, - "gender": "male", - "name": "Wilson" - }, - { - "avatar_id": 1660839373, - "avatar_states": [ - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "zoey", - "avatar_race": "African American", - "avatar_style": "Smart Casual", - "circle_box": [ - 0.1726851910352707, - 0.016203703358769417, - 0.8189814686775208, - 0.6629629731178284 - ], - "close_up_box": [ - 0, - 0.016203703358769417, - 1, - 0.6629629731178284 - ], - "close_up_view_crop_x": 0.22461815178394318, - "created_at": 1665319348, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/2aab28968dc146a3bb49538055105c97.wav", - "tts_duration": 7.138, - "voice_gender": "female", - "voice_id": "456e13f3ff1345d3b7ab0435ce024dc7", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/8d1dfad3b920419a83c845c5fa8fda46.wav", - "tts_duration": 5.46, - "voice_gender": "female", - "voice_id": "26b1ed2a6dd8439abb8e788b762f0d77", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "female", - "id": "Zoey-inlongsleeves-20220816", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Zoey", - "normal_preview": "https://files.movio.la/avatar/v3/f1ac9458a4cb49bea6d80a8e54eea24a_1113/preview_target.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/f1ac9458a4cb49bea6d80a8e54eea24a_1113/preview_target_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/f1ac9458a4cb49bea6d80a8e54eea24a_1113/preview_target_small.webp", - "normal_view_crop_x": 0.19722221791744232, - "pose_name": "Zoey in Long Sleeves", - "sort_index": 87, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/f1ac9458a4cb49bea6d80a8e54eea24a_1113/preview_video_target.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "zoey", - "avatar_race": "African American", - "avatar_style": "Business Attire", - "circle_box": [ - 0.15324074029922485, - 0, - 0.8273147940635681, - 0.6740740537643433 - ], - "close_up_box": [ - 0, - 0, - 1, - 0.6740740537643433 - ], - "close_up_view_crop_x": 0.1910112351179123, - "created_at": 1665319377, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/2aab28968dc146a3bb49538055105c97.wav", - "tts_duration": 7.138, - "voice_gender": "female", - "voice_id": "456e13f3ff1345d3b7ab0435ce024dc7", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/8d1dfad3b920419a83c845c5fa8fda46.wav", - "tts_duration": 5.46, - "voice_gender": "female", - "voice_id": "26b1ed2a6dd8439abb8e788b762f0d77", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "female", - "id": "Zoey-insuit-20220816", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Zoey", - "normal_preview": "https://files.movio.la/avatar/v3/f1ac9458a4cb49bea6d80a8e54eea24a_1113/preview_talk_3.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/f1ac9458a4cb49bea6d80a8e54eea24a_1113/preview_talk_3_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/f1ac9458a4cb49bea6d80a8e54eea24a_1113/preview_talk_3_small.webp", - "normal_view_crop_x": 0.16111111640930176, - "pose_name": "Zoey in Suit", - "sort_index": 90, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/f1ac9458a4cb49bea6d80a8e54eea24a_1113/preview_video_talk_3.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "zoey", - "avatar_race": "African American", - "avatar_style": "Casual", - "circle_box": [ - 0.1666666716337204, - 0, - 0.824999988079071, - 0.6583333611488342 - ], - "close_up_box": [ - 0, - 0, - 1, - 0.6583333611488342 - ], - "close_up_view_crop_x": 0.19378428161144257, - "created_at": 1665319401, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/2aab28968dc146a3bb49538055105c97.wav", - "tts_duration": 7.138, - "voice_gender": "female", - "voice_id": "456e13f3ff1345d3b7ab0435ce024dc7", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/8d1dfad3b920419a83c845c5fa8fda46.wav", - "tts_duration": 5.46, - "voice_gender": "female", - "voice_id": "26b1ed2a6dd8439abb8e788b762f0d77", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "female", - "id": "Zoey-inhoodie-20220816", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Zoey", - "normal_preview": "https://files.movio.la/avatar/v3/f1ac9458a4cb49bea6d80a8e54eea24a_1113/preview_talk_8.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/f1ac9458a4cb49bea6d80a8e54eea24a_1113/preview_talk_8_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/f1ac9458a4cb49bea6d80a8e54eea24a_1113/preview_talk_8_small.webp", - "normal_view_crop_x": 0.18194444477558136, - "pose_name": "Zoey in Hoodie", - "sort_index": 88, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/f1ac9458a4cb49bea6d80a8e54eea24a_1113/preview_video_talk_8.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "zoey", - "avatar_race": "African American", - "avatar_style": "Casual", - "circle_box": [ - 0.18379630148410797, - 0.007870370522141457, - 0.8467592597007751, - 0.6708333492279053 - ], - "close_up_box": [ - 0, - 0.007870370522141457, - 1, - 0.6708333492279053 - ], - "close_up_view_crop_x": 0.22744014859199524, - "created_at": 1665319422, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/2aab28968dc146a3bb49538055105c97.wav", - "tts_duration": 7.138, - "voice_gender": "female", - "voice_id": "456e13f3ff1345d3b7ab0435ce024dc7", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/8d1dfad3b920419a83c845c5fa8fda46.wav", - "tts_duration": 5.46, - "voice_gender": "female", - "voice_id": "26b1ed2a6dd8439abb8e788b762f0d77", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "female", - "id": "Zoey-inTshirt-20220816", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Zoey", - "normal_preview": "https://files.movio.la/avatar/v3/f1ac9458a4cb49bea6d80a8e54eea24a_1113/preview_talk_9.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/f1ac9458a4cb49bea6d80a8e54eea24a_1113/preview_talk_9_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/f1ac9458a4cb49bea6d80a8e54eea24a_1113/preview_talk_9_small.webp", - "normal_view_crop_x": 0.2083333283662796, - "outfit_circle_box": [ - 0.16296295821666718, - 0, - 0.8370370268821716, - 0.6740740537643433 - ], - "outfit_close_up_box": [ - 0.14444445073604584, - 0, - 0.855555534362793, - 0.6740740537643433 - ], - "pose_name": "Zoey in T-shirt", - "sort_index": 86, - "start_speech_offset": 0.5, - "support_4k": true, - "support_ai_outfit": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/f1ac9458a4cb49bea6d80a8e54eea24a_1113/preview_video_talk_9.mp4" - } - }, - { - "acl": [ - { - "access_type": 7, - "username": "f3f153405ac94355965b2102a1e36e9b" - } - ], - "available_style": { - "circle": true, - "close_up": true, - "normal": true - }, - "avatar_name": "zoey", - "avatar_race": "African American", - "avatar_style": "Casual", - "circle_box": [ - 0.16342592239379883, - 0.0032407406251877546, - 0.8217592835426331, - 0.6620370149612427 - ], - "close_up_box": [ - 0, - 0.0032407406251877546, - 1, - 0.6620370149612427 - ], - "close_up_view_crop_x": 0.21591949462890625, - "created_at": 1665319442, - "custom_avatar_type": "none", - "default_voice": { - "free": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/2aab28968dc146a3bb49538055105c97.wav", - "tts_duration": 7.138, - "voice_gender": "female", - "voice_id": "456e13f3ff1345d3b7ab0435ce024dc7", - "voice_language": "English" - }, - "premium": { - "pitch": 0, - "speed": 1, - "text": "Welcome to the new era of video creation with HeyGen! Simply type your script to get started!", - "tts_audio_url": "https://files.movio.la/avatar/default_voice/8d1dfad3b920419a83c845c5fa8fda46.wav", - "tts_duration": 5.46, - "voice_gender": "female", - "voice_id": "26b1ed2a6dd8439abb8e788b762f0d77", - "voice_language": "English" - } - }, - "end_speech_offset": 0.5, - "gender": "female", - "id": "Zoey-inshirt-20220816", - "is_customer": false, - "is_demo": false, - "is_favorite": false, - "is_finetune": false, - "is_finetune_demo": false, - "is_instant_avatar": false, - "is_paid": true, - "is_preset": false, - "name": "Zoey", - "normal_preview": "https://files.movio.la/avatar/v3/f1ac9458a4cb49bea6d80a8e54eea24a_1113/preview_talk_13.webp", - "normal_preview_height": 720, - "normal_preview_width": 720, - "normal_thumbnail_medium": "https://files.movio.la/avatar/v3/f1ac9458a4cb49bea6d80a8e54eea24a_1113/preview_talk_13_medium.webp", - "normal_thumbnail_small": "https://files.movio.la/avatar/v3/f1ac9458a4cb49bea6d80a8e54eea24a_1113/preview_talk_13_small.webp", - "normal_view_crop_x": 0.18611110746860504, - "pose_name": "Zoey in Shirt", - "sort_index": 89, - "start_speech_offset": 0.5, - "support_4k": true, - "support_eye_contact": false, - "support_matting": false, - "supported_templates": [], - "unboxed": true, - "video_url": { - "grey": "https://files.movio.la/avatar/v3/f1ac9458a4cb49bea6d80a8e54eea24a_1113/preview_video_talk_13.mp4" - } - } - ], - "created_at": 1660839373, - "gender": "female", - "name": "Zoey" - } - ] - }, - "message": "Success" -} \ No newline at end of file diff --git a/heygen/english_voices.json b/heygen/english_voices.json deleted file mode 100644 index f183a2a..0000000 --- a/heygen/english_voices.json +++ /dev/null @@ -1,3313 +0,0 @@ -{ - "code": 100, - "data": { - "list": [ - { - "voice_id": "077ab11b14f04ce0b49b5f6e5cc20979", - "labels": [ - "Middle-Aged", - "Explainer" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 29, - "gender": "Male", - "tags": "", - "display_name": "Paul - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/k6dKrFe85PisZ3FMLeppUM.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "086b225655694cd9ae60e712469ce474", - "labels": [ - "Older", - "Narration", - "Natural" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/gb.png", - "locale": "en-GB", - "sort": 100, - "gender": "male", - "tags": "", - "display_name": "Arthur - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/au9cu3oknHoCTr3YtVjKAf.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "0ebe70d83b2349529e56492c002c9572", - "labels": [ - "Middle-Aged", - "Natural", - "Explainer" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 19, - "gender": "Male", - "tags": "", - "display_name": "Antoni - Friendly", - "preview": { - "movio": "https://static.movio.la/voice_preview/TwupgZ2az5RiTnmAifPmmS.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "131a436c47064f708210df6628ef8f32", - "labels": [ - "Youth", - "Ads", - "Explainer", - "E-learning" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 36, - "gender": "Female", - "tags": "Young Adult, Ads, Explainer Videos, E-learning & Presentations", - "display_name": "Amber - Friendly", - "preview": { - "movio": "https://static.movio.la/voice_preview/5HHGT48B6g6aSg2buYcBvw.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "1840d6dd209541d18ce8fdafbdbf8ed8", - "labels": [ - "Audiobooks", - "Ads", - "Youth" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 23, - "gender": "Male", - "tags": "", - "display_name": "Sam - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/cGGnM8FCWYJBqCEgbEfM59.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "1ae3be1e24894ccabdb4d8139399f721", - "labels": [ - "Middle-Aged", - "E-learning", - "Audiobooks", - "News" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 1, - "gender": "Male", - "tags": "Middle-Age,E-learning & Presentations, Product demos, Explainer Videos, News, Ads", - "display_name": "Tony - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/LQUcrBcVHDMCSP5cX93CVd.wav" - }, - "settings": { - "style": "general", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "1bd001e7e50f421d891986aad5158bc8", - "labels": [ - "Youth", - "E-learning", - "Ads", - "Explainer" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 2, - "gender": "Female", - "tags": "Young Adult, Customer Service, Explainer Videos, Cheerful", - "display_name": "Sara - Cheerful", - "preview": { - "movio": "https://static.movio.la/voice_preview/func8CFnfVLKF2VzGDCDCR.wav" - }, - "settings": { - "style": "cheerful", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "1fe966a9dfa14b16ab4d146fabe868b5", - "labels": [ - "Child", - "Audiobooks", - "Ads", - "Games" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 21, - "gender": "Female", - "tags": "Child, Audiobooks", - "display_name": "Ana - Cheerful", - "preview": { - "movio": "https://static.movio.la/voice_preview/T4MYTkhp7F5SA9HRXHzL9A.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "232e3bb29f3b45d695f873503af7068c", - "labels": [ - "Narration", - "Professional", - "Explainer", - "E-learning" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 3, - "gender": "Female", - "tags": "", - "display_name": "Scarlett - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/gp5RLjAtsywQ3XdU4khisX.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "23e526605d744f66b85a7eb5116db028", - "labels": [ - "Youth", - "Natural", - "Professional" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 15, - "gender": "male", - "tags": "", - "display_name": "Ethan - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/bFtUTV3c3Hiew3NbXnmQYN.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "25ecd686af554bfd8007b6a95210f776", - "labels": [ - "Natural", - "Middle-Aged", - "Ads" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 23, - "gender": "Male", - "tags": "", - "display_name": "Adam - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/nXc2bvzC9srTpkvCtyATPn.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "26b1ed2a6dd8439abb8e788b762f0d77", - "labels": [ - "Middle-Aged", - "Explainer", - "Ads" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 31, - "gender": "Female", - "tags": "", - "display_name": "Jodi - Cheerful", - "preview": { - "movio": "https://static.movio.la/voice_preview/MVjZYiF7jZFwN2EZG96HqM.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "285900cdfd1641e0b163e97a96973212", - "labels": [ - "Youth", - "Ads", - "E-learning", - "Explainer" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 16, - "gender": "Female", - "tags": "Young Adult, E-learning & Presentations, Product demos, Explainer Videos, News, Ads", - "display_name": "Monica - Calm", - "preview": { - "movio": "https://static.movio.la/voice_preview/A28mKDAgwgmKD8KdG68rkZ.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "2d5b0e6cf36f460aa7fc47e3eee4ba54", - "labels": [ - "Youth", - "Audiobooks", - "Narration", - "Explainer" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/gb.png", - "locale": "en-GB", - "sort": 26, - "gender": "Female", - "tags": "Young Adult, E-learning & Presentations, Product demos, Explainer Videos, News, Ads", - "display_name": "Sonia - Warm", - "preview": { - "movio": "https://static.movio.la/voice_preview/nZzCSavZkP37XSyc5CrzS7.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "2f72ee82b83d4b00af16c4771d611752", - "labels": [ - "Youth", - "Explainer", - "Narration", - "E-learning" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 1, - "gender": "Female", - "tags": "Young Adult, Customer Service", - "display_name": "Jenny - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/XTyya7QKzhwvwDrVQLTvoQ.wav" - }, - "settings": { - "style": "customerservice", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "3a50a58bf6ac4707a34d1f51dbe9fb36", - "labels": [ - "Youth", - "Natural", - "Ads" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 7, - "gender": "male", - "tags": "", - "display_name": "Lester-Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/Sk3qbPC75xTKTbha8RtFTA.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "3a87612e2cd14705a3b419f959e8120b", - "labels": [ - "Professional", - "News", - "Explainer" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 10, - "gender": "male", - "tags": "", - "display_name": "Douglas-Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/gHt2VDM4GPdkqWnG2jzzsY.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "3df9f559da8d4f888bc497f62a7078d2", - "labels": [ - "Ads", - "Natural", - "E-learning" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 8, - "gender": "Female", - "tags": "", - "display_name": "Claire - Cheerful", - "preview": { - "movio": "https://static.movio.la/voice_preview/ENvqqe6JcDXUHWPZvE8E4.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "3f224b0cb92d45328e5ccd93d3c2314e", - "labels": [ - "Youth", - "Ads", - "Explainer", - "Narration" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/ie.png", - "locale": "en-IE", - "sort": 42, - "gender": "Female", - "tags": "", - "display_name": "Emily - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/ZA54eZdstL8XeZssreg9XT.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "3fbd2cac3ddd4c109e17296e324845ec", - "labels": [ - "Older", - "Audiobooks", - "Narration", - "E-learning", - "Ads" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 20, - "gender": "Male", - "tags": "Middle-Age,E-learning & Presentations, Product demos, Explainer Videos, News, Ads", - "display_name": "Delbert - Cheerful", - "preview": { - "movio": "https://static.movio.la/voice_preview/CMr49SZRNaARsvmJ3tGDsN.wav" - }, - "settings": { - "style": "cheerful", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "4398ced268aa4707a5b6222819f05a6f", - "labels": [ - "E-learning", - "Games", - "Ads" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 9, - "gender": "male", - "tags": "", - "display_name": "Caleb-Cheerful", - "preview": { - "movio": "https://static.movio.la/voice_preview/vxLRnPCPixRPaNQz8vB2qd.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "445a8c7de9e74ed2a0dd02d5885ac589", - "labels": [ - "Older", - "Narration", - "Natural" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 100, - "gender": "female", - "tags": "", - "display_name": "Nancy - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/QTdrd669nuRE3cQEY56iZF.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "456e13f3ff1345d3b7ab0435ce024dc7", - "labels": [ - "Youth", - "Ads", - "Explainer", - "News" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 22, - "gender": "Female", - "tags": "Young Adult, Cheerful, Youtube, Customer Service", - "display_name": "Isabella - Cheerful", - "preview": { - "movio": "https://static.movio.la/voice_preview/KhiBp6E75AmiqR2F9Ssmj7.wav" - }, - "settings": { - "style": "Cheerful", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "488e985a7bd249968612390c4e89f06c", - "labels": [ - "Narration", - "Natural", - "Middle-Aged" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 34, - "gender": "Male", - "tags": "", - "display_name": "Bruce - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/8VvvHAfbLyDP3ZhYix4wVW.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "4e36239454b2414d85c9dbaa18bcf228", - "labels": [ - "Youth", - "Narration", - "Explainer", - "Ads" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/nz.png", - "locale": "en-NZ", - "sort": 25, - "gender": "Male", - "tags": "", - "display_name": "Mitchell - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/cYt7FDjZng3rszpVXewS9U.wav" - }, - "settings": { - "style": "general", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "52b62505407d4f369b9924c2afcdfe72", - "labels": [ - "Older", - "Natural", - "Narration" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/gb.png", - "locale": "en-GB", - "sort": 100, - "gender": "male", - "tags": "", - "display_name": "Roy - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/ZRFWnrcaQkhbxDp3svykbE.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "575a8643634944a28761fcd34331d3fa", - "labels": [ - "Youth", - "News" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 100, - "gender": "male", - "tags": "", - "display_name": "Dennis - Cheerful", - "preview": { - "movio": "https://static.movio.la/voice_preview/YpfMSycEaGKLyWZffnKsc7.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "5dddee02307b4f49a17c123c120a60ca", - "labels": [ - "Youth", - "Explainer", - "Narration", - "News" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/za.png", - "locale": "en-ZA", - "sort": 28, - "gender": "Male", - "tags": "Young Adult, Explainer Videos, Product demos, E-learning & Presentations", - "display_name": "Luke - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/ZSJ6hYck7uD4RFDbTqbtvE.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "628161fd1c79432d853b610e84dbc7a4", - "labels": [ - "Youth", - "Ads", - "Explainer", - "News" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/gb.png", - "locale": "en-GB", - "sort": 7, - "gender": "Female", - "tags": "Young Adult, E-learning & Presentations, Product demos, Explainer Videos, News, Ads", - "display_name": "Bella - Friendly", - "preview": { - "movio": "https://static.movio.la/voice_preview/C9zRUcRZ4R56R4pGjytysb.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "6648fd92bcba41df809a01712faf9a4a", - "labels": [ - "Narration", - "Audiobooks", - "Youth" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 14, - "gender": "male", - "tags": "", - "display_name": "Harry - Narration", - "preview": { - "movio": "https://static.movio.la/voice_preview/Q8bBCXxNPuwnZKixnNHawf.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "66a21dedf2c842b8a516cdb264360e0e", - "labels": [ - "Youth", - "News", - "Narration", - "E-learning" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/in.png", - "locale": "en-IN", - "sort": 40, - "gender": "Female", - "tags": "Young Adult, Explainer Videos, Ads, Product demos, E-learning & Presentations", - "display_name": "Neerja - Newscaster", - "preview": { - "movio": "https://static.movio.la/voice_preview/RcDW6eTi2rGrVyFJZYdr2G.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "6b5c5f11e7b24daca9c0d2371ecd8bc9", - "labels": [ - "Narration", - "Professional", - "Explainer" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 10, - "gender": "male", - "tags": "", - "display_name": "Raymond-Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/DToLuPLsgsCcodNThceGUa.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "6cd01cfff3354e16a6f4247cf30123ff", - "labels": [ - "Youth", - "Narration", - "Explainer", - "E-learning" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/sg.png", - "locale": "en-SG", - "sort": 38, - "gender": "Female", - "tags": "Young Adult, Ads, Explainer Videos, E-learning & Presentations", - "display_name": "Luna - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/F3smMjYU6mWaa3tXLkUHpE.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "6d091fbb994c439eb9d249ba8b0e62da", - "labels": [ - "Middle-Aged", - "Explainer", - "Narration", - "News" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/gb.png", - "locale": "en-GB", - "sort": 100, - "gender": "Male", - "tags": "", - "display_name": "Jahmai - Friendly", - "preview": { - "movio": "https://static.movio.la/voice_preview/Jw83S9aTUdzR2XdBvzLGYc.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "6d9be61f6e0646f4b6750d3eb03b118f", - "labels": [ - "Audiobooks", - "Youth" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 35, - "gender": "Female", - "tags": "", - "display_name": "Belle - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/wbXoiYJ2e6xwKC5i2EUSCY.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "6e51a203c3e74398ae8046f3c320abf6", - "labels": [ - "Middle-Aged", - "Narration", - "Audiobooks" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 10, - "gender": "male", - "tags": "", - "display_name": "Samuel-Narration", - "preview": { - "movio": "https://static.movio.la/voice_preview/TuVCqyvCGvbEGA9JkFkaFY.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "6e7404e25c4b4385b04b0e2704c861c8", - "labels": [ - "Middle-Aged", - "Ads", - "Audiobooks", - "Narration", - "News" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 15, - "gender": "Female", - "tags": "", - "display_name": "Michelle - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/djxEBTVHKLgXsJpb6ZrBVn.wav" - }, - "settings": { - "style": "general", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "707375bffbb6443ca99ec8f81459738f", - "labels": [ - "Explainer", - "Youth" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 24, - "gender": "Female", - "tags": "", - "display_name": "Grace - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/jGVaobvjJGySAFFFF6BS6Z.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "71c663964e82485eabca1f4aedd7bfc1", - "labels": [ - "Youth", - "Natural" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 13, - "gender": "male", - "tags": "", - "display_name": "Troy-Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/Qs6kFXo4t3TetRQS5AYb6F.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "727e9d6d492e456b9f27708fa8018744", - "labels": [ - "Youth", - "News", - "Explainer", - "Narration", - "E-learning" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/ca.png", - "locale": "en-CA", - "sort": 30, - "gender": "Female", - "tags": "Middle-Age,E-learning & Presentations, Product demos, Explainer Videos, News, Ads", - "display_name": "Clara - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/DzWM42iH66Jr8bBVNJDmJx.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "73c0b6a2e29d4d38aca41454bf58c955", - "labels": [ - "Youth", - "Ads", - "E-learning" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/gb.png", - "locale": "en-GB", - "sort": 28, - "gender": "Female", - "tags": "", - "display_name": "Cerise - Cheerful", - "preview": { - "movio": "https://static.movio.la/voice_preview/KotgDpZPtr63SDnTfgdYxb.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "76955c80188a4c149df169b5dc9e1a3a", - "labels": [ - "Youth", - "Explainer", - "E-learning", - "Audiobooks" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 12, - "gender": "Female", - "tags": "Young Adult, Assistant", - "display_name": "Emma - Newscaster", - "preview": { - "movio": "https://static.movio.la/voice_preview/c3NuQJ7QnFRXFq8Kn4quwk.wav" - }, - "settings": { - "style": "assistant", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "7c6a15c7caf8415fb2102faafd7e2259", - "labels": [ - "Middle-Aged", - "E-learning", - "Narration", - "Explainer" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/in.png", - "locale": "en-IN", - "sort": 26, - "gender": "Male", - "tags": "Young Adult, Explainer Videos, Ads, Product demos, E-learning & Presentations", - "display_name": "Prabhat - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/hJHsYuEL5nVUtoLMgyTuMH.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "814e0b1c99e9474896b17ec7c2b2a371", - "labels": [ - "Youth", - "Explainer", - "Audiobooks", - "News" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/sg.png", - "locale": "en-SG", - "sort": 32, - "gender": "Male", - "tags": "Young Adult, Ads, Explainer Videos, E-learning & Presentations", - "display_name": "Wayne - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/9abCuQ4Zf2MyUoYbjTQx3r.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "886d5b163da4436daa5fae885e175636", - "labels": [ - "Narration", - "Youth", - "Natural", - "Audiobooks" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 3, - "gender": "male", - "tags": "", - "display_name": "Charles - Friendly", - "preview": { - "movio": "https://static.movio.la/voice_preview/sj5stM39YqYcmjn7629wmT.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "8aa99a72f5094b2c8270a6fdadfe71b0", - "labels": [ - "Youth", - "E-learning", - "Audiobooks", - "News" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/au.png", - "locale": "en-AU", - "sort": 7, - "gender": "Male", - "tags": "Young Adult, E-learning & Presentations, Product demos, Explainer Videos, News, Ads", - "display_name": "Wille - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/GAfaMVfT8xRTB7EaiZLvXg.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "9169e484eb0740b286ef8a679d78fa3f", - "labels": [ - "Youth", - "Natural" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 6, - "gender": "male", - "tags": "", - "display_name": "Glenn-Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/AqYCGxK5CxXfGWjBDLyjch.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "932643d355ed4a3d837370a3068bbd1b", - "labels": [ - "Youth", - "Ads", - "News", - "Narration", - "Audiobooks" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 18, - "gender": "Female", - "tags": "Young Adult, Ads, Explainer Videos, E-learning & Presentations", - "display_name": "Josie - Cheerful", - "preview": { - "movio": "https://static.movio.la/voice_preview/9SGYr6Xk7SUB8CMzR9rkHF.wav" - }, - "settings": { - "style": "cheerful", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "9cfe3785136147ea967c7632f52c8788", - "labels": [ - "Middle-Aged", - "Natural", - "Professional" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 31, - "gender": "Male", - "tags": "", - "display_name": "Benjamin - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/THfjKiRjWcaDxtDgPbyrLc.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "a04d81d19afd436db611060682276331", - "labels": [ - "Youth", - "Ads", - "Natural" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/gb.png", - "locale": "en-GB", - "sort": 30, - "gender": "Male", - "tags": "", - "display_name": "Rudi - Friendly", - "preview": { - "movio": "https://static.movio.la/voice_preview/4TV6LHHA5q6MArEWJN2etH.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "a12d857b0424427ea109213dc373c618", - "labels": [ - "Youth", - "Natural" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 12, - "gender": "male", - "tags": "", - "display_name": "Kenneth - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/TMMLHLXFCCX3d9wv7pfHQJ.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "a22a7a8cd45042ad83e9bb9203e1a84b", - "labels": [ - "Professional", - "Youth" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 39, - "gender": "Female", - "tags": "", - "display_name": "Lily - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/9kuXwV9GzDFmNRe629mLR4.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "a56a4fa01bc94c79be13f9803dfb5721", - "labels": [ - "Ads", - "Natural", - "Middle-Aged" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 13, - "gender": "Female", - "tags": "", - "display_name": "Audrey - Cheerful", - "preview": { - "movio": "https://static.movio.la/voice_preview/FmbRdxCQTcBFnrczYfJFmD.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "a6f3eea9f3764d36a279ae810d1353c6", - "labels": [ - "Middle-Aged", - "Explainer", - "Audiobooks", - "Ads", - "News" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 18, - "gender": "Male", - "tags": "Middle-Age,E-learning & Presentations, Product demos, Explainer Videos, News, Ads", - "display_name": "Tracy - Cheerful", - "preview": { - "movio": "https://static.movio.la/voice_preview/VRz9yRAwKEaeafHP6Vfzu7.wav" - }, - "settings": { - "style": "cheerful", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "aa815b9a80534d928634cb7df4f99754", - "labels": [ - "Narration", - "Audiobooks", - "Youth" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 19, - "gender": "Female", - "tags": "", - "display_name": "Sophia - Narration", - "preview": { - "movio": "https://static.movio.la/voice_preview/9rsAYURnjDUWN3HsnKv3i3.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "afab75da785b4a42b6fcc5ad282d8fa9", - "labels": [ - "Narration", - "News", - "Middle-Aged" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 10, - "gender": "male", - "tags": "", - "display_name": "Warren-Narration", - "preview": { - "movio": "https://static.movio.la/voice_preview/X8AszKmeDFDaCA9Gkr4tqL.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "b2ddcef2b1594794aa7f3a436d8cf8f2", - "labels": [ - "Middle-Aged", - "Explainer", - "News" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/gb.png", - "locale": "en-GB", - "sort": 33, - "gender": "Male", - "tags": "", - "display_name": "Keanan - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/5hFXAVXkxRNHBdhvJTJJKe.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "b3150d405d374dd99e569282ee68fa21", - "labels": [ - "Natural", - "Middle-Aged", - "Explainer" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 11, - "gender": "male", - "tags": "", - "display_name": "Mason - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/8ybzJogfVPFiZL9kfUN4g3.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "b4d04a4ca86b42c895844c786c9043d3", - "labels": [ - "Natural", - "Explainer" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 9, - "gender": "male", - "tags": "", - "display_name": "Craig-Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/aTXHGEV8e3iTccph2SZ4DG.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "b8b6f5b6e57c40df91811e385b2725b3", - "labels": [ - "Youth", - "Ads", - "E-learning", - "Natural" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/ie.png", - "locale": "en-IE", - "sort": 8, - "gender": "Male", - "tags": "", - "display_name": "Connor - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/faRVtvJziRGQEJd5PK6fiK.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "beaa640abaa24c32bea33b280d2f5ea3", - "labels": [ - "Youth", - "Audiobooks", - "E-learning", - "Narration" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 16, - "gender": "Male", - "tags": "Young Adult, Ads, Explainer Videos, E-learning & Presentations", - "display_name": "Johan - Friendly", - "preview": { - "movio": "https://static.movio.la/voice_preview/fkxNCfdkoKfopBpTtvQqAp.wav" - }, - "settings": { - "style": "hopeful", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "c028be6858d04ee79c12a2209ab47bf8", - "labels": [ - "Narration", - "Youth", - "E-learning" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 11, - "gender": "Female", - "tags": "", - "display_name": "Hailey - Calm", - "preview": { - "movio": "https://static.movio.la/voice_preview/M4XBjtiH4yaz9GQhXHtSnV.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "c089f9832fd04922b34b3d2f3661d113", - "labels": [ - "Youth", - "E-learning", - "Explainer", - "Narration" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 15, - "gender": "Male", - "tags": "Young Adult, Ads, Explainer Videos, E-learning & Presentations", - "display_name": "Brandon - Warm", - "preview": { - "movio": "https://static.movio.la/voice_preview/maqA9fw7siQAcv2WafDz4F.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "c15a2314cbc446b7b6637f44234d6836", - "labels": [ - "Youth", - "Explainer", - "E-learning", - "Narration" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/za.png", - "locale": "en-ZA", - "sort": 34, - "gender": "Female", - "tags": "Young Adult, Explainer Videos, Product demos, E-learning & Presentations", - "display_name": "Leah - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/i5bRcieHP5gHNkcQkDSzpE.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "c218750e46864dba9c45b9e40fe91aef", - "labels": [ - "Youth", - "E-learning", - "Explainer", - "News" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/au.png", - "locale": "en-AU", - "sort": 32, - "gender": "Female", - "tags": "Young Adult, E-learning & Presentations, Product demos, Explainer Videos, News, Ads", - "display_name": "Natasha - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/WXnjbGWv8ApsQncudqKfW7.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "c29568d0e4a54715bb62bb40daa67875", - "labels": [ - "Middle-Aged", - "Ads" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/gb.png", - "locale": "en-GB", - "sort": 33, - "gender": "Female", - "tags": "", - "display_name": "Alison - Cheerful", - "preview": { - "movio": "https://static.movio.la/voice_preview/ZQLzm4o75YDvt8uS33Lqbd.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "c2958d67f1e74403a0038e3445d93d50", - "labels": [ - "Youth", - "E-learning", - "Audiobooks", - "Explainer", - "News" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 14, - "gender": "Female", - "tags": "Young Adult, Ads, Explainer Videos, E-learning & Presentations", - "display_name": "Sherry - Friendly", - "preview": { - "movio": "https://static.movio.la/voice_preview/RGqs3H9eLfHkc3HduJXxTY.wav" - }, - "settings": { - "style": "friendly", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "c29c6fdb6abe4146be2daa7929f03e41", - "labels": [ - "Youth", - "E-learning", - "Explainer", - "Ads", - "News" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/gb.png", - "locale": "en-GB", - "sort": 27, - "gender": "Female", - "tags": "Young Adult, E-learning & Presentations, Product demos, Explainer Videos, News, Ads", - "display_name": "Abbi - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/UcamNKnVKBJiTKVSuCGuTp.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "c2ace75f65fd433f987337950e812335", - "labels": [ - "Middle-Aged", - "Narration", - "News", - "E-learning" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/nz.png", - "locale": "en-NZ", - "sort": 6, - "gender": "Female", - "tags": "", - "display_name": " Molly - Newscaster", - "preview": { - "movio": "https://static.movio.la/voice_preview/jEKUAyUKmX8iG4NXrCmQRC.wav" - }, - "settings": { - "style": "general", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "c8f228e9ead44542829eb87d51420fbf", - "labels": [ - "Narration", - "Audiobooks", - "Natural" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 9, - "gender": "Female", - "tags": "", - "display_name": "Charlotte - Narration", - "preview": { - "movio": "https://static.movio.la/voice_preview/hF2vCwDV6mPojTnvvHva24.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "cac876fea7c541e7a634a9b386ee3b53", - "labels": [ - "Youth", - "Natural", - "Ads" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 7, - "gender": "male", - "tags": "", - "display_name": "Levi - Friendly", - "preview": { - "movio": "https://static.movio.la/voice_preview/XAaEPdKfrho2rmXVqi8M6M.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "cc29d03937d14240acf109c827a9a51a", - "labels": [ - "Youth", - "News", - "Narration", - "E-learning" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 10, - "gender": "Female", - "tags": "Young Adult, Explainer Videos, E-learning & Presentations, Product demos", - "display_name": "Aria - Newscaster", - "preview": { - "movio": "https://static.movio.la/voice_preview/5vzP2xA79TcGpndVngHBbA.wav" - }, - "settings": { - "style": "narration-professional", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "ccb30e87c6b34ca8941f88352c71612d", - "labels": [ - "Youth", - "Ads", - "Explainer", - "News" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/gb.png", - "locale": "en-GB", - "sort": 22, - "gender": "Male", - "tags": "Young Adult, E-learning & Presentations, Product demos, Explainer Videos, News, Ads", - "display_name": "Noah - Serious", - "preview": { - "movio": "https://static.movio.la/voice_preview/UDzn8mZ5eKbXrQQojCVMud.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "ccf05082198240f18053e57ac1dc2b5c", - "labels": [ - "Narration", - "Middle-Aged", - "Explainer", - "Professional" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 3, - "gender": "male", - "tags": "", - "display_name": "Jackson - Narration", - "preview": { - "movio": "https://static.movio.la/voice_preview/Xq8odYA7oSdemnkrrNxv9K.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "cd05d8c2c52444fbbbbbe16d86734464", - "labels": [ - "Narration", - "Youth", - "Explainer" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 17, - "gender": "male", - "tags": "", - "display_name": "Julian - Narration", - "preview": { - "movio": "https://static.movio.la/voice_preview/dcvPwsn8tLtJrosBrufgxk.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "cd92a228f9bf4fb1adaa1531595cd5d4", - "labels": [ - "Middle-Aged", - "Ads" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 41, - "gender": "Female", - "tags": "", - "display_name": "Indira - Cheerful", - "preview": { - "movio": "https://static.movio.la/voice_preview/H63XT8YQH7L4vupiCXGd2Z.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "d36f8d1c27054f7baa52c216ad874d16", - "labels": [ - "Narration", - "Youth", - "Natural", - "Explainer" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 5, - "gender": "male", - "tags": "", - "display_name": "Alexander - Narration", - "preview": { - "movio": "https://static.movio.la/voice_preview/eSxLsT26vJFS7aomV3aX9X.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "d3edc86dcdd04011b7e5e5d27562fcf5", - "labels": [ - "Natural", - "Explainer", - "E-learning" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 7, - "gender": "male", - "tags": "", - "display_name": "Larry-Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/5kuCRJnPiDk24gBeuNC9bi.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "d5e87b3c1778488697d8c35f50ff7a28", - "labels": [ - "Games", - "Middle-Aged" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 100, - "gender": "Male", - "tags": "", - "display_name": "Keith - Cheerful", - "preview": { - "movio": "https://static.movio.la/voice_preview/s9TAzfFvQ5CwT97Airbvu8.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "d7bbcdd6964c47bdaae26decade4a933", - "labels": [ - "Middle-Aged", - "E-learning", - "Audiobooks", - "News" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 4, - "gender": "Male", - "tags": "Middle-Aged, Explainer Videos, News", - "display_name": "Christopher - Calm", - "preview": { - "movio": "https://static.movio.la/voice_preview/Pn2tXVGjpwyHpWTsKFj87X.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "dea92eeb96984004b5a04dd656d3ef9f", - "labels": [ - "Youth", - "Ads" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 9, - "gender": "male", - "tags": "", - "display_name": "Dylan - Cheerful", - "preview": { - "movio": "https://static.movio.la/voice_preview/bqCoKYFgQMFDnCvmU5BjpU.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "e17b99e1b86e47e8b7f4cae0f806aa78", - "labels": [ - "Middle-Aged", - "News", - "Explainer", - "Audiobooks" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/ca.png", - "locale": "en-CA", - "sort": 13, - "gender": "Male", - "tags": "Young Adult, E-learning & Presentations, Product demos, Explainer Videos, News, Ads", - "display_name": "Liam - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/8sg49P4MFQnpDvpRkaR6M9.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "e3e89b7996b94daebf8a1d6904a1bd11", - "labels": [ - "Middle-Aged", - "Narration", - "Explainer", - "News" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/gb.png", - "locale": "en-GB", - "sort": 100, - "gender": "Male", - "tags": "", - "display_name": "Wilder - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/UjH2pdBnSE2N2MV4ebFgQe.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "e9472c5d7bda495d8813fb6bc757eaa3", - "labels": [ - "Youth", - "Natural", - "Ads" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/gb.png", - "locale": "en-GB", - "sort": 5, - "gender": "Female", - "tags": "", - "display_name": "Marieke - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/mVX39uo7mwzwMUxszXddPb.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "e9caf49d7f8e4fbeac1919c3dee72dd5", - "labels": [ - "Natural", - "Youth" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 12, - "gender": "male", - "tags": "", - "display_name": "Jeffery-Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/Fhr6aCxMMN76FweQrYUzL9.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "ec4aa6ac882147ffb679176d49f3e41f", - "labels": [ - "Middle-Aged", - "News", - "E-learning", - "Explainer" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 12, - "gender": "Male", - "tags": "Young Adult, Ads", - "display_name": "Eric - Newscaster", - "preview": { - "movio": "https://static.movio.la/voice_preview/QyfEredcYX3MKGkBGudZ9H.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "f5a3cb4edbfc4d37b5614ce118be7bc8", - "labels": [ - "Youth", - "News", - "E-learning", - "Explainer" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/gb.png", - "locale": "en-GB", - "sort": 2, - "gender": "Male", - "tags": "Young Adult, E-learning & Presentations, Product demos, Explainer Videos, News, Ads", - "display_name": "Ryan - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/CsXU4XY7SgPPQmo6ZEtnjN.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "f7658a75545d4b70b04d8784c07bd038", - "labels": [ - "Youth", - "News", - "E-learning", - "Ads" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 11, - "gender": "Male", - "tags": "Young Adult, News, Explainer Videos", - "display_name": "Lucas - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/9ex83FXgouLw6NVytasyH7.wav" - }, - "settings": { - "style": "newscast", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "f86f4645a6164198a7f35c7255fcb0d1", - "labels": [ - "Ads", - "Youth" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 15, - "gender": "Male", - "tags": "", - "display_name": "Arnold - Cheerful", - "preview": { - "movio": "https://static.movio.la/voice_preview/iSgRx3f8nZevE25EEBaH4B.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "fd6bf3b9c3254137aefbe36972c39349", - "labels": [ - "Youth", - "News", - "Narration", - "Explainer", - "E-learning" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 20, - "gender": "Female", - "tags": "Young Adult, Ads, Explainer Videos, E-learning & Presentations", - "display_name": "Jane - Serious", - "preview": { - "movio": "https://static.movio.la/voice_preview/iuocs4hoQUGTHJoLnzYYyf.wav" - }, - "settings": { - "style": "unfriendly", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "fe981119cd9c4e7fa41ba65466ef564a", - "labels": [ - "Middle-Aged", - "Professional" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 35, - "gender": "Male", - "tags": "", - "display_name": "Dean - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/w4FoYdku4M9Fp2JYmLUdrT.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "ff465a8dab0d42c78f874a135b11d47d", - "labels": [ - "Older", - "Audiobooks", - "Narration", - "News" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 21, - "gender": "Male", - "tags": "Middle-Age,E-learning & Presentations, Product demos, Explainer Videos, News, Ads", - "display_name": "Davis - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/MJy76NRegZK6zmnSzSn7qb.wav" - }, - "settings": { - "style": "general", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - } - ] - }, - "msg": null, - "message": null -} \ No newline at end of file diff --git a/heygen/free_english_voices.json b/heygen/free_english_voices.json deleted file mode 100644 index 0c3c9a3..0000000 --- a/heygen/free_english_voices.json +++ /dev/null @@ -1,1749 +0,0 @@ -{ - "code": 100, - "data": { - "list": [ - { - "voice_id": "131a436c47064f708210df6628ef8f32", - "labels": [ - "Youth", - "Ads", - "Explainer", - "E-learning" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 36, - "gender": "Female", - "tags": "Young Adult, Ads, Explainer Videos, E-learning & Presentations", - "display_name": "Amber - Friendly", - "preview": { - "movio": "https://static.movio.la/voice_preview/5HHGT48B6g6aSg2buYcBvw.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "1ae3be1e24894ccabdb4d8139399f721", - "labels": [ - "Middle-Aged", - "E-learning", - "Audiobooks", - "News" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 1, - "gender": "Male", - "tags": "Middle-Age,E-learning & Presentations, Product demos, Explainer Videos, News, Ads", - "display_name": "Tony - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/LQUcrBcVHDMCSP5cX93CVd.wav" - }, - "settings": { - "style": "general", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "1bd001e7e50f421d891986aad5158bc8", - "labels": [ - "Youth", - "E-learning", - "Ads", - "Explainer" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 2, - "gender": "Female", - "tags": "Young Adult, Customer Service, Explainer Videos, Cheerful", - "display_name": "Sara - Cheerful", - "preview": { - "movio": "https://static.movio.la/voice_preview/func8CFnfVLKF2VzGDCDCR.wav" - }, - "settings": { - "style": "cheerful", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "1fe966a9dfa14b16ab4d146fabe868b5", - "labels": [ - "Child", - "Audiobooks", - "Ads", - "Games" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 21, - "gender": "Female", - "tags": "Child, Audiobooks", - "display_name": "Ana - Cheerful", - "preview": { - "movio": "https://static.movio.la/voice_preview/T4MYTkhp7F5SA9HRXHzL9A.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "285900cdfd1641e0b163e97a96973212", - "labels": [ - "Youth", - "Ads", - "E-learning", - "Explainer" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 16, - "gender": "Female", - "tags": "Young Adult, E-learning & Presentations, Product demos, Explainer Videos, News, Ads", - "display_name": "Monica - Calm", - "preview": { - "movio": "https://static.movio.la/voice_preview/A28mKDAgwgmKD8KdG68rkZ.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "2d5b0e6cf36f460aa7fc47e3eee4ba54", - "labels": [ - "Youth", - "Audiobooks", - "Narration", - "Explainer" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/gb.png", - "locale": "en-GB", - "sort": 26, - "gender": "Female", - "tags": "Young Adult, E-learning & Presentations, Product demos, Explainer Videos, News, Ads", - "display_name": "Sonia - Warm", - "preview": { - "movio": "https://static.movio.la/voice_preview/nZzCSavZkP37XSyc5CrzS7.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "2f72ee82b83d4b00af16c4771d611752", - "labels": [ - "Youth", - "Explainer", - "Narration", - "E-learning" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 1, - "gender": "Female", - "tags": "Young Adult, Customer Service", - "display_name": "Jenny - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/XTyya7QKzhwvwDrVQLTvoQ.wav" - }, - "settings": { - "style": "customerservice", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "3f224b0cb92d45328e5ccd93d3c2314e", - "labels": [ - "Youth", - "Ads", - "Explainer", - "Narration" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/ie.png", - "locale": "en-IE", - "sort": 42, - "gender": "Female", - "tags": "", - "display_name": "Emily - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/ZA54eZdstL8XeZssreg9XT.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "3fbd2cac3ddd4c109e17296e324845ec", - "labels": [ - "Older", - "Audiobooks", - "Narration", - "E-learning", - "Ads" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 20, - "gender": "Male", - "tags": "Middle-Age,E-learning & Presentations, Product demos, Explainer Videos, News, Ads", - "display_name": "Delbert - Cheerful", - "preview": { - "movio": "https://static.movio.la/voice_preview/CMr49SZRNaARsvmJ3tGDsN.wav" - }, - "settings": { - "style": "cheerful", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "456e13f3ff1345d3b7ab0435ce024dc7", - "labels": [ - "Youth", - "Ads", - "Explainer", - "News" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 22, - "gender": "Female", - "tags": "Young Adult, Cheerful, Youtube, Customer Service", - "display_name": "Isabella - Cheerful", - "preview": { - "movio": "https://static.movio.la/voice_preview/KhiBp6E75AmiqR2F9Ssmj7.wav" - }, - "settings": { - "style": "Cheerful", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "4e36239454b2414d85c9dbaa18bcf228", - "labels": [ - "Youth", - "Narration", - "Explainer", - "Ads" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/nz.png", - "locale": "en-NZ", - "sort": 25, - "gender": "Male", - "tags": "", - "display_name": "Mitchell - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/cYt7FDjZng3rszpVXewS9U.wav" - }, - "settings": { - "style": "general", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "575a8643634944a28761fcd34331d3fa", - "labels": [ - "Youth", - "News" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 100, - "gender": "male", - "tags": "", - "display_name": "Dennis - Cheerful", - "preview": { - "movio": "https://static.movio.la/voice_preview/YpfMSycEaGKLyWZffnKsc7.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "5dddee02307b4f49a17c123c120a60ca", - "labels": [ - "Youth", - "Explainer", - "Narration", - "News" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/za.png", - "locale": "en-ZA", - "sort": 28, - "gender": "Male", - "tags": "Young Adult, Explainer Videos, Product demos, E-learning & Presentations", - "display_name": "Luke - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/ZSJ6hYck7uD4RFDbTqbtvE.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "628161fd1c79432d853b610e84dbc7a4", - "labels": [ - "Youth", - "Ads", - "Explainer", - "News" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/gb.png", - "locale": "en-GB", - "sort": 7, - "gender": "Female", - "tags": "Young Adult, E-learning & Presentations, Product demos, Explainer Videos, News, Ads", - "display_name": "Bella - Friendly", - "preview": { - "movio": "https://static.movio.la/voice_preview/C9zRUcRZ4R56R4pGjytysb.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "66a21dedf2c842b8a516cdb264360e0e", - "labels": [ - "Youth", - "News", - "Narration", - "E-learning" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/in.png", - "locale": "en-IN", - "sort": 40, - "gender": "Female", - "tags": "Young Adult, Explainer Videos, Ads, Product demos, E-learning & Presentations", - "display_name": "Neerja - Newscaster", - "preview": { - "movio": "https://static.movio.la/voice_preview/RcDW6eTi2rGrVyFJZYdr2G.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "6cd01cfff3354e16a6f4247cf30123ff", - "labels": [ - "Youth", - "Narration", - "Explainer", - "E-learning" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/sg.png", - "locale": "en-SG", - "sort": 38, - "gender": "Female", - "tags": "Young Adult, Ads, Explainer Videos, E-learning & Presentations", - "display_name": "Luna - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/F3smMjYU6mWaa3tXLkUHpE.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "6d091fbb994c439eb9d249ba8b0e62da", - "labels": [ - "Middle-Aged", - "Explainer", - "Narration", - "News" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/gb.png", - "locale": "en-GB", - "sort": 100, - "gender": "Male", - "tags": "", - "display_name": "Jahmai - Friendly", - "preview": { - "movio": "https://static.movio.la/voice_preview/Jw83S9aTUdzR2XdBvzLGYc.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "6e7404e25c4b4385b04b0e2704c861c8", - "labels": [ - "Middle-Aged", - "Ads", - "Audiobooks", - "Narration", - "News" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 15, - "gender": "Female", - "tags": "", - "display_name": "Michelle - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/djxEBTVHKLgXsJpb6ZrBVn.wav" - }, - "settings": { - "style": "general", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "727e9d6d492e456b9f27708fa8018744", - "labels": [ - "Youth", - "News", - "Explainer", - "Narration", - "E-learning" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/ca.png", - "locale": "en-CA", - "sort": 30, - "gender": "Female", - "tags": "Middle-Age,E-learning & Presentations, Product demos, Explainer Videos, News, Ads", - "display_name": "Clara - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/DzWM42iH66Jr8bBVNJDmJx.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "73c0b6a2e29d4d38aca41454bf58c955", - "labels": [ - "Youth", - "Ads", - "E-learning" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/gb.png", - "locale": "en-GB", - "sort": 28, - "gender": "Female", - "tags": "", - "display_name": "Cerise - Cheerful", - "preview": { - "movio": "https://static.movio.la/voice_preview/KotgDpZPtr63SDnTfgdYxb.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "76955c80188a4c149df169b5dc9e1a3a", - "labels": [ - "Youth", - "Explainer", - "E-learning", - "Audiobooks" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 12, - "gender": "Female", - "tags": "Young Adult, Assistant", - "display_name": "Emma - Newscaster", - "preview": { - "movio": "https://static.movio.la/voice_preview/c3NuQJ7QnFRXFq8Kn4quwk.wav" - }, - "settings": { - "style": "assistant", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "7c6a15c7caf8415fb2102faafd7e2259", - "labels": [ - "Middle-Aged", - "E-learning", - "Narration", - "Explainer" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/in.png", - "locale": "en-IN", - "sort": 26, - "gender": "Male", - "tags": "Young Adult, Explainer Videos, Ads, Product demos, E-learning & Presentations", - "display_name": "Prabhat - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/hJHsYuEL5nVUtoLMgyTuMH.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "814e0b1c99e9474896b17ec7c2b2a371", - "labels": [ - "Youth", - "Explainer", - "Audiobooks", - "News" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/sg.png", - "locale": "en-SG", - "sort": 32, - "gender": "Male", - "tags": "Young Adult, Ads, Explainer Videos, E-learning & Presentations", - "display_name": "Wayne - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/9abCuQ4Zf2MyUoYbjTQx3r.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "8aa99a72f5094b2c8270a6fdadfe71b0", - "labels": [ - "Youth", - "E-learning", - "Audiobooks", - "News" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/au.png", - "locale": "en-AU", - "sort": 7, - "gender": "Male", - "tags": "Young Adult, E-learning & Presentations, Product demos, Explainer Videos, News, Ads", - "display_name": "Wille - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/GAfaMVfT8xRTB7EaiZLvXg.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "932643d355ed4a3d837370a3068bbd1b", - "labels": [ - "Youth", - "Ads", - "News", - "Narration", - "Audiobooks" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 18, - "gender": "Female", - "tags": "Young Adult, Ads, Explainer Videos, E-learning & Presentations", - "display_name": "Josie - Cheerful", - "preview": { - "movio": "https://static.movio.la/voice_preview/9SGYr6Xk7SUB8CMzR9rkHF.wav" - }, - "settings": { - "style": "cheerful", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "a04d81d19afd436db611060682276331", - "labels": [ - "Youth", - "Ads", - "Natural" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/gb.png", - "locale": "en-GB", - "sort": 30, - "gender": "Male", - "tags": "", - "display_name": "Rudi - Friendly", - "preview": { - "movio": "https://static.movio.la/voice_preview/4TV6LHHA5q6MArEWJN2etH.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "a6f3eea9f3764d36a279ae810d1353c6", - "labels": [ - "Middle-Aged", - "Explainer", - "Audiobooks", - "Ads", - "News" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 18, - "gender": "Male", - "tags": "Middle-Age,E-learning & Presentations, Product demos, Explainer Videos, News, Ads", - "display_name": "Tracy - Cheerful", - "preview": { - "movio": "https://static.movio.la/voice_preview/VRz9yRAwKEaeafHP6Vfzu7.wav" - }, - "settings": { - "style": "cheerful", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "b2ddcef2b1594794aa7f3a436d8cf8f2", - "labels": [ - "Middle-Aged", - "Explainer", - "News" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/gb.png", - "locale": "en-GB", - "sort": 33, - "gender": "Male", - "tags": "", - "display_name": "Keanan - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/5hFXAVXkxRNHBdhvJTJJKe.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "b8b6f5b6e57c40df91811e385b2725b3", - "labels": [ - "Youth", - "Ads", - "E-learning", - "Natural" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/ie.png", - "locale": "en-IE", - "sort": 8, - "gender": "Male", - "tags": "", - "display_name": "Connor - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/faRVtvJziRGQEJd5PK6fiK.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "beaa640abaa24c32bea33b280d2f5ea3", - "labels": [ - "Youth", - "Audiobooks", - "E-learning", - "Narration" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 16, - "gender": "Male", - "tags": "Young Adult, Ads, Explainer Videos, E-learning & Presentations", - "display_name": "Johan - Friendly", - "preview": { - "movio": "https://static.movio.la/voice_preview/fkxNCfdkoKfopBpTtvQqAp.wav" - }, - "settings": { - "style": "hopeful", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "c089f9832fd04922b34b3d2f3661d113", - "labels": [ - "Youth", - "E-learning", - "Explainer", - "Narration" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 15, - "gender": "Male", - "tags": "Young Adult, Ads, Explainer Videos, E-learning & Presentations", - "display_name": "Brandon - Warm", - "preview": { - "movio": "https://static.movio.la/voice_preview/maqA9fw7siQAcv2WafDz4F.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "c15a2314cbc446b7b6637f44234d6836", - "labels": [ - "Youth", - "Explainer", - "E-learning", - "Narration" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/za.png", - "locale": "en-ZA", - "sort": 34, - "gender": "Female", - "tags": "Young Adult, Explainer Videos, Product demos, E-learning & Presentations", - "display_name": "Leah - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/i5bRcieHP5gHNkcQkDSzpE.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "c218750e46864dba9c45b9e40fe91aef", - "labels": [ - "Youth", - "E-learning", - "Explainer", - "News" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/au.png", - "locale": "en-AU", - "sort": 32, - "gender": "Female", - "tags": "Young Adult, E-learning & Presentations, Product demos, Explainer Videos, News, Ads", - "display_name": "Natasha - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/WXnjbGWv8ApsQncudqKfW7.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "c2958d67f1e74403a0038e3445d93d50", - "labels": [ - "Youth", - "E-learning", - "Audiobooks", - "Explainer", - "News" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 14, - "gender": "Female", - "tags": "Young Adult, Ads, Explainer Videos, E-learning & Presentations", - "display_name": "Sherry - Friendly", - "preview": { - "movio": "https://static.movio.la/voice_preview/RGqs3H9eLfHkc3HduJXxTY.wav" - }, - "settings": { - "style": "friendly", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "c29c6fdb6abe4146be2daa7929f03e41", - "labels": [ - "Youth", - "E-learning", - "Explainer", - "Ads", - "News" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/gb.png", - "locale": "en-GB", - "sort": 27, - "gender": "Female", - "tags": "Young Adult, E-learning & Presentations, Product demos, Explainer Videos, News, Ads", - "display_name": "Abbi - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/UcamNKnVKBJiTKVSuCGuTp.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "c2ace75f65fd433f987337950e812335", - "labels": [ - "Middle-Aged", - "Narration", - "News", - "E-learning" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/nz.png", - "locale": "en-NZ", - "sort": 6, - "gender": "Female", - "tags": "", - "display_name": " Molly - Newscaster", - "preview": { - "movio": "https://static.movio.la/voice_preview/jEKUAyUKmX8iG4NXrCmQRC.wav" - }, - "settings": { - "style": "general", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "cc29d03937d14240acf109c827a9a51a", - "labels": [ - "Youth", - "News", - "Narration", - "E-learning" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 10, - "gender": "Female", - "tags": "Young Adult, Explainer Videos, E-learning & Presentations, Product demos", - "display_name": "Aria - Newscaster", - "preview": { - "movio": "https://static.movio.la/voice_preview/5vzP2xA79TcGpndVngHBbA.wav" - }, - "settings": { - "style": "narration-professional", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "ccb30e87c6b34ca8941f88352c71612d", - "labels": [ - "Youth", - "Ads", - "Explainer", - "News" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/gb.png", - "locale": "en-GB", - "sort": 22, - "gender": "Male", - "tags": "Young Adult, E-learning & Presentations, Product demos, Explainer Videos, News, Ads", - "display_name": "Noah - Serious", - "preview": { - "movio": "https://static.movio.la/voice_preview/UDzn8mZ5eKbXrQQojCVMud.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "d7bbcdd6964c47bdaae26decade4a933", - "labels": [ - "Middle-Aged", - "E-learning", - "Audiobooks", - "News" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 4, - "gender": "Male", - "tags": "Middle-Aged, Explainer Videos, News", - "display_name": "Christopher - Calm", - "preview": { - "movio": "https://static.movio.la/voice_preview/Pn2tXVGjpwyHpWTsKFj87X.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "e17b99e1b86e47e8b7f4cae0f806aa78", - "labels": [ - "Middle-Aged", - "News", - "Explainer", - "Audiobooks" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/ca.png", - "locale": "en-CA", - "sort": 13, - "gender": "Male", - "tags": "Young Adult, E-learning & Presentations, Product demos, Explainer Videos, News, Ads", - "display_name": "Liam - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/8sg49P4MFQnpDvpRkaR6M9.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "e3e89b7996b94daebf8a1d6904a1bd11", - "labels": [ - "Middle-Aged", - "Narration", - "Explainer", - "News" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/gb.png", - "locale": "en-GB", - "sort": 100, - "gender": "Male", - "tags": "", - "display_name": "Wilder - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/UjH2pdBnSE2N2MV4ebFgQe.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "e9472c5d7bda495d8813fb6bc757eaa3", - "labels": [ - "Youth", - "Natural", - "Ads" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/gb.png", - "locale": "en-GB", - "sort": 5, - "gender": "Female", - "tags": "", - "display_name": "Marieke - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/mVX39uo7mwzwMUxszXddPb.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "ec4aa6ac882147ffb679176d49f3e41f", - "labels": [ - "Middle-Aged", - "News", - "E-learning", - "Explainer" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 12, - "gender": "Male", - "tags": "Young Adult, Ads", - "display_name": "Eric - Newscaster", - "preview": { - "movio": "https://static.movio.la/voice_preview/QyfEredcYX3MKGkBGudZ9H.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "f5a3cb4edbfc4d37b5614ce118be7bc8", - "labels": [ - "Youth", - "News", - "E-learning", - "Explainer" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/gb.png", - "locale": "en-GB", - "sort": 2, - "gender": "Male", - "tags": "Young Adult, E-learning & Presentations, Product demos, Explainer Videos, News, Ads", - "display_name": "Ryan - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/CsXU4XY7SgPPQmo6ZEtnjN.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "f7658a75545d4b70b04d8784c07bd038", - "labels": [ - "Youth", - "News", - "E-learning", - "Ads" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 11, - "gender": "Male", - "tags": "Young Adult, News, Explainer Videos", - "display_name": "Lucas - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/9ex83FXgouLw6NVytasyH7.wav" - }, - "settings": { - "style": "newscast", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "fd6bf3b9c3254137aefbe36972c39349", - "labels": [ - "Youth", - "News", - "Narration", - "Explainer", - "E-learning" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 20, - "gender": "Female", - "tags": "Young Adult, Ads, Explainer Videos, E-learning & Presentations", - "display_name": "Jane - Serious", - "preview": { - "movio": "https://static.movio.la/voice_preview/iuocs4hoQUGTHJoLnzYYyf.wav" - }, - "settings": { - "style": "unfriendly", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "ff465a8dab0d42c78f874a135b11d47d", - "labels": [ - "Older", - "Audiobooks", - "Narration", - "News" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 21, - "gender": "Male", - "tags": "Middle-Age,E-learning & Presentations, Product demos, Explainer Videos, News, Ads", - "display_name": "Davis - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/MJy76NRegZK6zmnSzSn7qb.wav" - }, - "settings": { - "style": "general", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - } - ] - }, - "msg": null, - "message": null -} \ No newline at end of file diff --git a/heygen/voices.json b/heygen/voices.json deleted file mode 100644 index d43fe3f..0000000 --- a/heygen/voices.json +++ /dev/null @@ -1,13777 +0,0 @@ -{ - "code": 100, - "data": { - "list": [ - { - "voice_id": "001b5828d42b4f8b814ad7dbec3221e4", - "labels": [ - "Youth", - "Ads", - "Explainer", - "News" - ], - "language": "Bangla", - "flag": "https://static.movio.la/region_flags/in.png", - "locale": "bn-IN", - "sort": 1, - "gender": "Female", - "tags": "News, E-learning & Presentations, Audiobooks", - "display_name": "Aalia - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/4526c49ba75948078cf3e9ca074d2482.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "001cc6d54eae4ca2b5fb16ca8e8eb9bb", - "labels": [ - "Youth", - "Explainer" - ], - "language": "Spanish", - "flag": "https://static.movio.la/region_flags/es.png", - "locale": "es-ES", - "sort": 100, - "gender": "Male", - "tags": "", - "display_name": "Elias - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/JmCb3rgMZnCjCAA9aacnGj.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": null, - "lang": null, - "break": false, - "prosody": null, - "emphasis": "", - "say_as": null - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "00988b7d451d0722635ff7b2b9540a7b", - "labels": [ - "Youth", - "Ads", - "Explainer", - "Audiobooks" - ], - "language": "Portuguese", - "flag": "https://static.movio.la/region_flags/br.png", - "locale": "pt-BR", - "sort": 1, - "gender": "Female", - "tags": "Middle-Aged, News, Explainer Videos", - "display_name": "Brenda - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/fec6396adb73461c9997b2c0d7759b7b.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "009f4cb8d98a4febb45f8c82a5399b15", - "labels": [ - "Middle-Aged", - "Narration" - ], - "language": "Latvian", - "flag": "https://static.movio.la/region_flags/lv.png", - "locale": "lv-LV", - "sort": 100, - "gender": "Male", - "tags": "", - "display_name": "Tomass - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/KJ2e2TQQwY3fTEfj3P4KNN.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "00c8fd447ad7480ab1785825978a2215", - "labels": [ - "Youth", - "Audiobooks", - "Narration", - "Explainer" - ], - "language": "Chinese", - "flag": "https://static.movio.la/region_flags/cn.png", - "locale": "zh-CN", - "sort": 5, - "gender": "Female", - "tags": "Young Adult, Explainer Videos, Low-Pitched, Audiobooks, Product demos", - "display_name": "Xiaoxuan - Serious", - "preview": { - "movio": "https://static.movio.la/voice_preview/909633f8d34e408a9aaa4e1b60586865.wav" - }, - "settings": { - "style": "cheerful", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "00ed77fac8b84ffcb2ab52739b9dccd3", - "labels": [ - "Professional", - "Youth" - ], - "language": "Latvian", - "flag": "https://static.movio.la/region_flags/lv.png", - "locale": "lv-LV", - "sort": 100, - "gender": "Male", - "tags": "", - "display_name": "Nils - Affinity", - "preview": { - "movio": "https://static.movio.la/voice_preview/KwTwAz3R4aBFN69fEYQFdX.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "0130939032d74be594eadc8cc9d39415", - "labels": [ - "Youth", - "News", - "Narration", - "Audiobooks" - ], - "language": "Portuguese", - "flag": "https://static.movio.la/region_flags/pt.png", - "locale": "pt-PT", - "sort": 2, - "gender": "Female", - "tags": "Young Adult, Ads, Explainer Videos, Product demos", - "display_name": "Fernanda - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/6a5985f0ffd94106b8ecaa3a6c539cea.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "02bcf8702a424226a520b6229f318004", - "labels": [ - "Middle-Aged", - "Narration", - "Explainer", - "News" - ], - "language": "Portuguese", - "flag": "https://static.movio.la/region_flags/pt.png", - "locale": "pt-PT", - "sort": 4, - "gender": "Male", - "tags": "", - "display_name": "Cristiano - Friendly", - "preview": { - "movio": "https://static.movio.la/voice_preview/70dc80de5385461a841d55d4d729fe81.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "02bec3b4cb514722a84e4e18d596fddf", - "labels": [ - "Middle-Aged", - "News", - "E-learning", - "Narration" - ], - "language": "Arabic", - "flag": "https://static.movio.la/region_flags/ae.png", - "locale": "ar-AE", - "sort": 1, - "gender": "Female", - "tags": "Young Adult, Explainer Videos, News, Ads, Product demos", - "display_name": "Fatima - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/930a245487fe42158c810ac76b8ddbab.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "04e95f5bcb8b4620a2c4ef45b8a4481a", - "labels": [ - "Middle-Aged", - "Audiobooks", - "E-learning", - "News", - "Explainer" - ], - "language": "Ukrainian", - "flag": "https://static.movio.la/region_flags/ua.png", - "locale": "uk-UA", - "sort": 100, - "gender": "Female", - "tags": "Middle-Age,E-learning & Presentations, Product demos, Explainer Videos, News, Ads", - "display_name": "Polina - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/ntekV94yFpvv4RgBVPqW7c.wav" - }, - "settings": { - "style": "general", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "05113f7c98bb424d86b6ef07266002eb", - "labels": [ - "Youth", - "News", - "E-learning", - "Explainer" - ], - "language": "Arabic", - "flag": "https://static.movio.la/region_flags/qa.png", - "locale": "ar-QA", - "sort": 1, - "gender": "Female", - "tags": "Young Adult, Explainer Videos, News, Ads, Product demos", - "display_name": "Amal - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/01fd522c73ea44589985a8bc321047bd.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "06daa574b9824885a26eeb5916cbae36", - "labels": [ - "Youth", - "News", - "Ads", - "Explainer" - ], - "language": "Arabic", - "flag": "https://static.movio.la/region_flags/eg.png", - "locale": "ar-EG", - "sort": 1, - "gender": "Female", - "tags": "Young Adult, E-learning & Presentations, Product demos, Explainer Videos, News, Ads", - "display_name": "Salma - Friendly", - "preview": { - "movio": "https://static.movio.la/voice_preview/b6e67b75ee0648a2844a58fc5dc6aa02.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "071d6bea6a7f455b82b6364dab9104a2", - "labels": [ - "Youth", - "Ads", - "Explainer", - "E-learning" - ], - "language": "German", - "flag": "https://static.movio.la/region_flags/ch.png", - "locale": "de-CH", - "sort": 3, - "gender": "Male", - "tags": "Young Adult, E-learning & Presentations, Product demos, Explainer Videos, News, Ads", - "display_name": "Jan - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/fa3728bed81a4d11b8ccef10506af5f4.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "077ab11b14f04ce0b49b5f6e5cc20979", - "labels": [ - "Middle-Aged", - "Explainer" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 29, - "gender": "Male", - "tags": "", - "display_name": "Paul - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/k6dKrFe85PisZ3FMLeppUM.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "081f165a0d88432b991830e8deeac2e3", - "labels": [ - "Natural", - "Youth" - ], - "language": "Georgian", - "flag": "https://static.movio.la/region_flags/ge.png", - "locale": "ka-GE", - "sort": 100, - "gender": "Female", - "tags": "", - "display_name": "Eka - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/PTJsw78ZtXsEQrK8YWZrZV.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "0822c6351a75446f8f21ed4c3430ff9e", - "labels": [ - "Middle-Aged", - "Explainer" - ], - "language": "Malay", - "flag": "https://static.movio.la/region_flags/my.png", - "locale": "ms-MY", - "sort": 100, - "gender": "Female", - "tags": "", - "display_name": "Norazila - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/eppfCMA366E7uomDSwo5GS.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "08284d3fc63a424fbe80cc1864ed2540", - "labels": [ - "Youth", - "Professional" - ], - "language": "Spanish", - "flag": "https://static.movio.la/region_flags/es.png", - "locale": "es-ES", - "sort": 1, - "gender": "Male", - "tags": "", - "display_name": "Dario - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/3e9rdESHjEWSTRUA2j6bjr.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "086b225655694cd9ae60e712469ce474", - "labels": [ - "Older", - "Narration", - "Natural" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/gb.png", - "locale": "en-GB", - "sort": 100, - "gender": "male", - "tags": "", - "display_name": "Arthur - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/au9cu3oknHoCTr3YtVjKAf.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "088b81175b7b4dcabc7179a94467dd06", - "labels": [ - "Youth", - "Natural" - ], - "language": "Estonian", - "flag": "https://static.movio.la/region_flags/ee.png", - "locale": "et-EE", - "sort": 100, - "gender": "Female", - "tags": "", - "display_name": "Anu - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/dS6ddV2dYYJiugXNzRCi9f.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "09465ad8e28d48f9affe795679e4be0e", - "labels": [ - "News", - "E-learning", - "Explainer" - ], - "language": "Filipino", - "flag": "https://static.movio.la/region_flags/ph.png", - "locale": "fil-PH", - "sort": 2, - "gender": "Male", - "tags": "", - "display_name": "Nathan", - "preview": { - "movio": "https://static.movio.la/voice_preview/MQ3gG3pjzGXxmUms6moiAJ.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "0add44a212634cee8eddc30067f0249f", - "labels": [ - "Explainer", - "Natural" - ], - "language": "Sinhala", - "flag": "https://static.movio.la/region_flags/lk.png", - "locale": "si-LK", - "sort": 100, - "gender": "female", - "tags": "", - "display_name": "Thilini - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/K5SChTdyygNGYcmWBatJ48.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": null, - "lang": null, - "break": false, - "prosody": null, - "emphasis": "", - "say_as": null - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "0b27aae7db574ebca04c89bf6bba2641", - "labels": [ - "Middle-Aged", - "Explainer" - ], - "language": "Catalan", - "flag": "https://static.movio.la/region_flags/es.png", - "locale": "ca-ES", - "sort": 100, - "gender": "Female", - "tags": "", - "display_name": "Alba - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/nBZ5aMn2MKFPtFr2zjUx4B.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "0bde88bedf264a52befce6ae6d6c70be", - "labels": [ - "Middle-Aged", - "News", - "Explainer", - "Ads" - ], - "language": "Czech", - "flag": "https://static.movio.la/region_flags/cz.png", - "locale": "cs-CZ", - "sort": 1, - "gender": "Male", - "tags": "Middle-Aged, News, Explainer Videos", - "display_name": "Honza - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/093367236bf3412babde3d9fe0667497.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "0bfddc0290474a849a6626031d312ebf", - "labels": [ - "Middle-Aged", - "News", - "Explainer", - "Ads" - ], - "language": "Lithuanian", - "flag": "https://static.movio.la/region_flags/lt.png", - "locale": "lt-LT", - "sort": 1, - "gender": "Male", - "tags": "Young Adult, News, Explainer Videos, Product demos", - "display_name": "Leonas - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/4503e31fbe864f799268e1afb7761b7e.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "0e051caf8e0947a18870ee24bbbfce36", - "labels": [ - "Middle-Aged", - "News", - "Narration", - "Ads" - ], - "language": "French", - "flag": "https://static.movio.la/region_flags/ch.png", - "locale": "fr-CH", - "sort": 3, - "gender": "Female", - "tags": "Young Adult, News, Product demos, Explainer Videos, Customer Service", - "display_name": "Ariane - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/3f7b2cd2e2dc468fb2160728462d17cd.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "0ebe70d83b2349529e56492c002c9572", - "labels": [ - "Middle-Aged", - "Natural", - "Explainer" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 19, - "gender": "Male", - "tags": "", - "display_name": "Antoni - Friendly", - "preview": { - "movio": "https://static.movio.la/voice_preview/TwupgZ2az5RiTnmAifPmmS.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "0f059f9e54284391b48300f916cc6a01", - "labels": [ - "Youth", - "Ads", - "E-learning", - "Explainer" - ], - "language": "French", - "flag": "https://static.movio.la/region_flags/fr.png", - "locale": "fr-FR", - "sort": 5, - "gender": "Female", - "tags": "Middle-Aged, News, E-learning & Presentations, Explainer Videos", - "display_name": "Celeste - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/ebde256ffc2d4e14a0542bf4bd8719fa.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "0fd2f1a46fb14bd0a8018822f111ad92", - "labels": [ - "Youth", - "E-learning", - "Audiobooks", - "News", - "Explainer" - ], - "language": "Dutch", - "flag": "https://static.movio.la/region_flags/be.png", - "locale": "nl-BE", - "sort": 10, - "gender": "Male", - "tags": "oung Adult, E-learning & Presentations, Product demos, Explainer Videos, News, Ads", - "display_name": "Arnaud - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/S3W9CEXxdgVYhDhDSVUpTL.wav" - }, - "settings": { - "style": "general", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "107ec6a82944431ebb6dd0652ecb42d0", - "labels": [ - "Middle-Aged", - "News", - "Ads", - "Explainer" - ], - "language": "Japanese", - "flag": "https://static.movio.la/region_flags/jp.png", - "locale": "ja-JP", - "sort": 1, - "gender": "Male", - "tags": "Young Adult, Ads, News, Explainer Videos", - "display_name": "Keita - Newscaster", - "preview": { - "movio": "https://static.movio.la/voice_preview/da7b395e99ea41a0acda700727a8cc6d.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "1119d921713542f1a7e0f89035c6453a", - "labels": [ - "Narration", - "E-learning", - "Natural" - ], - "language": "Kiswahili", - "flag": "https://static.movio.la/region_flags/tz.png", - "locale": "sw-TZ", - "sort": 100, - "gender": "female", - "tags": "", - "display_name": "Rehema - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/d8iyhxa5ugBRiD6T2fQgU.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": null, - "lang": null, - "break": false, - "prosody": null, - "emphasis": "", - "say_as": null - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "11815f082eea4e4ba3b3952ad05c0097", - "labels": [ - "Middle-Aged", - "Explainer", - "News", - "Ads" - ], - "language": "Arabic", - "flag": "https://static.movio.la/region_flags/ma.png", - "locale": "ar-MA", - "sort": 1, - "gender": "Male", - "tags": "Young Adult, Explainer Videos, News, Ads, Product demos", - "display_name": "Jamal - Newscaster", - "preview": { - "movio": "https://static.movio.la/voice_preview/a20f914b0d6c448b81df16589f82fe2d.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "118e0e91a87a4e60a1353a438b3601ac", - "labels": [ - "Youth", - "Ads", - "Explainer", - "News", - "Narration" - ], - "language": "Chinese", - "flag": "https://static.movio.la/region_flags/hk.png", - "locale": "zh-HK", - "sort": 2, - "gender": "Female", - "tags": "Young Adult, Explainer Videos, Ads, Audiobooks, E-learning & Presentations", - "display_name": "HiuMaan - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/532bed404357485a9c4e6aaae734e750.wav" - }, - "settings": { - "style": "General", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "11a14f71bed84ba7a62ae43153aa48c2", - "labels": [ - "Youth", - "Ads", - "Explainer", - "E-learning" - ], - "language": "German", - "flag": "https://static.movio.la/region_flags/de.png", - "locale": "de-DE", - "sort": 7, - "gender": "Female", - "tags": "Young Adult, News, Explainer Videos, Youtube", - "display_name": "Tanja - Serious", - "preview": { - "movio": "https://static.movio.la/voice_preview/edc9fa2428164c278cdb44afe572b111.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "1278e97c07734d60b0c2fee4d6cccbfe", - "labels": [ - "Middle-Aged", - "News", - "Audiobooks", - "Narration" - ], - "language": "German", - "flag": "https://static.movio.la/region_flags/de.png", - "locale": "de-DE", - "sort": 7, - "gender": "Male", - "tags": "Middle-Aged, News, Explainer Videos, E-learning & Presentations, Audiobooks", - "display_name": "Gunter - Calm", - "preview": { - "movio": "https://static.movio.la/voice_preview/2e13f77976d940a5a5ae36265547082f.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "130c008c0e8e4454abcb086769b84638", - "labels": [ - "Youth", - "E-learning", - "Ads" - ], - "language": "Dutch", - "flag": "https://static.movio.la/region_flags/nl.png", - "locale": "nl-NL", - "sort": 150, - "gender": "male", - "tags": "", - "display_name": "Ernie - Friendly", - "preview": { - "movio": "https://static.movio.la/voice_preview/6NChw5zoAFiRe8nAk2VH6Z.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "131a436c47064f708210df6628ef8f32", - "labels": [ - "Youth", - "Ads", - "Explainer", - "E-learning" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 36, - "gender": "Female", - "tags": "Young Adult, Ads, Explainer Videos, E-learning & Presentations", - "display_name": "Amber - Friendly", - "preview": { - "movio": "https://static.movio.la/voice_preview/5HHGT48B6g6aSg2buYcBvw.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "143784cc55cb44e080dc86a16ed8fb14", - "labels": [ - "Narration", - "Youth" - ], - "language": "Hebrew", - "flag": "https://static.movio.la/region_flags/il.png", - "locale": "he-IL", - "sort": 100, - "gender": "female", - "tags": "", - "display_name": "Ruth - Calm", - "preview": { - "movio": "https://static.movio.la/voice_preview/jAEtW9rMyB8H3zifjRegR6.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": null, - "lang": null, - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": null - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "15ea92317dfe4abc858b08be62bd8e93", - "labels": [ - "Middle-Aged", - "News", - "Audiobooks", - "Narration" - ], - "language": "Portuguese", - "flag": "https://static.movio.la/region_flags/br.png", - "locale": "pt-BR", - "sort": 5, - "gender": "Male", - "tags": "", - "display_name": "Ricardo - Calm", - "preview": { - "movio": "https://static.movio.la/voice_preview/47d1469c5c434e6ab153fe69904687ac.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "164126a02bc04b1685ea69030fbcfc1e", - "labels": [ - "Natural", - "Middle-Aged", - "Narration" - ], - "language": "Malay", - "flag": "https://static.movio.la/region_flags/my.png", - "locale": "ms-MY", - "sort": 100, - "gender": "Female", - "tags": "", - "display_name": "Intan - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/hjEaP5TaoEfCxWaKu6b9j9.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "164a2f29f0104dc896aa2e8c2584cf5f", - "labels": [ - "Youth", - "Narration", - "Natural" - ], - "language": "Indonesian", - "flag": "https://static.movio.la/region_flags/id.png", - "locale": "id-ID", - "sort": 100, - "gender": "Female", - "tags": "", - "display_name": "Citra - Warm", - "preview": { - "movio": "https://static.movio.la/voice_preview/PVXz2vRF3sDQcqjpP7FzPS.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "16ac5c3dc8b14834b52347286c9b350d", - "labels": [ - "Middle-Aged", - "Narration" - ], - "language": "Thai", - "flag": "https://static.movio.la/region_flags/th.png", - "locale": "th-TH", - "sort": 100, - "gender": "Female", - "tags": "", - "display_name": "Somsak - Gently", - "preview": { - "movio": "https://static.movio.la/voice_preview/EtpZAUNZukeipJ9XGrnghw.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "16bbafee7735447296185046b04a05d2", - "labels": [], - "language": "Kannada", - "flag": "https://static.movio.la/region_flags/in.png", - "locale": "kn-IN", - "sort": 1, - "gender": "Male", - "tags": "Young Adult, Explainer Videos, E-learning & Presentations, Ads", - "display_name": "Gagan - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/b0ce43d581744a80b02f8b1cb2cf8d08.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "178f3d2599b04697b65b6cf03c377a1e", - "labels": [ - "Natural", - "Youth" - ], - "language": "Tamil", - "flag": "https://static.movio.la/region_flags/in.png", - "locale": "ta-IN", - "sort": 100, - "gender": "Male", - "tags": "", - "display_name": "Valluvar - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/EeRJjYausrCjTyCnTTn3hb.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "1840d6dd209541d18ce8fdafbdbf8ed8", - "labels": [ - "Audiobooks", - "Ads", - "Youth" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 23, - "gender": "Male", - "tags": "", - "display_name": "Sam - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/cGGnM8FCWYJBqCEgbEfM59.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "18d006d24dd84e438ae7ec886045c281", - "labels": [ - "Youth", - "Professional" - ], - "language": "Vietnamese", - "flag": "https://static.movio.la/region_flags/vn.png", - "locale": "vi-VN", - "sort": 100, - "gender": "Female", - "tags": "", - "display_name": "Nhung - Gently", - "preview": { - "movio": "https://static.movio.la/voice_preview/66fZyzWWHs3n8wcxAGMKGW.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "1956ee743a61677602bbef9cfc48ebb9", - "labels": [ - "Middle-Aged", - "News", - "Audiobooks", - "E-learning" - ], - "language": "Portuguese", - "flag": "https://static.movio.la/region_flags/br.png", - "locale": "pt-BR", - "sort": 6, - "gender": "Male", - "tags": "Young Adult, Ads, Audiobooks, E-learning & Presentations", - "display_name": "Fabio - Newscaster", - "preview": { - "movio": "https://static.movio.la/voice_preview/d098ea6b02fe40d0b859f72583892ac1.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "19e93c4e7713495894a42b80fcff866c", - "labels": [ - "Youth", - "Natural" - ], - "language": "Romanian", - "flag": "https://static.movio.la/region_flags/ro.png", - "locale": "ro-RO", - "sort": 100, - "gender": "Female", - "tags": "", - "display_name": "Alina - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/ddF5y3GpfzhfmpcKeUN4uZ.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "1a32e06dde934e69ba2a98a71675dc16", - "labels": [ - "Middle-Aged", - "Audiobooks", - "News", - "Explainer" - ], - "language": "Spanish", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "es-US", - "sort": 4, - "gender": "Male", - "tags": "Young Adult, Ads, Product demos, Explainer Videos", - "display_name": "Alonso - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/224558e689bd4d8ba9b7de1205527448.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "1a966c7d97c349e19c6d9e74f2f2ea47", - "labels": [ - "Middle-Aged", - "Narration", - "News", - "Audiobooks" - ], - "language": "Dutch", - "flag": "https://static.movio.la/region_flags/be.png", - "locale": "nl-BE", - "sort": 10, - "gender": "Female", - "tags": "Middle-Age,E-learning & Presentations, Product demos, Explainer Videos, News, Ads", - "display_name": "Dena - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/nNSpZoZraHC54P9FUJmkAC.wav" - }, - "settings": { - "style": "general", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "1ae3be1e24894ccabdb4d8139399f721", - "labels": [ - "Middle-Aged", - "E-learning", - "Audiobooks", - "News" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 1, - "gender": "Male", - "tags": "Middle-Age,E-learning & Presentations, Product demos, Explainer Videos, News, Ads", - "display_name": "Tony - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/LQUcrBcVHDMCSP5cX93CVd.wav" - }, - "settings": { - "style": "general", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "1b41a20629554233bea22e0118e86f0d", - "labels": [ - "Middle-Aged" - ], - "language": "Croatian", - "flag": "https://static.movio.la/region_flags/hr.png", - "locale": "hr-HR", - "sort": 100, - "gender": "Female", - "tags": "", - "display_name": "Gabrijela - Calm", - "preview": { - "movio": "https://static.movio.la/voice_preview/8DUrw3S6YHTrYBKWnzusqN.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "1bd001e7e50f421d891986aad5158bc8", - "labels": [ - "Youth", - "E-learning", - "Ads", - "Explainer" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 2, - "gender": "Female", - "tags": "Young Adult, Customer Service, Explainer Videos, Cheerful", - "display_name": "Sara - Cheerful", - "preview": { - "movio": "https://static.movio.la/voice_preview/func8CFnfVLKF2VzGDCDCR.wav" - }, - "settings": { - "style": "cheerful", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "1c26d407c3074956871430ca0789b570", - "labels": [ - "Youth" - ], - "language": "Serbian", - "flag": "https://static.movio.la/region_flags/rs.png", - "locale": "sr-RS", - "sort": 1, - "gender": "Female", - "tags": "Young Adult, Explainer Videos, Product demos, News, Low-Pitched", - "display_name": "Sophie - Calm", - "preview": { - "movio": "https://static.movio.la/voice_preview/6M5j6nV8oD3mnRPqvsJ4Ks.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "1cf54d7f9039462aae36b33728b09e3d", - "labels": [ - "Middle-Aged", - "Ads", - "Explainer", - "Narration", - "Natural" - ], - "language": "Swedish", - "flag": "https://static.movio.la/region_flags/se.png", - "locale": "sv-SE", - "sort": 10, - "gender": "Female", - "tags": "", - "display_name": "Astrid - Friendly", - "preview": { - "movio": "https://static.movio.la/voice_preview/HpV9ZhWJLBAzD4ZtWBmDo7.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "1d8e477dd21b40c1ab6726e50329a765", - "labels": [ - "Youth", - "Ads", - "E-learning", - "Natural" - ], - "language": "Norwegian", - "flag": "https://static.movio.la/region_flags/no.png", - "locale": "nb-NO", - "sort": 100, - "gender": "Female", - "tags": "", - "display_name": "Iselin - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/BaLYTHH7b3jiM3zCERCTfv.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "1e51f4123ee24c958781c8d66178ad08", - "labels": [ - "Middle-Aged", - "News", - "Ads", - "Explainer" - ], - "language": "Arabic", - "flag": "https://static.movio.la/region_flags/ly.png", - "locale": "ar-LY", - "sort": 1, - "gender": "Male", - "tags": "Young Adult, E-learning & Presentations, Product demos, Explainer Videos, News, Ads", - "display_name": "Omar - Calm", - "preview": { - "movio": "https://static.movio.la/voice_preview/723dda62843b49bf9376b3a2ea609cee.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "1ef3312fdf2347f8a7f3e9bcbf26144f", - "labels": [ - "Youth", - "Professional" - ], - "language": "Urdu", - "flag": "https://static.movio.la/region_flags/in.png", - "locale": "ur-IN", - "sort": 100, - "gender": "Female", - "tags": "", - "display_name": "Gul - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/5uRES5hcToCi7yUzmaRsh3.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "1fe966a9dfa14b16ab4d146fabe868b5", - "labels": [ - "Child", - "Audiobooks", - "Ads", - "Games" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 21, - "gender": "Female", - "tags": "Child, Audiobooks", - "display_name": "Ana - Cheerful", - "preview": { - "movio": "https://static.movio.la/voice_preview/T4MYTkhp7F5SA9HRXHzL9A.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "20eab658d6c240c58554553593197ed9", - "labels": [ - "Natural", - "Youth" - ], - "language": "Finnish", - "flag": "https://static.movio.la/region_flags/fi.png", - "locale": "fi-FI", - "sort": 100, - "gender": "Female", - "tags": "", - "display_name": "Selma - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/YSQJikCifzGLik8xegVDxD.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "20fbb2cf29f3450c904a3779758ccaf6", - "labels": [ - "Middle-Aged", - "News", - "Audiobooks", - "E-learning" - ], - "language": "Arabic", - "flag": "https://static.movio.la/region_flags/ye.png", - "locale": "ar-YE", - "sort": 1, - "gender": "Male", - "tags": "Young Adult, Explainer Videos, News, Ads, Product demos, Youtube", - "display_name": "Saleh - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/47db78d3eff14adeaefe718b7c1a0b2f.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "2134698646ea49e290d444596d3806cd", - "labels": [ - "Youth", - "Ads", - "Explainer", - "E-learning" - ], - "language": "German", - "flag": "https://static.movio.la/region_flags/at.png", - "locale": "de-AT", - "sort": 2, - "gender": "Male", - "tags": "Young Adult, News, Explainer Videos, E-learning & Presentations", - "display_name": "Jonas - Friendly", - "preview": { - "movio": "https://static.movio.la/voice_preview/424d178de7394689ad37c943e794f01c.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "21d9632a2fc842308ad9b5c5b5014e3a", - "labels": [ - "Youth", - "News", - "Ads", - "Explainer" - ], - "language": "German", - "flag": "https://static.movio.la/region_flags/de.png", - "locale": "de-DE", - "sort": 1, - "gender": "Female", - "tags": "Young Adult, News, Explainer Videos, Ads", - "display_name": "Amala - Warm", - "preview": { - "movio": "https://static.movio.la/voice_preview/4c72e33446264a0ab956989639651049.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "2259b11ddd664c4f84e98f59819f4cc5", - "labels": [ - "Youth", - "News", - "E-learning", - "Explainer", - "Ads" - ], - "language": "Bangla", - "flag": "https://static.movio.la/region_flags/bd.png", - "locale": "bn-BD", - "sort": 1, - "gender": "Male", - "tags": "Young Adult, Explainer Videos, E-learning & Presentations", - "display_name": "Pradeep - Newscaster", - "preview": { - "movio": "https://static.movio.la/voice_preview/c451f3720f1d4b5882c6d85a7d9013d0.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "232e3bb29f3b45d695f873503af7068c", - "labels": [ - "Narration", - "Professional", - "Explainer", - "E-learning" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 3, - "gender": "Female", - "tags": "", - "display_name": "Scarlett - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/gp5RLjAtsywQ3XdU4khisX.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "239530900b9c409ebb6d25ec73266094", - "labels": [ - "Natural", - "Explainer" - ], - "language": "Hebrew", - "flag": "https://static.movio.la/region_flags/il.png", - "locale": "he-IL", - "sort": 100, - "gender": "female", - "tags": "", - "display_name": "Sarah - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/HWdUhbGNWsxL2MHZPWqYrY.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": null, - "lang": null, - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": null - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "23e526605d744f66b85a7eb5116db028", - "labels": [ - "Youth", - "Natural", - "Professional" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 15, - "gender": "male", - "tags": "", - "display_name": "Ethan - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/bFtUTV3c3Hiew3NbXnmQYN.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "255f8e3f207d4cf58632f0ee48ea75ef", - "labels": [ - "Youth", - "Ads", - "Explainer", - "E-learning" - ], - "language": "French", - "flag": "https://static.movio.la/region_flags/fr.png", - "locale": "fr-FR", - "sort": 6, - "gender": "Female", - "tags": "oung Adult, Ads, Explainer Videos, E-learning & Presentations", - "display_name": "Yvette - Warm", - "preview": { - "movio": "https://static.movio.la/voice_preview/a300600fb4e240c081d76b7acadf5884.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "25ecd686af554bfd8007b6a95210f776", - "labels": [ - "Natural", - "Middle-Aged", - "Ads" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 23, - "gender": "Male", - "tags": "", - "display_name": "Adam - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/nXc2bvzC9srTpkvCtyATPn.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "25ef3e4d1a4846a58a5f4c3b1a7f70a8", - "labels": [ - "Youth", - "Explainer", - "E-learning", - "News" - ], - "language": "Chinese", - "flag": "https://static.movio.la/region_flags/cn.png", - "locale": "zh-CN", - "sort": 8, - "gender": "Female", - "tags": "Young Adult, Customer Service, Explainer Videos, E-learning & Presentations, Audiobooks", - "display_name": "Xiaoyan - Newscaster", - "preview": { - "movio": "https://static.movio.la/voice_preview/bbb68c7a2d794b27b9936b985658600c.wav" - }, - "settings": { - "style": "customerservice", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "267604df751e4934b041a9eea2dafd3f", - "labels": [ - "Natural", - "Youth" - ], - "language": "Thai", - "flag": "https://static.movio.la/region_flags/th.png", - "locale": "th-TH", - "sort": 100, - "gender": "Male", - "tags": "", - "display_name": "Niwat - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/7dFcsotT79NZXpkJH62G6m.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "269792ff849b43b7b1488a6783a58563", - "labels": [ - "Youth", - "Natural" - ], - "language": "Indonesian", - "flag": "https://static.movio.la/region_flags/id.png", - "locale": "id-ID", - "sort": 100, - "gender": "Male", - "tags": "", - "display_name": "Slamet - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/AjNHU6oajDPDpmdTuhXA6E.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "26b1ed2a6dd8439abb8e788b762f0d77", - "labels": [ - "Middle-Aged", - "Explainer", - "Ads" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 31, - "gender": "Female", - "tags": "", - "display_name": "Jodi - Cheerful", - "preview": { - "movio": "https://static.movio.la/voice_preview/MVjZYiF7jZFwN2EZG96HqM.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "285900cdfd1641e0b163e97a96973212", - "labels": [ - "Youth", - "Ads", - "E-learning", - "Explainer" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 16, - "gender": "Female", - "tags": "Young Adult, E-learning & Presentations, Product demos, Explainer Videos, News, Ads", - "display_name": "Monica - Calm", - "preview": { - "movio": "https://static.movio.la/voice_preview/A28mKDAgwgmKD8KdG68rkZ.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "289430c137354573a3ab773c91f05094", - "labels": [ - "Youth", - "Explainer", - "E-learning", - "Narration" - ], - "language": "Japanese", - "flag": "https://static.movio.la/region_flags/jp.png", - "locale": "ja-JP", - "sort": 1, - "gender": "Female", - "tags": "Young Adult, Ads, Cheerful, Youtube", - "display_name": "Himari - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/43ed4fbde9d34f7f8c89a28ee211e9ac.wav" - }, - "settings": { - "style": "cheerful", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "28f7220adbc144eeba42d70e1e969b29", - "labels": [ - "Youth", - "Ads", - "Explainer", - "E-learning" - ], - "language": "Spanish", - "flag": "https://static.movio.la/region_flags/mx.png", - "locale": "es-MX", - "sort": 2, - "gender": "Female", - "tags": "Young Adult, News, E-learning & Presentations, Explainer Videos, Engaging", - "display_name": "Dalia - Friendly", - "preview": { - "movio": "https://static.movio.la/voice_preview/6c218dc0bc8243fa825acbc37e6a6300.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "290fbbc65583416c9bffa47ce05914fd", - "labels": [ - "Middle-Aged", - "News", - "Ads", - "Explainer" - ], - "language": "Filipino", - "flag": "https://static.movio.la/region_flags/ph.png", - "locale": "fil-PH", - "sort": 1, - "gender": "Female", - "tags": "Middle-Aged, Explainer Videos, E-learning & Presentations, Product demos", - "display_name": "Blessica - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/1eddbf0d6b1046d48ee5ce71c03efc28.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "2b0243115175488fbd6b42940c1d1dad", - "labels": [ - "Middle-Aged", - "News", - "E-learning", - "Explainer", - "Ads" - ], - "language": "Arabic", - "flag": "https://static.movio.la/region_flags/kw.png", - "locale": "ar-KW", - "sort": 1, - "gender": "Male", - "tags": "Young Adult, E-learning & Presentations, Product demos, Explainer Videos, News, Ads", - "display_name": "Fahed - Calm", - "preview": { - "movio": "https://static.movio.la/voice_preview/714282e4e3d04798b082c55243f377ba.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "2b9762b9199b41c7b473936248ad4a06", - "labels": [ - "Middle-Aged", - "Narration" - ], - "language": "Spanish", - "flag": "https://static.movio.la/region_flags/es.png", - "locale": "es-ES", - "sort": 100, - "gender": "Male", - "tags": "", - "display_name": "Arnau - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/F7fZNmXwQm9ZQ9C2FjgiCa.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "2c56cc1229214db587034c56a69df99a", - "labels": [ - "Middle-Aged", - "E-learning", - "Audiobooks", - "Explainer", - "News" - ], - "language": "Ukrainian", - "flag": "https://static.movio.la/region_flags/ua.png", - "locale": "uk-UA", - "sort": 100, - "gender": "Male", - "tags": "Middle-Age,E-learning & Presentations, Product demos, Explainer Videos, News, Ads", - "display_name": "Ostap - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/fFNZUitfpmJhiamt3724Eo.wav" - }, - "settings": { - "style": "general", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "2d5b0e6cf36f460aa7fc47e3eee4ba54", - "labels": [ - "Youth", - "Audiobooks", - "Narration", - "Explainer" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/gb.png", - "locale": "en-GB", - "sort": 26, - "gender": "Female", - "tags": "Young Adult, E-learning & Presentations, Product demos, Explainer Videos, News, Ads", - "display_name": "Sonia - Warm", - "preview": { - "movio": "https://static.movio.la/voice_preview/nZzCSavZkP37XSyc5CrzS7.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "2f686fff829b47128078fa093ff33f7d", - "labels": [ - "Youth", - "Explainer", - "Natural" - ], - "language": "Malay", - "flag": "https://static.movio.la/region_flags/my.png", - "locale": "ms-MY", - "sort": 100, - "gender": "Male", - "tags": "", - "display_name": "Aiman - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/Q347gpeNJbiZuetTDMcCmT.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "2f72ee82b83d4b00af16c4771d611752", - "labels": [ - "Youth", - "Explainer", - "Narration", - "E-learning" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 1, - "gender": "Female", - "tags": "Young Adult, Customer Service", - "display_name": "Jenny - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/XTyya7QKzhwvwDrVQLTvoQ.wav" - }, - "settings": { - "style": "customerservice", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "2f84d49c51a741f3a5be283b0fc4f94c", - "labels": [ - "Youth", - "Natural" - ], - "language": "Spanish", - "flag": "https://static.movio.la/region_flags/uy.png", - "locale": "es-UY", - "sort": 100, - "gender": "Female", - "tags": "", - "display_name": "Valentina - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/EQGZ99dT3kzrPutENe6GCH.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "2f90470a903f47059d4306267eef65e5", - "labels": [], - "language": "Nepali", - "flag": "https://static.movio.la/region_flags/np.png", - "locale": "ne-NP", - "sort": 100, - "gender": "Female", - "tags": "", - "display_name": "Hemkala - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/djR3X8UzbeMYzyf8bFhWRf.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "30d0ff3bedfe4641a1c27062f8028229", - "labels": [ - "Middle-Aged", - "Narration", - "Explainer" - ], - "language": "Catalan", - "flag": "https://static.movio.la/region_flags/es.png", - "locale": "ca-ES", - "sort": 100, - "gender": "Female", - "tags": "", - "display_name": "Claudia - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/jS6c5BWxTXNTHgW35X9JQW.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "317a44d6bd2249999896f0ec961f1560", - "labels": [ - "Child", - "Ads", - "Audiobooks" - ], - "language": "German", - "flag": "https://static.movio.la/region_flags/de.png", - "locale": "de-DE", - "sort": 8, - "gender": "Female", - "tags": "Child", - "display_name": "Gisela - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/bcc5d657d71a478898df8608d29d421e.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "31ca37770fab4dd39f27a3dca368c984", - "labels": [ - "Youth", - "Ads", - "Explainer", - "News" - ], - "language": "Hungarian", - "flag": "https://static.movio.la/region_flags/hu.png", - "locale": "hu-HU", - "sort": 1, - "gender": "Female", - "tags": "Young Adult, Explainer Videos, Product demos, Ads, E-learning & Presentations", - "display_name": "Noemi - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/7a01ffcc08264f5b9e75a8d397e866e7.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "32254053e5de43d18ec1e6095fbc6a16", - "labels": [ - "Middle-Aged", - "Narration" - ], - "language": "Spanish", - "flag": "https://static.movio.la/region_flags/es.png", - "locale": "es-ES", - "sort": 105, - "gender": "Female", - "tags": "", - "display_name": "Sofia - Calm", - "preview": { - "movio": "https://static.movio.la/voice_preview/4hJnpBj2pKDFJWXhakrNWz.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "331f1cc78737475b946079cb3d2f5ffc", - "labels": [ - "Youth", - "Natural" - ], - "language": "Vietnamese", - "flag": "https://static.movio.la/region_flags/vn.png", - "locale": "vi-VN", - "sort": 100, - "gender": "Female", - "tags": "", - "display_name": "Storm - Kindly", - "preview": { - "movio": "https://static.movio.la/voice_preview/XzWBnGpqF8Zaoyo2HFNWKc.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "340db80b009349c3a0aa1ab21abb3a14", - "labels": [ - "Youth", - "Natural" - ], - "language": "Urdu", - "flag": "https://static.movio.la/region_flags/pk.png", - "locale": "ur-PK", - "sort": 100, - "gender": "Male", - "tags": "", - "display_name": "Asad - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/Cb4HXBwafo9qsPwUNQnSsH.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "35f6b6ac010849d38cfc99dc25e0e4b3", - "labels": [ - "Youth", - "Explainer", - "Narration", - "News" - ], - "language": "Chinese", - "flag": "https://static.movio.la/region_flags/hk.png", - "locale": "zh-HK", - "sort": 3, - "gender": "Male", - "tags": "Young Adult, News, Explainer Videos, Ads, Low-Pitched", - "display_name": "WanLung - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/945d8ff1f30a45748aee607dd7ddf927.wav" - }, - "settings": { - "style": "General", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "36664759e6d141d78fe3244b8c3acc71", - "labels": [ - "Middle-Aged", - "Audiobooks" - ], - "language": "Spanish", - "flag": "https://static.movio.la/region_flags/es.png", - "locale": "es-ES", - "sort": 100, - "gender": "Female", - "tags": "", - "display_name": "Mia - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/3vs7RXHTyuD4YSDt63CYtR.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "3729e0d85cec4e2f925b9e23913ac4f9", - "labels": [ - "Youth", - "E-learning", - "Ads" - ], - "language": "Catalan", - "flag": "https://static.movio.la/region_flags/es.png", - "locale": "ca-ES", - "sort": 10, - "gender": "Female", - "tags": "", - "display_name": "Arlet - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/dGCHqNr45BvtbdEjWM5p6f.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "37945e6f3b6744f4b379a3d3340ed422", - "labels": [ - "Middle-Aged", - "Narration", - "Audiobooks", - "Explainer" - ], - "language": "Dutch", - "flag": "https://static.movio.la/region_flags/nl.png", - "locale": "nl-NL", - "sort": 150, - "gender": "Female", - "tags": "", - "display_name": "Harriet - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/FCoMqr49XxDbJ45Rnb2yRe.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "37f7ef47d2b6498e8781e168979b10df", - "labels": [ - "Youth", - "News", - "Narration", - "E-learning" - ], - "language": "Spanish", - "flag": "https://static.movio.la/region_flags/ar.png", - "locale": "es-AR", - "sort": 6, - "gender": "Male", - "tags": "Young Adult, News, E-learning & Presentations, Explainer Videos, Product demos", - "display_name": "Tomas - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/264c67b5de514049812d19bca886c5dd.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "392eb53b771c4051951494c0e7fb36c9", - "labels": [ - "Youth", - "Ads" - ], - "language": "Swedish", - "flag": "https://static.movio.la/region_flags/se.png", - "locale": "sv-SE", - "sort": 155, - "gender": "Female", - "tags": "", - "display_name": "Rita - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/hCqrWb2FBxTYFcp9A4NvRe.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": null, - "lang": null, - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": null - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "3a50a58bf6ac4707a34d1f51dbe9fb36", - "labels": [ - "Youth", - "Natural", - "Ads" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 7, - "gender": "male", - "tags": "", - "display_name": "Lester-Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/Sk3qbPC75xTKTbha8RtFTA.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "3a87612e2cd14705a3b419f959e8120b", - "labels": [ - "Professional", - "News", - "Explainer" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 10, - "gender": "male", - "tags": "", - "display_name": "Douglas-Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/gHt2VDM4GPdkqWnG2jzzsY.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "3b1633a466c44379bf8b5a2884727588", - "labels": [ - "Youth", - "Ads", - "Explainer", - "Narration" - ], - "language": "Chinese", - "flag": "https://static.movio.la/region_flags/tw.png", - "locale": "zh-TW", - "sort": 2, - "gender": "Male", - "tags": "Young Adult, News, Explainer Videos, Low-Pitched, Audiobooks, E-learning & Presentations", - "display_name": "YunJhe - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/7b043826fb284b5c98efda305fb3e184.wav" - }, - "settings": { - "style": "General", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "3df9f559da8d4f888bc497f62a7078d2", - "labels": [ - "Ads", - "Natural", - "E-learning" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 8, - "gender": "Female", - "tags": "", - "display_name": "Claire - Cheerful", - "preview": { - "movio": "https://static.movio.la/voice_preview/ENvqqe6JcDXUHWPZvE8E4.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "3e17ba521ba94ceab92838352644aba1", - "labels": [ - "Middle-Aged", - "News", - "Audiobooks", - "Explainer" - ], - "language": "German", - "flag": "https://static.movio.la/region_flags/de.png", - "locale": "de-DE", - "sort": 4, - "gender": "Male", - "tags": "Middle-Aged, Product demos, Explainer Videos", - "display_name": "Kasper - Newscaster", - "preview": { - "movio": "https://static.movio.la/voice_preview/2a411531e0a5410f824f2e9f9fb02fac.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "3f126ed4b7204c2c9d3c8df84aa60346", - "labels": [ - "Audiobooks", - "Professional" - ], - "language": "German", - "flag": "https://static.movio.la/region_flags/de.png", - "locale": "de-DE", - "sort": 3, - "gender": "male", - "tags": "", - "display_name": "Leon", - "preview": { - "movio": "https://static.movio.la/voice_preview/Dp7AAkZYWre2fg2FWJ2nQD.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": null, - "lang": null, - "break": false, - "prosody": null, - "emphasis": "", - "say_as": null - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "3f224b0cb92d45328e5ccd93d3c2314e", - "labels": [ - "Youth", - "Ads", - "Explainer", - "Narration" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/ie.png", - "locale": "en-IE", - "sort": 42, - "gender": "Female", - "tags": "", - "display_name": "Emily - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/ZA54eZdstL8XeZssreg9XT.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "3fbd2cac3ddd4c109e17296e324845ec", - "labels": [ - "Older", - "Audiobooks", - "Narration", - "E-learning", - "Ads" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 20, - "gender": "Male", - "tags": "Middle-Age,E-learning & Presentations, Product demos, Explainer Videos, News, Ads", - "display_name": "Delbert - Cheerful", - "preview": { - "movio": "https://static.movio.la/voice_preview/CMr49SZRNaARsvmJ3tGDsN.wav" - }, - "settings": { - "style": "cheerful", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "4158cf2ef85d4ccc856aacb1c47dbb0c", - "labels": [ - "Youth", - "News", - "Explainer", - "Narration" - ], - "language": "Chinese", - "flag": "https://static.movio.la/region_flags/tw.png", - "locale": "zh-TW", - "sort": 3, - "gender": "Female", - "tags": "Young Adult, Customer Service, News, Explainer Videos, Product demos", - "display_name": "HsiaoChen - Friendly", - "preview": { - "movio": "https://static.movio.la/voice_preview/31b29b46e73649e8adec765755cea863.wav" - }, - "settings": { - "style": "General", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "422dbf6b037648b69f663cd33b47007b", - "labels": [ - "Middle-Aged", - "Audiobooks", - "News", - "Narration" - ], - "language": "Chinese", - "flag": "https://static.movio.la/region_flags/cn.png", - "locale": "zh-CN", - "sort": 5, - "gender": "Male", - "tags": "Middle-Aged, Low-Pitched, E-learning & Presentations, Audiobooks, Low-Pitched", - "display_name": "Yunye - Calm", - "preview": { - "movio": "https://static.movio.la/voice_preview/500dbe5f9d604d6c82ed21df5d2c49a8.wav" - }, - "settings": { - "style": "calm", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "4286c03d11f44af093e379fc7e2cafa6", - "labels": [ - "Middle-Aged", - "Explainer" - ], - "language": "Vietnamese", - "flag": "https://static.movio.la/region_flags/vn.png", - "locale": "vi-VN", - "sort": 100, - "gender": "Female", - "tags": "", - "display_name": "Chau - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/kikvE6UVEqmDr8ELu4KZAd.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "4353849104994cef800af14be98f35a8", - "labels": [ - "Middle-Aged", - "Natural", - "Narration" - ], - "language": "Malay", - "flag": "https://static.movio.la/region_flags/my.png", - "locale": "ms-MY", - "sort": 10, - "gender": "Female", - "tags": "", - "display_name": "Yasmin - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/HfhwqGVaqKy47bqem3w7ZP.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "4398ced268aa4707a5b6222819f05a6f", - "labels": [ - "E-learning", - "Games", - "Ads" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 9, - "gender": "male", - "tags": "", - "display_name": "Caleb-Cheerful", - "preview": { - "movio": "https://static.movio.la/voice_preview/vxLRnPCPixRPaNQz8vB2qd.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "43eb6d3dc5294a119aa17ab1d60444d1", - "labels": [ - "Youth", - "Explainer", - "Ads", - "E-learning" - ], - "language": "Japanese", - "flag": "https://static.movio.la/region_flags/jp.png", - "locale": "ja-JP", - "sort": 2, - "gender": "Female", - "tags": "Young Adult, Customer Service, E-learning & Presentations, Youtube", - "display_name": "Sakura - Cheerful", - "preview": { - "movio": "https://static.movio.la/voice_preview/357ea409333949c8888088a0cff1551a.wav" - }, - "settings": { - "style": "customerservice", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "445a8c7de9e74ed2a0dd02d5885ac589", - "labels": [ - "Older", - "Narration", - "Natural" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 100, - "gender": "female", - "tags": "", - "display_name": "Nancy - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/QTdrd669nuRE3cQEY56iZF.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "44efc076bc8d4349931245c7748250c8", - "labels": [ - "Natural", - "Explainer", - "Narration", - "Youth" - ], - "language": "Persian", - "flag": "https://static.movio.la/region_flags/ir.png", - "locale": "fa-IR", - "sort": 100, - "gender": "Female", - "tags": "", - "display_name": "Dilara", - "preview": { - "movio": "https://static.movio.la/voice_preview/ajKKGHiVvVpJoSKH4ubZbE.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "456082e138624424bcace650c5e83306", - "labels": [ - "Youth", - "E-learning", - "Ads", - "Narration" - ], - "language": "Hindi", - "flag": "https://static.movio.la/region_flags/in.png", - "locale": "hi-IN", - "sort": 3, - "gender": "Female", - "tags": "", - "display_name": "Hemlata - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/d320f2f8ca9346ea80710dcd62990c23.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "456e13f3ff1345d3b7ab0435ce024dc7", - "labels": [ - "Youth", - "Ads", - "Explainer", - "News" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 22, - "gender": "Female", - "tags": "Young Adult, Cheerful, Youtube, Customer Service", - "display_name": "Isabella - Cheerful", - "preview": { - "movio": "https://static.movio.la/voice_preview/KhiBp6E75AmiqR2F9Ssmj7.wav" - }, - "settings": { - "style": "Cheerful", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "485f386643a7425d8b8e1f27637c6ccb", - "labels": [ - "Natural", - "Middle-Aged", - "Explainer", - "Narration" - ], - "language": "Catalan", - "flag": "https://static.movio.la/region_flags/es.png", - "locale": "ca-ES", - "sort": 1, - "gender": "Female", - "tags": "", - "display_name": "Joana - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/QPryYyhvSzx95KpJnvmDUP.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "488e985a7bd249968612390c4e89f06c", - "labels": [ - "Narration", - "Natural", - "Middle-Aged" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 34, - "gender": "Male", - "tags": "", - "display_name": "Bruce - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/8VvvHAfbLyDP3ZhYix4wVW.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "4967f2fdcbd9473bb54c8db56e43e61a", - "labels": [ - "Youth", - "Explainer", - "E-learning", - "Audiobooks" - ], - "language": "Arabic", - "flag": "https://static.movio.la/region_flags/tn.png", - "locale": "ar-TN", - "sort": 1, - "gender": "Female", - "tags": "Young Adult, Explainer Videos, News, Ads, Product demos", - "display_name": "Reem - Friendly", - "preview": { - "movio": "https://static.movio.la/voice_preview/882bfe8403724a3585efd7d566e435a6.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "49e3e441c5874cbab3a9e8086b927e8b", - "labels": [ - "Middle-Aged", - "Audiobooks", - "E-learning", - "Narration" - ], - "language": "Spanish", - "flag": "https://static.movio.la/region_flags/co.png", - "locale": "es-CO", - "sort": 7, - "gender": "Female", - "tags": "Middle-Aged, Ads, Explainer Videos, E-learning & Presentations, Product demos", - "display_name": "Salome - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/9ca021b82b1a4987bdcdefb525539a1d.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "4b9b8a0176ae40b09a8ae1eaa26c509b", - "labels": [ - "Youth", - "Explainer", - "E-learning" - ], - "language": "Dutch", - "flag": "https://static.movio.la/region_flags/nl.png", - "locale": "nl-NL", - "sort": 150, - "gender": "male", - "tags": "", - "display_name": "Ernestine - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/kWJou6YDCV4M73XqKmtxjQ.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "4bd875d510f5461a9e228e1cbde2d545", - "labels": [ - "Youth", - "Narration", - "E-learning", - "News" - ], - "language": "Portuguese", - "flag": "https://static.movio.la/region_flags/br.png", - "locale": "pt-BR", - "sort": 8, - "gender": "Female", - "tags": "", - "display_name": "Camila - Friendly", - "preview": { - "movio": "https://static.movio.la/voice_preview/a0fbec40f1844a78801f5577b2730fb0.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "4d77dce8ebef4244813b40ce2cd3f999", - "labels": [ - "Middle-Aged" - ], - "language": "Gujarati", - "flag": "https://static.movio.la/region_flags/in.png", - "locale": "gu-IN", - "sort": 100, - "gender": "Female", - "tags": "", - "display_name": "Dhwani - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/Jh73r9NyR8CMAoN2VCMPAH.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "4e36239454b2414d85c9dbaa18bcf228", - "labels": [ - "Youth", - "Narration", - "Explainer", - "Ads" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/nz.png", - "locale": "en-NZ", - "sort": 25, - "gender": "Male", - "tags": "", - "display_name": "Mitchell - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/cYt7FDjZng3rszpVXewS9U.wav" - }, - "settings": { - "style": "general", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "4e5f51f94b7642ed9b065e506dc1c296", - "labels": [ - "Youth", - "Ads", - "Explainer", - "E-learning" - ], - "language": "German", - "flag": "https://static.movio.la/region_flags/de.png", - "locale": "de-DE", - "sort": 6, - "gender": "Female", - "tags": "Young Adult, E-learning & Presentations, Customer Service, Explainer Videos", - "display_name": "Maja - Newscaster", - "preview": { - "movio": "https://static.movio.la/voice_preview/a2280ce094aa4bc7be6d8bc108271aff.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "4ebba0f2f4944d2aa75d21552764c638", - "labels": [ - "Youth", - "Natural" - ], - "language": "Hebrew", - "flag": "https://static.movio.la/region_flags/il.png", - "locale": "he-IL", - "sort": 100, - "gender": "female", - "tags": "", - "display_name": "Avigail - Calm", - "preview": { - "movio": "https://static.movio.la/voice_preview/Hc2kWHuFbbZUuyiqgrhXrN.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": null, - "lang": null, - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": null - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "4efd43386dc844c29d532cb5d5690f86", - "labels": [ - "Middle-Aged", - "Narration", - "Explainer", - "Natural" - ], - "language": "Norwegian", - "flag": "https://static.movio.la/region_flags/no.png", - "locale": "nb-NO", - "sort": 100, - "gender": "Male", - "tags": "", - "display_name": "Finn - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/Zue8edByGkFEQUVjx55U8b.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "508da0af14044417a916cba1d00f632a", - "labels": [ - "News", - "Natural", - "Youth" - ], - "language": "Persian", - "flag": "https://static.movio.la/region_flags/ir.png", - "locale": "fa-IR", - "sort": 100, - "gender": "Male", - "tags": "", - "display_name": "Farid", - "preview": { - "movio": "https://static.movio.la/voice_preview/CCjAFPqqXZSVNPMTwbHHhD.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "50c32e9b096e46218707499b8e7abcf0", - "labels": [ - "Older", - "News" - ], - "language": "Spanish", - "flag": "https://static.movio.la/region_flags/es.png", - "locale": "es-ES", - "sort": 105, - "gender": "Female", - "tags": "", - "display_name": "Maria - Serious", - "preview": { - "movio": "https://static.movio.la/voice_preview/Kwi6mxi89bTQxJYbQWhkHP.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "50f8370a02fe45099636687d0d21750d", - "labels": [ - "Child", - "Audiobooks", - "Ads" - ], - "language": "French", - "flag": "https://static.movio.la/region_flags/fr.png", - "locale": "fr-FR", - "sort": 9, - "gender": "Female", - "tags": "Child", - "display_name": "Eloise - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/50f8370a02fe45099636687d0d21750d.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "51ce3a14b89947bcb6c13d5e5062331a", - "labels": [ - "Middle-Aged", - "News", - "Ads", - "Audiobooks" - ], - "language": "French", - "flag": "https://static.movio.la/region_flags/ca.png", - "locale": "fr-CA", - "sort": 2, - "gender": "Male", - "tags": "Young Adult, News, Product demos, Explainer Videos", - "display_name": "Antoine - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/276db23bd9804f549a94f13f1059e724.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "5204c60a86e441c5b34bfd5eb856b2f9", - "labels": [ - "Youth" - ], - "language": "Hebrew", - "flag": "https://static.movio.la/region_flags/il.png", - "locale": "he-IL", - "sort": 100, - "gender": "male", - "tags": "", - "display_name": "Aharon - Calm", - "preview": { - "movio": "https://static.movio.la/voice_preview/5dJ23KpW36KccrVsyPPQhg.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": null, - "lang": null, - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": null - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "527d87101417484e979a14e038f01b49", - "labels": [ - "Middle-Aged", - "Ads", - "Explainer", - "Narration" - ], - "language": "Arabic", - "flag": "https://static.movio.la/region_flags/kw.png", - "locale": "ar-KW", - "sort": 1, - "gender": "Female", - "tags": "Young Adult, E-learning & Presentations, Product demos, Explainer Videos, News, Ads", - "display_name": "Noura - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/65391dadd20a4e2890865b062aa542c3.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "52b62505407d4f369b9924c2afcdfe72", - "labels": [ - "Older", - "Natural", - "Narration" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/gb.png", - "locale": "en-GB", - "sort": 100, - "gender": "male", - "tags": "", - "display_name": "Roy - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/ZRFWnrcaQkhbxDp3svykbE.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "548bb01a597d4a77b8d170736604b690", - "labels": [ - "Narration", - "Youth", - "Natural" - ], - "language": "Hebrew", - "flag": "https://static.movio.la/region_flags/il.png", - "locale": "he-IL", - "sort": 100, - "gender": "male", - "tags": "", - "display_name": "Isaac - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/hCVzC5yGUR69R9HoQsmhbj.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": null, - "lang": null, - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": null - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "5531756441d34f408e7e60821f2e52a6", - "labels": [ - "Youth", - "Ads", - "Narration", - "E-learning" - ], - "language": "French", - "flag": "https://static.movio.la/region_flags/fr.png", - "locale": "fr-FR", - "sort": 1, - "gender": "Female", - "tags": "Young Adult, Ads, Youtube, Customer Service", - "display_name": "Denise - Friendly", - "preview": { - "movio": "https://static.movio.la/voice_preview/bfb737ce9a614f909665717363762c4d.wav" - }, - "settings": { - "style": "Cheerful", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "5646809bd96e40e9b374ba1d734ceb69", - "labels": [ - "Youth", - "Ads", - "News", - "E-learning", - "Explainer" - ], - "language": "Slovak", - "flag": "https://static.movio.la/region_flags/sk.png", - "locale": "sk-SK", - "sort": 1, - "gender": "Male", - "tags": "Young Adult, News, Product demos, E-learning & Presentations, Ads", - "display_name": "Lukas - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/f1166fbd68b34cfbb5a68d1f5653630c.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "575a8643634944a28761fcd34331d3fa", - "labels": [ - "Youth", - "News" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 100, - "gender": "male", - "tags": "", - "display_name": "Dennis - Cheerful", - "preview": { - "movio": "https://static.movio.la/voice_preview/YpfMSycEaGKLyWZffnKsc7.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "583838e570fe4e00b646082785c12260", - "labels": [ - "Youth", - "Natural" - ], - "language": "Latvian", - "flag": "https://static.movio.la/region_flags/lv.png", - "locale": "lv-LV", - "sort": 100, - "gender": "Female", - "tags": "", - "display_name": "Everita - Gently", - "preview": { - "movio": "https://static.movio.la/voice_preview/VteNQS8ADrTSWzt6qrrKdj.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "588304e6ada44ce8b56edd087aa333e6", - "labels": [ - "Youth", - "Narration", - "Natural" - ], - "language": "Indonesian", - "flag": "https://static.movio.la/region_flags/id.png", - "locale": "id-ID", - "sort": 100, - "gender": "Female", - "tags": "", - "display_name": "Ratna - Warm", - "preview": { - "movio": "https://static.movio.la/voice_preview/9prM2eNqdsUTZ2ysC9jZXy.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "58e519e106414e13a308be0b98e221ab", - "labels": [ - "Child", - "Natural" - ], - "language": "Spanish", - "flag": "https://static.movio.la/region_flags/es.png", - "locale": "es-ES", - "sort": 100, - "gender": "Female", - "tags": "", - "display_name": "Irene - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/oXd685KxYjCydFUJhMY9jG.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "592b25f402ff41a295aeb3440f114179", - "labels": [ - "Middle-Aged", - "Explainer", - "E-learning", - "Natural", - "Ads" - ], - "language": "Swedish", - "flag": "https://static.movio.la/region_flags/se.png", - "locale": "sv-SE", - "sort": 50, - "gender": "Female", - "tags": "", - "display_name": "Sofie - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/neR5E32gY6E6oWxSV3mXLg.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "5c0956259f3d4c659573a3a3898699ef", - "labels": [ - "Middle-Aged", - "News", - "Explainer", - "E-learning" - ], - "language": "French", - "flag": "https://static.movio.la/region_flags/fr.png", - "locale": "fr-FR", - "sort": 5, - "gender": "Male", - "tags": "Young Adult, News, Product demos, Explainer Videos", - "display_name": "Yves - Newscaster", - "preview": { - "movio": "https://static.movio.la/voice_preview/5b17d0a01f6f45dab6cc7f3dd27decdd.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "5d3e04e2972b4019b68d18d336800615", - "labels": [ - "Narration", - "Natural", - "Middle-Aged" - ], - "language": "Danish", - "flag": "https://static.movio.la/region_flags/dk.png", - "locale": "da-DK", - "sort": 100, - "gender": "Male", - "tags": "", - "display_name": "Mads - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/rhfHirLMn4d3zfVPwaHAvX.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": null, - "lang": null, - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": null - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "5d61b4c7e1894f4c9fc045be54528ead", - "labels": [ - "Youth", - "Natural" - ], - "language": "Spanish", - "flag": "https://static.movio.la/region_flags/es.png", - "locale": "es-ES", - "sort": 5, - "gender": "Female", - "tags": "", - "display_name": "Lucia - Friendly", - "preview": { - "movio": "https://static.movio.la/voice_preview/NnXhEBd7PwViBzeUPBGZzG.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "5dddee02307b4f49a17c123c120a60ca", - "labels": [ - "Youth", - "Explainer", - "Narration", - "News" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/za.png", - "locale": "en-ZA", - "sort": 28, - "gender": "Male", - "tags": "Young Adult, Explainer Videos, Product demos, E-learning & Presentations", - "display_name": "Luke - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/ZSJ6hYck7uD4RFDbTqbtvE.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "5e323be21853489591cc589f90e24010", - "labels": [ - "Natural", - "Youth" - ], - "language": "Georgian", - "flag": "https://static.movio.la/region_flags/ge.png", - "locale": "ka-GE", - "sort": 100, - "gender": "Male", - "tags": "", - "display_name": "Giorgi - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/tvaGmSRpEBXtMJQVN23QPH.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "611235e8461c4071b308cbb697a44e5c", - "labels": [ - "Middle-Aged", - "Ads", - "News", - "Narration" - ], - "language": "Arabic", - "flag": "https://static.movio.la/region_flags/ma.png", - "locale": "ar-MA", - "sort": 1, - "gender": "Female", - "tags": "Young Adult, Explainer Videos, News, Ads, Product demos", - "display_name": "Mouna - Newscaster", - "preview": { - "movio": "https://static.movio.la/voice_preview/a0ae4f7d37404d3daa14905975499225.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "6156f8f798604e3f8c73ba2931cfb104", - "labels": [ - "Youth", - "Explainer", - "Ads", - "News" - ], - "language": "Spanish", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "es-US", - "sort": 4, - "gender": "Female", - "tags": "Young Adult, Ads, Explainer Videos", - "display_name": "Paloma - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/72084f84f7414fdfae1c769a68915711.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "628161fd1c79432d853b610e84dbc7a4", - "labels": [ - "Youth", - "Ads", - "Explainer", - "News" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/gb.png", - "locale": "en-GB", - "sort": 7, - "gender": "Female", - "tags": "Young Adult, E-learning & Presentations, Product demos, Explainer Videos, News, Ads", - "display_name": "Bella - Friendly", - "preview": { - "movio": "https://static.movio.la/voice_preview/C9zRUcRZ4R56R4pGjytysb.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "63608103877d43a0b3c61e240b8f86c3", - "labels": [ - "Youth", - "Explainer" - ], - "language": "German", - "flag": "https://static.movio.la/region_flags/de.png", - "locale": "de-DE", - "sort": 1, - "gender": "male", - "tags": "", - "display_name": "Fabian", - "preview": { - "movio": "https://static.movio.la/voice_preview/zpPQGgV4kE2fhxoprPFmCC.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": null, - "lang": null, - "break": false, - "prosody": null, - "emphasis": "", - "say_as": null - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "64cc0b129ac34e04a521cb4627126923", - "labels": [ - "Youth", - "Ads", - "Explainer", - "News" - ], - "language": "French", - "flag": "https://static.movio.la/region_flags/ca.png", - "locale": "fr-CA", - "sort": 2, - "gender": "Female", - "tags": "Young Adult, News, Explainer Videos, E-learning & Presentations", - "display_name": "Sylvie - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/40797bf6107f47c88aac07636e4633f9.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "656eec70383742548d6c990b0b84f94e", - "labels": [ - "Middle-Aged", - "News", - "Audiobooks", - "Explainer" - ], - "language": "Arabic", - "flag": "https://static.movio.la/region_flags/dz.png", - "locale": "ar-DZ", - "sort": 1, - "gender": "Male", - "tags": "Young Adult, Ads, E-learning & Presentations, Product demos, Explainer Videos, News", - "display_name": "Ismael - Serious", - "preview": { - "movio": "https://static.movio.la/voice_preview/1bb8caaef1864b38bbc6250f269989b4.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "65d83b8269684645878e9155edf9b439", - "labels": [ - "Youth", - "Ads" - ], - "language": "Spanish", - "flag": "https://static.movio.la/region_flags/gt.png", - "locale": "es-GT", - "sort": 100, - "gender": "Female", - "tags": "", - "display_name": "Marta - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/ZJr598DruryrinouXCwGd2.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "65f5dc8c030e4f129636b8df94c3b8bc", - "labels": [ - "Middle-Aged", - "Audiobooks", - "News", - "Ads", - "E-learning" - ], - "language": "Dutch", - "flag": "https://static.movio.la/region_flags/nl.png", - "locale": "nl-NL", - "sort": 10, - "gender": "Male", - "tags": "Middle-Age,E-learning & Presentations, Product demos, Explainer Videos,", - "display_name": "Maarten - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/XybqkdXt7G6DNGmsKHtJkV.wav" - }, - "settings": { - "style": "general", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "6648fd92bcba41df809a01712faf9a4a", - "labels": [ - "Narration", - "Audiobooks", - "Youth" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 14, - "gender": "male", - "tags": "", - "display_name": "Harry - Narration", - "preview": { - "movio": "https://static.movio.la/voice_preview/Q8bBCXxNPuwnZKixnNHawf.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "66a21dedf2c842b8a516cdb264360e0e", - "labels": [ - "Youth", - "News", - "Narration", - "E-learning" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/in.png", - "locale": "en-IN", - "sort": 40, - "gender": "Female", - "tags": "Young Adult, Explainer Videos, Ads, Product demos, E-learning & Presentations", - "display_name": "Neerja - Newscaster", - "preview": { - "movio": "https://static.movio.la/voice_preview/RcDW6eTi2rGrVyFJZYdr2G.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "6861d3de6a904aeeb20feb8d4238cfd4", - "labels": [ - "Narration", - "Middle-Aged" - ], - "language": "Vietnamese", - "flag": "https://static.movio.la/region_flags/vn.png", - "locale": "vi-VN", - "sort": 100, - "gender": "Male", - "tags": "", - "display_name": "Minh - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/FjsFKAiXzQuMrGuaoPcMbC.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "69a92c0623a1422788455eab539f7c8d", - "labels": [ - "Youth", - "Explainer", - "E-learning", - "Narration" - ], - "language": "Chinese", - "flag": "https://static.movio.la/region_flags/cn.png", - "locale": "zh-CN", - "sort": 7, - "gender": "Female", - "tags": "Young Adult, Explainer Videos, Audiobooks, E-learning & Presentations", - "display_name": "Xiaomeng - Warm", - "preview": { - "movio": "https://static.movio.la/voice_preview/85569aad47124980abadc7f6f7279c72.wav" - }, - "settings": { - "style": "gentle", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "6b5c5f11e7b24daca9c0d2371ecd8bc9", - "labels": [ - "Narration", - "Professional", - "Explainer" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 10, - "gender": "male", - "tags": "", - "display_name": "Raymond-Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/DToLuPLsgsCcodNThceGUa.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "6bb77a617ce54cce9de83044b53ba1a3", - "labels": [ - "Natural", - "Middle-Aged", - "Explainer" - ], - "language": "Catalan", - "flag": "https://static.movio.la/region_flags/es.png", - "locale": "ca-ES", - "sort": 100, - "gender": "Male", - "tags": "", - "display_name": "Enric - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/MauSdU6wp4udCBJ4igRr2A.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "6bd512a0c73c494186bfac36ccbe5072", - "labels": [ - "Youth", - "Ads" - ], - "language": "Swedish", - "flag": "https://static.movio.la/region_flags/se.png", - "locale": "sv-SE", - "sort": 100, - "gender": "Male", - "tags": "", - "display_name": "Von - Friendly", - "preview": { - "movio": "https://static.movio.la/voice_preview/QnbZkswuuPa6iPcZUghWrc.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "6cd01cfff3354e16a6f4247cf30123ff", - "labels": [ - "Youth", - "Narration", - "Explainer", - "E-learning" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/sg.png", - "locale": "en-SG", - "sort": 38, - "gender": "Female", - "tags": "Young Adult, Ads, Explainer Videos, E-learning & Presentations", - "display_name": "Luna - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/F3smMjYU6mWaa3tXLkUHpE.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "6d091fbb994c439eb9d249ba8b0e62da", - "labels": [ - "Middle-Aged", - "Explainer", - "Narration", - "News" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/gb.png", - "locale": "en-GB", - "sort": 100, - "gender": "Male", - "tags": "", - "display_name": "Jahmai - Friendly", - "preview": { - "movio": "https://static.movio.la/voice_preview/Jw83S9aTUdzR2XdBvzLGYc.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "6d9035df407946859876104ac8b0c0a0", - "labels": [ - "Middle-Aged" - ], - "language": "Malay", - "flag": "https://static.movio.la/region_flags/my.png", - "locale": "ms-MY", - "sort": 100, - "gender": "Male", - "tags": "", - "display_name": "Norain - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/KdsoPk4cDtHuHBh3YZMVWD.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "6d9be61f6e0646f4b6750d3eb03b118f", - "labels": [ - "Audiobooks", - "Youth" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 35, - "gender": "Female", - "tags": "", - "display_name": "Belle - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/wbXoiYJ2e6xwKC5i2EUSCY.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "6e51a203c3e74398ae8046f3c320abf6", - "labels": [ - "Middle-Aged", - "Narration", - "Audiobooks" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 10, - "gender": "male", - "tags": "", - "display_name": "Samuel-Narration", - "preview": { - "movio": "https://static.movio.la/voice_preview/TuVCqyvCGvbEGA9JkFkaFY.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "6e7404e25c4b4385b04b0e2704c861c8", - "labels": [ - "Middle-Aged", - "Ads", - "Audiobooks", - "Narration", - "News" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 15, - "gender": "Female", - "tags": "", - "display_name": "Michelle - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/djxEBTVHKLgXsJpb6ZrBVn.wav" - }, - "settings": { - "style": "general", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "6fc81c412a6d46a688cfb4dd659c1ab6", - "labels": [ - "Youth", - "Explainer", - "Narration", - "E-learning" - ], - "language": "Chinese", - "flag": "https://static.movio.la/region_flags/tw.png", - "locale": "zh-TW", - "sort": 5, - "gender": "Female", - "tags": "Young Adult, Low-Pitched, E-learning & Presentations, Explainer Videos", - "display_name": "HsiaoYu - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/5f500db50b6a40ec97d33381f9fbdb32.wav" - }, - "settings": { - "style": "General", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "7001a39135544c608cd53e6b575faa5c", - "labels": [ - "Youth", - "Natural" - ], - "language": "Urdu", - "flag": "https://static.movio.la/region_flags/in.png", - "locale": "ur-IN", - "sort": 100, - "gender": "Male", - "tags": "", - "display_name": "Salman - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/koNkA3Upt4kzbPa5iPE4Ab.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "703900c5c9a5463495df05826f3fce63", - "labels": [ - "Youth", - "Explainer", - "Audiobooks", - "E-learning" - ], - "language": "Slovak", - "flag": "https://static.movio.la/region_flags/sk.png", - "locale": "sk-SK", - "sort": 1, - "gender": "Female", - "tags": "Young Adult, News, Explainer Videos", - "display_name": "Viktoria - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/dec6d16fbfcc408a9b53ef55fff50a77.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "707375bffbb6443ca99ec8f81459738f", - "labels": [ - "Explainer", - "Youth" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 24, - "gender": "Female", - "tags": "", - "display_name": "Grace - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/jGVaobvjJGySAFFFF6BS6Z.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "71c663964e82485eabca1f4aedd7bfc1", - "labels": [ - "Youth", - "Natural" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 13, - "gender": "male", - "tags": "", - "display_name": "Troy-Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/Qs6kFXo4t3TetRQS5AYb6F.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "71ff4fd31a844a8a9cfe2073c80c104d", - "labels": [ - "Middle-Aged", - "Ads", - "Explainer", - "E-learning" - ], - "language": "Arabic", - "flag": "https://static.movio.la/region_flags/eg.png", - "locale": "ar-EG", - "sort": 1, - "gender": "Male", - "tags": "Young Adult, E-learning & Presentations, Product demos, Explainer Videos, News, Ads", - "display_name": "Shakir - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/481c5292001a487f85855573f9373459.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "727e9d6d492e456b9f27708fa8018744", - "labels": [ - "Youth", - "News", - "Explainer", - "Narration", - "E-learning" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/ca.png", - "locale": "en-CA", - "sort": 30, - "gender": "Female", - "tags": "Middle-Age,E-learning & Presentations, Product demos, Explainer Videos, News, Ads", - "display_name": "Clara - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/DzWM42iH66Jr8bBVNJDmJx.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "72dab46d28d8422bb4386f0d1d9cf9ba", - "labels": [ - "Youth", - "Ads", - "Explainer", - "E-learning" - ], - "language": "Bangla", - "flag": "https://static.movio.la/region_flags/bd.png", - "locale": "bn-BD", - "sort": 1, - "gender": "Female", - "tags": "Young Adult, Explainer Videos, E-learning & Presentations", - "display_name": "Nabanita - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/e650f7be01844ab8a982c60545e8473b.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "734dd71b350e47d6a025bc172227cb49", - "labels": [ - "Youth", - "Natural" - ], - "language": "Indonesian", - "flag": "https://static.movio.la/region_flags/id.png", - "locale": "id-ID", - "sort": 100, - "gender": "Male", - "tags": "", - "display_name": "Adi - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/7kcosBUK5VmzCDNhsmRdcE.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "73c0b6a2e29d4d38aca41454bf58c955", - "labels": [ - "Youth", - "Ads", - "E-learning" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/gb.png", - "locale": "en-GB", - "sort": 28, - "gender": "Female", - "tags": "", - "display_name": "Cerise - Cheerful", - "preview": { - "movio": "https://static.movio.la/voice_preview/KotgDpZPtr63SDnTfgdYxb.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "750533f27c5649979110086898518280", - "labels": [ - "Youth", - "News", - "Ads", - "E-learning" - ], - "language": "Italian", - "flag": "https://static.movio.la/region_flags/it.png", - "locale": "it-IT", - "sort": 1, - "gender": "Female", - "tags": "Young Adult, Explainer Videos, Ads, Product demos", - "display_name": "Gabriella - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/8e87f871f8d142a6be9c9e3bfc609e16.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "754416db5cb24547a17919b436b7303a", - "labels": [ - "Middle-Aged", - "Natural", - "Ads", - "Explainer" - ], - "language": "Swedish", - "flag": "https://static.movio.la/region_flags/se.png", - "locale": "sv-SE", - "sort": 50, - "gender": "Female", - "tags": "", - "display_name": "Elin - Warm", - "preview": { - "movio": "https://static.movio.la/voice_preview/ksLY6CETRQbM8Gi289ytvu.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "760ec5388f364b9698a077339a982866", - "labels": [ - "Middle-Aged", - "Ads", - "Explainer", - "Audiobooks" - ], - "language": "Czech", - "flag": "https://static.movio.la/region_flags/cz.png", - "locale": "cs-CZ", - "sort": 1, - "gender": "Female", - "tags": "Middle-Aged, News, Explainer Videos, E-learning & Presentations", - "display_name": "Vlasta - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/d9462966184e41629a73bfe1a0397a39.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "76955c80188a4c149df169b5dc9e1a3a", - "labels": [ - "Youth", - "Explainer", - "E-learning", - "Audiobooks" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 12, - "gender": "Female", - "tags": "Young Adult, Assistant", - "display_name": "Emma - Newscaster", - "preview": { - "movio": "https://static.movio.la/voice_preview/c3NuQJ7QnFRXFq8Kn4quwk.wav" - }, - "settings": { - "style": "assistant", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "787d136ca6b44868955e01bd3d3047aa", - "labels": [ - "Child", - "Ads", - "Audiobooks" - ], - "language": "Chinese", - "flag": "https://static.movio.la/region_flags/cn.png", - "locale": "zh-CN", - "sort": 4, - "gender": "Female", - "tags": "Child, Cheerful, Ads, Cartoon, High-Pitched, Audiobooks", - "display_name": "Xiaoshuang - Cheerful", - "preview": { - "movio": "https://static.movio.la/voice_preview/18d4934428fb4eabbffcf908108d6b59.wav" - }, - "settings": { - "style": "chat", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "79e0798a45d340d9adb4979cfcc42363", - "labels": [ - "Youth", - "Natural", - "Explainer" - ], - "language": "Malay", - "flag": "https://static.movio.la/region_flags/my.png", - "locale": "ms-MY", - "sort": 100, - "gender": "Male", - "tags": "", - "display_name": "Razif - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/kgp8bNRu3aQyTZ8PqyQgCn.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "79f84ce83ec34e75b600deec4c5c9de6", - "labels": [ - "Youth", - "Explainer", - "News", - "Ads" - ], - "language": "Spanish", - "flag": "https://static.movio.la/region_flags/cl.png", - "locale": "es-CL", - "sort": 3, - "gender": "Male", - "tags": "Young Adult, Ads, Product demos, Explainer Videos", - "display_name": "Lorenzo - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/79f84ce83ec34e75b600deec4c5c9de6.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "7a68d053ed6946a097f0b8ec25026631", - "labels": [ - "Youth", - "News" - ], - "language": "Hebrew", - "flag": "https://static.movio.la/region_flags/il.png", - "locale": "he-IL", - "sort": 100, - "gender": "female", - "tags": "", - "display_name": "Miriam - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/77n2PQr6LER7V4HzYajSaf.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": null, - "lang": null, - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": null - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "7addb1d6eaba435da3bbd4abcb26407a", - "labels": [ - "Middle-Aged", - "News", - "Ads", - "Narration" - ], - "language": "German", - "flag": "https://static.movio.la/region_flags/de.png", - "locale": "de-DE", - "sort": 5, - "gender": "Male", - "tags": "Young Adult, Ads, Explainer Videos", - "display_name": "Klaus - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/e5c08f9036cb4227a64381e21d08f93e.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "7c2e216ee89a488b9796f16067baa189", - "labels": [ - "Middle-Aged", - "Audiobooks", - "News", - "Explainer" - ], - "language": "Chinese", - "flag": "https://static.movio.la/region_flags/cn.png", - "locale": "zh-CN", - "sort": 6, - "gender": "Female", - "tags": "Middle-Aged, News, Customer Service, Explainer Videos, Low-Pitched, E-learning & Presentations", - "display_name": "Qiujing - Warm", - "preview": { - "movio": "https://static.movio.la/voice_preview/e0e5de9e62bb47e59edc59ee85967167.wav" - }, - "settings": { - "style": "chat", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "7c458b57f4074792a5f4b992a722c39c", - "labels": [ - "Youth", - "Ads", - "Explainer", - "News" - ], - "language": "Portuguese", - "flag": "https://static.movio.la/region_flags/br.png", - "locale": "pt-BR", - "sort": 4, - "gender": "Female", - "tags": "Young Adult, News, Explainer Videos, E-learning & Presentations", - "display_name": "Maria - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/b74827dfd74c4822bdba87ca58ec8b90.wav" - }, - "settings": { - "style": "calm", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "7c6a15c7caf8415fb2102faafd7e2259", - "labels": [ - "Middle-Aged", - "E-learning", - "Narration", - "Explainer" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/in.png", - "locale": "en-IN", - "sort": 26, - "gender": "Male", - "tags": "Young Adult, Explainer Videos, Ads, Product demos, E-learning & Presentations", - "display_name": "Prabhat - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/hJHsYuEL5nVUtoLMgyTuMH.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "7d31c29ab58446328000491f4dfbb223", - "labels": [ - "Youth", - "Ads", - "Explainer" - ], - "language": "Spanish", - "flag": "https://static.movio.la/region_flags/sv.png", - "locale": "es-SV", - "sort": 100, - "gender": "Female", - "tags": "", - "display_name": "Lorena - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/GhPNWR5Lv9JBD4KTrrwymD.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "7d7d4ebc1c164e71a0542ecab97fdb43", - "labels": [], - "language": "Kannada", - "flag": "https://static.movio.la/region_flags/in.png", - "locale": "kn-IN", - "sort": 1, - "gender": "Female", - "tags": "Young Adult, Explainer Videos, E-learning & Presentations, Ads", - "display_name": "Sapna - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/8a837b71274943c5ace4e068a4e7d1d0.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "7dde95cac3cf4d888f8e27db7b44ee75", - "labels": [ - "Older", - "Explainer" - ], - "language": "Spanish", - "flag": "https://static.movio.la/region_flags/es.png", - "locale": "es-ES", - "sort": 100, - "gender": "Male", - "tags": "", - "display_name": "Hugo - Newscaster", - "preview": { - "movio": "https://static.movio.la/voice_preview/MrHAdzF5RhHXQFYUxFv5qE.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "7e56728c6b9a4469b3d1367a3464f2ad", - "labels": [ - "Middle-Aged", - "News", - "Narration", - "E-learning" - ], - "language": "Spanish", - "flag": "https://static.movio.la/region_flags/co.png", - "locale": "es-CO", - "sort": 7, - "gender": "Male", - "tags": "Middle-Aged, Ads, Explainer Videos, E-learning & Presentations, Product demos", - "display_name": "Gonzalo - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/89969d2fd37f496fb808158ffb1ed12d.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "80f371302eaa4404870daa41dc62423c", - "labels": [ - "Youth", - "Ads", - "Explainer", - "E-learning" - ], - "language": "French", - "flag": "https://static.movio.la/region_flags/fr.png", - "locale": "fr-FR", - "sort": 8, - "gender": "Female", - "tags": "Young Adult, Explainer Videos, E-learning & Presentations, Product demos", - "display_name": "Coralie - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/313f84bacccb49a094a0919f3db30874.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "8118ba92923a4f7e89f935fae00e2265", - "labels": [ - "Youth", - "Explainer", - "Ads", - "E-learning" - ], - "language": "Spanish", - "flag": "https://static.movio.la/region_flags/bo.png", - "locale": "es-BO", - "sort": 10, - "gender": "Female", - "tags": "Young Adult, News, E-learning & Presentations, Explainer Videos, Product demos", - "display_name": "Sofia - Cheerful", - "preview": { - "movio": "https://static.movio.la/voice_preview/e09d5129884e4517b4e1e7e4a2abc2c8.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "814e0b1c99e9474896b17ec7c2b2a371", - "labels": [ - "Youth", - "Explainer", - "Audiobooks", - "News" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/sg.png", - "locale": "en-SG", - "sort": 32, - "gender": "Male", - "tags": "Young Adult, Ads, Explainer Videos, E-learning & Presentations", - "display_name": "Wayne - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/9abCuQ4Zf2MyUoYbjTQx3r.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "81bb7c1a521442f6b812b2294a29acc1", - "labels": [ - "Middle-Aged", - "News", - "Narration", - "Audiobooks" - ], - "language": "Russian", - "flag": "https://static.movio.la/region_flags/ru.png", - "locale": "ru-RU", - "sort": 1, - "gender": "Male", - "tags": "Middle-Age,E-learning & Presentations, Product demos, Explainer Videos, News, Ads", - "display_name": "Dmitry - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/f0155e9d66624b8785156c515370127b.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "84a32476cea2462e85acff7c4ce9fa07", - "labels": [ - "Middle-Aged", - "News", - "E-learning", - "Explainer" - ], - "language": "Chinese", - "flag": "https://static.movio.la/region_flags/hk.png", - "locale": "zh-HK", - "sort": 20, - "gender": "Female", - "tags": "Young Adult, News, Customer Service, E-learning & Presentations", - "display_name": "HiuGaai - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/4f2dd759a1494b66b905d733c4514cdf.wav" - }, - "settings": { - "style": "General", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "84b5101e8be141c7be6b20d8bcf4f26a", - "labels": [ - "Youth", - "Ads", - "Explainer", - "E-learning" - ], - "language": "German", - "flag": "https://static.movio.la/region_flags/at.png", - "locale": "de-AT", - "sort": 1, - "gender": "Female", - "tags": "Young Adult, Customer Service, Ads, Explainer Videos", - "display_name": "Ingrid - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/e78d131964c04141882640c19fd70e44.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "8706bfaaa37444fb8b239c38256afc0d", - "labels": [ - "Middle-Aged", - "Natural", - "Narration" - ], - "language": "Malay", - "flag": "https://static.movio.la/region_flags/my.png", - "locale": "ms-MY", - "sort": 10, - "gender": "Male", - "tags": "", - "display_name": "Osman - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/88g9NydAM4iUv6kAfGLDJN.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "87504627ab46419b8b9a59bbdaed285e", - "labels": [ - "Middle-Aged", - "Explainer", - "Ads", - "News" - ], - "language": "Lithuanian", - "flag": "https://static.movio.la/region_flags/lt.png", - "locale": "lt-LT", - "sort": 1, - "gender": "Female", - "tags": "Young Adult, Explainer Videos, E-learning & Presentations", - "display_name": "Ona - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/2577f820bd27486daf1bf6e85569a499.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "886d5b163da4436daa5fae885e175636", - "labels": [ - "Narration", - "Youth", - "Natural", - "Audiobooks" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 3, - "gender": "male", - "tags": "", - "display_name": "Charles - Friendly", - "preview": { - "movio": "https://static.movio.la/voice_preview/sj5stM39YqYcmjn7629wmT.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "88ac5af05d3442d5a04408d4b0aa8697", - "labels": [ - "Youth" - ], - "language": "Danish", - "flag": "https://static.movio.la/region_flags/dk.png", - "locale": "da-DK", - "sort": 100, - "gender": "Female", - "tags": "", - "display_name": "Naja - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/ZrrjpW69yATL7KVBevMZCV.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": null, - "lang": null, - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": null - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "8a0a2d7958ba4c85a19802f73e7bec63", - "labels": [ - "Youth", - "Explainer", - "Ads", - "E-learning" - ], - "language": "Hebrew", - "flag": "https://static.movio.la/region_flags/il.png", - "locale": "he-IL", - "sort": 1, - "gender": "Female", - "tags": "Young Adult, News, Explainer Videos, Product demos", - "display_name": "Hila - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/mHQCjTf7kZZ9Y3m73vBd3M.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "8a44173a27984487b3fa86e56004218c", - "labels": [ - "Youth", - "Narration", - "E-learning", - "Audiobooks", - "Explainer" - ], - "language": "Chinese", - "flag": "https://static.movio.la/region_flags/cn.png", - "locale": "zh-CN", - "sort": 5, - "gender": "Female", - "tags": "Young Adult, Customer Service, Explainer Videos, Ads", - "display_name": "Xiaowen - Cheerful", - "preview": { - "movio": "https://static.movio.la/voice_preview/ba7d19e8ba0b413fb4ed4a5a56b2c162.wav" - }, - "settings": { - "style": "customerservice", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "8aa99a72f5094b2c8270a6fdadfe71b0", - "labels": [ - "Youth", - "E-learning", - "Audiobooks", - "News" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/au.png", - "locale": "en-AU", - "sort": 7, - "gender": "Male", - "tags": "Young Adult, E-learning & Presentations, Product demos, Explainer Videos, News, Ads", - "display_name": "Wille - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/GAfaMVfT8xRTB7EaiZLvXg.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "8aaaed31d9d6407f950d67715c19bcf4", - "labels": [ - "Middle-Aged", - "News", - "Explainer", - "E-learning" - ], - "language": "French", - "flag": "https://static.movio.la/region_flags/fr.png", - "locale": "fr-FR", - "sort": 1, - "gender": "Male", - "tags": "Young Adult, Ads, Explainer Videos, E-learning & Presentations", - "display_name": "Alain - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/810f2fcdb27c431ab2d0ee1ef0e263da.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "8b06642340ad474e8d32b040928fe459", - "labels": [], - "language": "Telugu", - "flag": "https://static.movio.la/region_flags/in.png", - "locale": "te-IN", - "sort": 1, - "gender": "Female", - "tags": "Young Adult, Ads, Product demos, Explainer Videos", - "display_name": "Shruti", - "preview": { - "movio": "https://static.movio.la/voice_preview/6ec55eb490964c398828d77f608dc1fe.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "8bc71625549d425d9a38b4e4a296ba32", - "labels": [ - "Middle-Aged", - "News", - "Explainer", - "Ads" - ], - "language": "Greek", - "flag": "https://static.movio.la/region_flags/gr.png", - "locale": "el-GR", - "sort": 1, - "gender": "Male", - "tags": "Young Adult, News, Explainer Videos, E-learning & Presentations", - "display_name": "Nestoras - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/3035ffb28750449d9c6279dd510539ac.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "8c47d9e75bdc4f1ba81bfbe32d891085", - "labels": [ - "Youth", - "News", - "Ads", - "Explainer" - ], - "language": "Indonesian", - "flag": "https://static.movio.la/region_flags/id.png", - "locale": "id-ID", - "sort": 1, - "gender": "Male", - "tags": "Young Adult, Explainer Videos, Ads, Product demos, E-learning & Presentations", - "display_name": "Ardi - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/5cb6d2f1b4214b5a8daa02b6c6578fe5.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "8cfa1b47288a45d08ef20b98fdea965f", - "labels": [ - "Youth", - "Explainer", - "E-learning", - "Audiobooks", - "Ads" - ], - "language": "Arabic", - "flag": "https://static.movio.la/region_flags/sy.png", - "locale": "ar-SY", - "sort": 1, - "gender": "Female", - "tags": "Young Adult, Explainer Videos, News, Ads, Product demos", - "display_name": "Amany - Warm", - "preview": { - "movio": "https://static.movio.la/voice_preview/908cdc9b9d1b424a8a1ca6bc45c60965.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "8d1bd258a2de4e558135955a396e8e97", - "labels": [ - "Youth", - "Professional" - ], - "language": "Vietnamese", - "flag": "https://static.movio.la/region_flags/vn.png", - "locale": "vi-VN", - "sort": 100, - "gender": "Male", - "tags": "", - "display_name": "Dung - Excited", - "preview": { - "movio": "https://static.movio.la/voice_preview/8TaXtRyfu6mBr63sWefjat.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "8ec0b580ba5e4f8cbcee85c25c09ed37", - "labels": [ - "Middle-Aged", - "Explainer", - "E-learning", - "Natural" - ], - "language": "Swedish", - "flag": "https://static.movio.la/region_flags/se.png", - "locale": "sv-SE", - "sort": 10, - "gender": "Female", - "tags": "", - "display_name": "Tilda - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/UXMhhjcCoihfmcfJJgBDda.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "8f7e90bed52a4b6d8d5c212da18afee4", - "labels": [ - "Middle-Aged", - "Audiobooks", - "News", - "E-learning" - ], - "language": "Arabic", - "flag": "https://static.movio.la/region_flags/ae.png", - "locale": "ar-AE", - "sort": 1, - "gender": "Male", - "tags": "Young Adult, Explainer Videos, News, Ads, Product demos, Youtube", - "display_name": "Hamdan - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/52f31bc14f0a4e0996f8ba648bc9ad48.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "8fd8502aa4854f8ab80d16c481d2a1f8", - "labels": [ - "Middle-Aged", - "Audiobooks", - "News", - "Explainer" - ], - "language": "French", - "flag": "https://static.movio.la/region_flags/be.png", - "locale": "fr-BE", - "sort": 4, - "gender": "Male", - "tags": "Young Adult, News, Explainer Videos, E-learning & Presentations", - "display_name": "Gerard - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/dcf0d63dd83145dfb15b9a363198cdef.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "8fda1f6f290c4351aec8e10b050d9cf7", - "labels": [ - "Youth", - "News", - "Narration", - "E-learning" - ], - "language": "German", - "flag": "https://static.movio.la/region_flags/de.png", - "locale": "de-DE", - "sort": 5, - "gender": "Female", - "tags": "Young Adult, E-learning & Presentations, Product demos", - "display_name": "Louisa - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/5709b6e4483847079b4ec10d4290042a.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "905f0333daf749e4ace78c09f42ca972", - "labels": [ - "Middle-Aged", - "News", - "Ads", - "Narration" - ], - "language": "German", - "flag": "https://static.movio.la/region_flags/de.png", - "locale": "de-DE", - "sort": 1, - "gender": "Male", - "tags": "Middle-Aged, Explainer Videos", - "display_name": "Ralf - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/ebb68bc4f7fe4f389805349fbd07ed9c.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "90fc4e27e9e349f196767c0ada520abd", - "labels": [ - "Middle-Aged", - "News", - "Audiobooks", - "Ads" - ], - "language": "French", - "flag": "https://static.movio.la/region_flags/fr.png", - "locale": "fr-FR", - "sort": 9, - "gender": "Male", - "tags": "Middle-Aged, News, E-learning & Presentations, Explainer Videos", - "display_name": "Jerome - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/a9bbf9885fc8475687414ad7950298f8.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "9169e484eb0740b286ef8a679d78fa3f", - "labels": [ - "Youth", - "Natural" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 6, - "gender": "male", - "tags": "", - "display_name": "Glenn-Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/AqYCGxK5CxXfGWjBDLyjch.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "928d97a03a2844b2be94a997ab8161d2", - "labels": [ - "Youth", - "Ads", - "Explainer", - "News" - ], - "language": "Chinese", - "flag": "https://static.movio.la/region_flags/cn.png", - "locale": "zh-CN", - "sort": 13, - "gender": "Female", - "tags": "Young Adult, Cheerful, Ads, Assistant", - "display_name": "Xiaomo - Friendly", - "preview": { - "movio": "https://static.movio.la/voice_preview/d32167af86c54bd39c5bd48c117db92d.wav" - }, - "settings": { - "style": "affectionate", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "92e5d07ba8384bf9ae0a329f2386a4b6", - "labels": [ - "Youth", - "News", - "Ads", - "Explainer" - ], - "language": "Arabic", - "flag": "https://static.movio.la/region_flags/ly.png", - "locale": "ar-LY", - "sort": 1, - "gender": "Female", - "tags": "Young Adult, E-learning & Presentations, Product demos, Explainer Videos, News, Ads", - "display_name": "Iman - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/aa2875bdcda248eebe454058bfe7d630.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "93129ad473ea49dd8dd69da0f4fa8fd6", - "labels": [ - "Natural", - "E-learning", - "Narration" - ], - "language": "Italian", - "flag": "https://static.movio.la/region_flags/it.png", - "locale": "it-IT", - "sort": 100, - "gender": "male", - "tags": "", - "display_name": "Benigno - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/bCMypM6ZLCTaGdCpjDbdVa.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": null, - "lang": null, - "break": false, - "prosody": null, - "emphasis": "", - "say_as": null - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "932643d355ed4a3d837370a3068bbd1b", - "labels": [ - "Youth", - "Ads", - "News", - "Narration", - "Audiobooks" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 18, - "gender": "Female", - "tags": "Young Adult, Ads, Explainer Videos, E-learning & Presentations", - "display_name": "Josie - Cheerful", - "preview": { - "movio": "https://static.movio.la/voice_preview/9SGYr6Xk7SUB8CMzR9rkHF.wav" - }, - "settings": { - "style": "cheerful", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "951dd5d45e2143cf9360eed82d90a698", - "labels": [ - "Narration", - "E-learning", - "Natural" - ], - "language": "Kiswahili", - "flag": "https://static.movio.la/region_flags/tz.png", - "locale": "sw-TZ", - "sort": 100, - "gender": "male", - "tags": "", - "display_name": "Daudi - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/msLeE2pZJF3owGjXeP8dNP.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": null, - "lang": null, - "break": false, - "prosody": null, - "emphasis": "", - "say_as": null - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "957336970bc64d479d551fea07e56784", - "labels": [ - "Youth", - "News", - "Explainer", - "Ads" - ], - "language": "Hindi", - "flag": "https://static.movio.la/region_flags/in.png", - "locale": "hi-IN", - "sort": 3, - "gender": "Male", - "tags": "Young Adult, News, Explainer Videos, Product demos", - "display_name": "Madhur - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/20d3b6c692db483a92e3788a87e9e231.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "95ff21a188db4b3e9cf9db3c60a2184c", - "labels": [ - "Middle-Aged", - "Ads", - "Audiobooks" - ], - "language": "Dutch", - "flag": "https://static.movio.la/region_flags/nl.png", - "locale": "nl-NL", - "sort": 150, - "gender": "Male", - "tags": "", - "display_name": "Gerard - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/aE4Ur9RsoqZ4FHBYQRr5fe.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "961546a1be64458caa1386ff63dd5d5f", - "labels": [ - "Middle-Aged", - "News", - "Audiobooks", - "E-learning" - ], - "language": "Chinese", - "flag": "https://static.movio.la/region_flags/cn.png", - "locale": "zh-CN", - "sort": 1, - "gender": "Male", - "tags": "Middle-Aged, News, E-learning & Presentations, Low-Pitched, Low-Pitched, Explainer Videos, Ads, Product demos, Assistant", - "display_name": "Yunyang - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/13620ce882be490da448e90dee2cea74.wav" - }, - "settings": { - "style": "customerservice", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "96ad9a3176414d3fa22c407dd01879c0", - "labels": [ - "Youth" - ], - "language": "Serbian", - "flag": "https://static.movio.la/region_flags/rs.png", - "locale": "sr-RS", - "sort": 1, - "gender": "Male", - "tags": "Young Adult, Ads, Explainer Videos, Product demos", - "display_name": "Nicholas - Calm", - "preview": { - "movio": "https://static.movio.la/voice_preview/96ad9a3176414d3fa22c407dd01879c0.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "9799f1ba6acd4b2b993fe813a18f9a91", - "labels": [ - "Youth", - "Ads", - "E-learning", - "Explainer" - ], - "language": "Hindi", - "flag": "https://static.movio.la/region_flags/in.png", - "locale": "hi-IN", - "sort": 2, - "gender": "Female", - "tags": "Young Adult, News, Explainer Videos, Product demos", - "display_name": "Swara - Friendly", - "preview": { - "movio": "https://static.movio.la/voice_preview/e4bc76818ccf4591b1ca4321de23130e.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "98423e603a47491fa46822cc6e703717", - "labels": [ - "Youth", - "Ads", - "E-learning", - "Narration" - ], - "language": "French", - "flag": "https://static.movio.la/region_flags/fr.png", - "locale": "fr-FR", - "sort": 6, - "gender": "Female", - "tags": "Young Adult, News, Explainer Videos, E-learning & Presentations", - "display_name": "Brigitte - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/03562d02f005494f98f347813f1ebf85.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "98b855ef6768468bbcc95f1c5c5c27c0", - "labels": [ - "Youth", - "Ads", - "Explainer", - "News" - ], - "language": "Hungarian", - "flag": "https://static.movio.la/region_flags/hu.png", - "locale": "hu-HU", - "sort": 1, - "gender": "Male", - "tags": "Young Adult, Explainer Videos, Product demos, Ads", - "display_name": "Tamas - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/d81bc865141f4d648dbe35198104a332.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "99af85f185034537b4d67b646063b816", - "labels": [ - "Middle-Aged", - "News" - ], - "language": "Spanish", - "flag": "https://static.movio.la/region_flags/es.png", - "locale": "es-ES", - "sort": 100, - "gender": "Female", - "tags": "", - "display_name": "Julia - Warm", - "preview": { - "movio": "https://static.movio.la/voice_preview/EZQiezPf8GDfFrKM4uyq3J.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "9a164f9f9a76457387a3dc4be173fd1e", - "labels": [ - "Natural", - "Explainer", - "Youth" - ], - "language": "Finnish", - "flag": "https://static.movio.la/region_flags/fi.png", - "locale": "fi-FI", - "sort": 100, - "gender": "Female", - "tags": "", - "display_name": "Noora - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/MDztH5zqiFubiD2Au4Eq55.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "9a247a37f3c04e6aa934171998b9659c", - "labels": [ - "Middle-Aged", - "Explainer", - "Narration", - "News" - ], - "language": "Vietnamese", - "flag": "https://static.movio.la/region_flags/vn.png", - "locale": "vi-VN", - "sort": 1, - "gender": "Female", - "tags": "", - "display_name": "Hoai - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/382f6e52a495491486375f64adc173d2.wav" - }, - "settings": { - "style": "general", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "9a73e358ebf44097b8d3b6bc5fa57454", - "labels": [ - "Middle-Aged", - "Ads", - "Explainer" - ], - "language": "Portuguese", - "flag": "https://static.movio.la/region_flags/pt.png", - "locale": "pt-PT", - "sort": 2, - "gender": "Male", - "tags": "Young Adult, Ads, Explainer Videos, Product demos", - "display_name": "Duarte - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/99d89c99f7b04654b6f9cd2c72b29c66.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "9cfe3785136147ea967c7632f52c8788", - "labels": [ - "Middle-Aged", - "Natural", - "Professional" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 31, - "gender": "Male", - "tags": "", - "display_name": "Benjamin - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/THfjKiRjWcaDxtDgPbyrLc.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "9d50356dea1440bd8af1dcc0f618e161", - "labels": [], - "language": "Telugu", - "flag": "https://static.movio.la/region_flags/in.png", - "locale": "te-IN", - "sort": 1, - "gender": "Male", - "tags": "Young Adult, Ads, Product demos, Explainer Videos", - "display_name": "Mohan", - "preview": { - "movio": "https://static.movio.la/voice_preview/397732203d42414e9d2eaf1b2dede0e4.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "9d81087c3f9a45df8c22ab91cf46ca89", - "labels": [ - "Middle-Aged", - "News", - "Explainer", - "E-learning" - ], - "language": "Korean", - "flag": "https://static.movio.la/region_flags/kr.png", - "locale": "ko-KR", - "sort": 1, - "gender": "Male", - "tags": "Young Adult, Ads, Explainer Videos, Product demos", - "display_name": "InJoon - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/5fc1cc4036e142cb947c2ddea9007498.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "9db0ca21b07f41b4b81c3961859a68f2", - "labels": [ - "Middle-Aged", - "E-learning", - "Explainer", - "News" - ], - "language": "Arabic", - "flag": "https://static.movio.la/region_flags/sa.png", - "locale": "ar-SA", - "sort": 1, - "gender": "Male", - "tags": "Young Adult, Ads, E-learning & Presentations, Product demos, Explainer Videos, News", - "display_name": "Hamed - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/a141bbbd9eb448ceaf844f8bb0127ca6.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "9f836a90051d4fb69a8ad2065eedeed6", - "labels": [ - "Youth", - "News", - "Ads", - "E-learning", - "Narration" - ], - "language": "Chinese", - "flag": "https://static.movio.la/region_flags/cn.png", - "locale": "zh-CN", - "sort": 14, - "gender": "Female", - "tags": "Young Adult, Explainer Videos, Ads, Games, Audiobooks", - "display_name": "Xiaocheng - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/35191e70d9a44ac8b40e8812f94ddb18.wav" - }, - "settings": { - "style": "chat", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "a04d81d19afd436db611060682276331", - "labels": [ - "Youth", - "Ads", - "Natural" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/gb.png", - "locale": "en-GB", - "sort": 30, - "gender": "Male", - "tags": "", - "display_name": "Rudi - Friendly", - "preview": { - "movio": "https://static.movio.la/voice_preview/4TV6LHHA5q6MArEWJN2etH.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "a0723adbea2f493d816dfeeea38f4a8c", - "labels": [ - "Youth", - "E-learning", - "Ads", - "Explainer" - ], - "language": "Arabic", - "flag": "https://static.movio.la/region_flags/iq.png", - "locale": "ar-IQ", - "sort": 1, - "gender": "Female", - "tags": "Young Adult, E-learning & Presentations, Product demos, Explainer Videos, News, Ads", - "display_name": "Rana - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/27e54cdd8c8c432b8c35a1057da7ac0e.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "a0fc963ef6aa420c988a3292b78b9b58", - "labels": [], - "language": "Nepali", - "flag": "https://static.movio.la/region_flags/np.png", - "locale": "ne-NP", - "sort": 100, - "gender": "Male", - "tags": "", - "display_name": "Sagar - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/nz6zu5GXpzCmDgEDhJ4Jna.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "a12d857b0424427ea109213dc373c618", - "labels": [ - "Youth", - "Natural" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 12, - "gender": "male", - "tags": "", - "display_name": "Kenneth - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/TMMLHLXFCCX3d9wv7pfHQJ.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "a22a7a8cd45042ad83e9bb9203e1a84b", - "labels": [ - "Professional", - "Youth" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 39, - "gender": "Female", - "tags": "", - "display_name": "Lily - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/9kuXwV9GzDFmNRe629mLR4.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "a5231543ed2b4e62899067faf2f783f1", - "labels": [ - "Youth", - "News", - "Audiobooks", - "Explainer" - ], - "language": "Bulgarian", - "flag": "https://static.movio.la/region_flags/bg.png", - "locale": "bg-BG", - "sort": 1, - "gender": "Female", - "tags": "Young Adult, Customer Service, Explainer Videos, E-learning & Presentations", - "display_name": "Kalina - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/2017a7173dc5493c860bfc8a378c956a.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "a53be0a403ce4ae586f002ba0c125b2c", - "labels": [ - "Youth", - "Narration", - "E-learning", - "Ads" - ], - "language": "Portuguese", - "flag": "https://static.movio.la/region_flags/br.png", - "locale": "pt-BR", - "sort": 7, - "gender": "Male", - "tags": "Middle-Aged, Explainer Videos, E-learning & Presentations", - "display_name": "Paulo - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/226e2c7b85b2489e8dd15750dfa7e7a1.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "a56a4fa01bc94c79be13f9803dfb5721", - "labels": [ - "Ads", - "Natural", - "Middle-Aged" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 13, - "gender": "Female", - "tags": "", - "display_name": "Audrey - Cheerful", - "preview": { - "movio": "https://static.movio.la/voice_preview/FmbRdxCQTcBFnrczYfJFmD.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "a6f3eea9f3764d36a279ae810d1353c6", - "labels": [ - "Middle-Aged", - "Explainer", - "Audiobooks", - "Ads", - "News" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 18, - "gender": "Male", - "tags": "Middle-Age,E-learning & Presentations, Product demos, Explainer Videos, News, Ads", - "display_name": "Tracy - Cheerful", - "preview": { - "movio": "https://static.movio.la/voice_preview/VRz9yRAwKEaeafHP6Vfzu7.wav" - }, - "settings": { - "style": "cheerful", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "a72281fc65c542559bbc63d9ec5c866f", - "labels": [ - "Middle-Aged", - "Explainer", - "Audiobooks", - "E-learning" - ], - "language": "Arabic", - "flag": "https://static.movio.la/region_flags/bh.png", - "locale": "ar-BH", - "sort": 1, - "gender": "Male", - "tags": "Young Adult, E-learning & Presentations, Product demos, Explainer Videos, News, Ads", - "display_name": "Ali - Newscaster", - "preview": { - "movio": "https://static.movio.la/voice_preview/db8aa10aeb34419a97bf2dd6c5076a4b.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "a78e0a4dbbe247d0a704b91175e6d987", - "labels": [ - "Middle-Aged", - "Natural", - "Narration" - ], - "language": "Spanish", - "flag": "https://static.movio.la/region_flags/es.png", - "locale": "es-ES", - "sort": 100, - "gender": "Female", - "tags": "", - "display_name": "Laia - Friendly", - "preview": { - "movio": "https://static.movio.la/voice_preview/PeyGSV89Txz6KZLFMgXYjT.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "a9e940179c1d4a1d91e6c7c3b0fea788", - "labels": [ - "Middle-Aged", - "E-learning", - "News", - "Ads" - ], - "language": "French", - "flag": "https://static.movio.la/region_flags/ca.png", - "locale": "fr-CA", - "sort": 31, - "gender": "Male", - "tags": "Middle-Aged, News, E-learning & Presentations, Explainer Videos, Ads", - "display_name": "Jean - Friendly", - "preview": { - "movio": "https://static.movio.la/voice_preview/3f539950e41c476fa19722d5e5106688.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "a9fc40f6fcd5400a83d95911610d6807", - "labels": [], - "language": "Marathi", - "flag": "https://static.movio.la/region_flags/in.png", - "locale": "mr-IN", - "sort": 100, - "gender": "Female", - "tags": "", - "display_name": "Aarohi - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/MFrQhrrxx6C3TDY9xC8QG2.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "aa73aedf00974150944a4bb19225f66e", - "labels": [ - "Middle-Aged", - "Ads", - "E-learning", - "Explainer" - ], - "language": "Chinese", - "flag": "https://static.movio.la/region_flags/cn.png", - "locale": "zh-CN", - "sort": 16, - "gender": "Female", - "tags": "Middle-Aged, Explainer Videos, Ads, Low-Pitched, Product demos", - "display_name": "Xiaorui - Cheerful", - "preview": { - "movio": "https://static.movio.la/voice_preview/711a3f402ec54fb6a5620c9b49b01c3a.wav" - }, - "settings": { - "style": "calm", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "aa815b9a80534d928634cb7df4f99754", - "labels": [ - "Narration", - "Audiobooks", - "Youth" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 19, - "gender": "Female", - "tags": "", - "display_name": "Sophia - Narration", - "preview": { - "movio": "https://static.movio.la/voice_preview/9rsAYURnjDUWN3HsnKv3i3.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "ac175cecdde2488fb0c80468cda79c50", - "labels": [ - "Middle-Aged", - "News", - "Audiobooks", - "Explainer" - ], - "language": "Arabic", - "flag": "https://static.movio.la/region_flags/iq.png", - "locale": "ar-IQ", - "sort": 1, - "gender": "Male", - "tags": "Young Adult, E-learning & Presentations, Product demos, Explainer Videos, News, Ads", - "display_name": "Bassel - Friendly", - "preview": { - "movio": "https://static.movio.la/voice_preview/45d19dc2351c42c4ab2b122185b858bb.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "ad5d215f61d94f91ac774478fd754cf9", - "labels": [ - "Middle-Aged", - "Explainer", - "Natural" - ], - "language": "Swedish", - "flag": "https://static.movio.la/region_flags/se.png", - "locale": "sv-SE", - "sort": 10, - "gender": "Male", - "tags": "", - "display_name": "Roland - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/PDidnDJB6CHQcD6av9M4CF.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "adc699478776486997dcf2f7b1534a89", - "labels": [ - "Youth", - "Natural" - ], - "language": "Estonian", - "flag": "https://static.movio.la/region_flags/ee.png", - "locale": "et-EE", - "sort": 100, - "gender": "Male", - "tags": "", - "display_name": "Kert - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/mSJ6hX8j4xc7UWC8Uwe9gV.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "ae3563ff1460469e89f661ffb3f1260b", - "labels": [ - "Youth", - "Narration", - "News", - "Ads" - ], - "language": "Hindi", - "flag": "https://static.movio.la/region_flags/in.png", - "locale": "hi-IN", - "sort": 2, - "gender": "Male", - "tags": "", - "display_name": "Bhavin - Newscaster", - "preview": { - "movio": "https://static.movio.la/voice_preview/7224e9c56b234898a758421c138475b2.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "af63f654e4234682bfb7d34b08007466", - "labels": [ - "Youth", - "Narration", - "E-learning", - "Ads" - ], - "language": "Spanish", - "flag": "https://static.movio.la/region_flags/ar.png", - "locale": "es-AR", - "sort": 6, - "gender": "Female", - "tags": "Middle-Aged, News, Explainer Videos", - "display_name": "Elena - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/6d47a68eebbb448da7afddc6a1830e7d.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "afab75da785b4a42b6fcc5ad282d8fa9", - "labels": [ - "Narration", - "News", - "Middle-Aged" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 10, - "gender": "male", - "tags": "", - "display_name": "Warren-Narration", - "preview": { - "movio": "https://static.movio.la/voice_preview/X8AszKmeDFDaCA9Gkr4tqL.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "b2ddcef2b1594794aa7f3a436d8cf8f2", - "labels": [ - "Middle-Aged", - "Explainer", - "News" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/gb.png", - "locale": "en-GB", - "sort": 33, - "gender": "Male", - "tags": "", - "display_name": "Keanan - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/5hFXAVXkxRNHBdhvJTJJKe.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "b3003591331b4a3ab859bf630bf28713", - "labels": [], - "language": "Marathi", - "flag": "https://static.movio.la/region_flags/in.png", - "locale": "mr-IN", - "sort": 100, - "gender": "Male", - "tags": "", - "display_name": "Manohar - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/BxvKDTDGwHZb4vwgLGLYJu.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "b3150d405d374dd99e569282ee68fa21", - "labels": [ - "Natural", - "Middle-Aged", - "Explainer" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 11, - "gender": "male", - "tags": "", - "display_name": "Mason - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/8ybzJogfVPFiZL9kfUN4g3.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "b32ea9471bb74ee688b75dde1e2ae6d7", - "labels": [ - "Middle-Aged", - "News", - "Audiobooks", - "Explainer" - ], - "language": "French", - "flag": "https://static.movio.la/region_flags/fr.png", - "locale": "fr-FR", - "sort": 5, - "gender": "Male", - "tags": "Young Adult, E-learning & Presentations, Product demos, Explainer Videos, News, Ads", - "display_name": "Henri - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/217ccdfe1b9c4507b08f22b1c471190e.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "b46125eedb894e358d86210c5e11c041", - "labels": [ - "Youth", - "News", - "Explainer", - "E-learning" - ], - "language": "Bulgarian", - "flag": "https://static.movio.la/region_flags/bg.png", - "locale": "bg-BG", - "sort": 1, - "gender": "Male", - "tags": "Young Adult, Customer Service, Explainer Videos, Ads", - "display_name": "Borislav - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/391e43e0d2a147728fb047ee56347a31.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "b4cfec94204242bda16ca146558b7218", - "labels": [ - "Natural", - "Explainer" - ], - "language": "Sinhala", - "flag": "https://static.movio.la/region_flags/lk.png", - "locale": "si-LK", - "sort": 100, - "gender": "male", - "tags": "", - "display_name": "Sameera - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/VJ2dETkcyS7Yb57MxGJT5N.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": null, - "lang": null, - "break": false, - "prosody": null, - "emphasis": "", - "say_as": null - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "b4d04a4ca86b42c895844c786c9043d3", - "labels": [ - "Natural", - "Explainer" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 9, - "gender": "male", - "tags": "", - "display_name": "Craig-Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/aTXHGEV8e3iTccph2SZ4DG.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "b5052d61c5964bceaa3ff25d7b1b9e8a", - "labels": [ - "Youth", - "Explainer", - "Narration", - "E-learning" - ], - "language": "German", - "flag": "https://static.movio.la/region_flags/de.png", - "locale": "de-DE", - "sort": 8, - "gender": "Male", - "tags": "Middle-Aged, Product demos, Explainer Videos", - "display_name": "Bernd - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/2dd5016033444b53a8a2307ab131d47a.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "b64f2f29a2074cb7a3c0071ad3ad41bd", - "labels": [ - "Middle-Aged" - ], - "language": "Gujarati", - "flag": "https://static.movio.la/region_flags/in.png", - "locale": "gu-IN", - "sort": 100, - "gender": "Male", - "tags": "", - "display_name": "Niranjan - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/8pmgVwbee3X7vuM65NbgSS.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "b8b6f5b6e57c40df91811e385b2725b3", - "labels": [ - "Youth", - "Ads", - "E-learning", - "Natural" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/ie.png", - "locale": "en-IE", - "sort": 8, - "gender": "Male", - "tags": "", - "display_name": "Connor - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/faRVtvJziRGQEJd5PK6fiK.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "b8fb879d52454ebeb1a9579797db6bd4", - "labels": [ - "Youth", - "Ads", - "Explainer", - "E-learning" - ], - "language": "Arabic", - "flag": "https://static.movio.la/region_flags/bh.png", - "locale": "ar-BH", - "sort": 1, - "gender": "Female", - "tags": "Young Adult, E-learning & Presentations, Product demos, Explainer Videos, News, Ads", - "display_name": "Laila - Friendly", - "preview": { - "movio": "https://static.movio.la/voice_preview/7bb84d039af7405a83bed750db78d037.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "b9953cd27740417c950f2f0db34243ad", - "labels": [ - "Youth", - "Audiobooks", - "E-learning", - "Narration", - "News" - ], - "language": "French", - "flag": "https://static.movio.la/region_flags/fr.png", - "locale": "fr-FR", - "sort": 7, - "gender": "Male", - "tags": "Young Adult, Explainer Videos, E-learning & Presentations, Product demos", - "display_name": "Claude - Friendly", - "preview": { - "movio": "https://static.movio.la/voice_preview/306681b3e572434798cd6a7e68324473.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "ba3b2274201d4f18b8b6888ad991bffe", - "labels": [ - "Youth", - "News", - "Ads", - "Explainer" - ], - "language": "Polish", - "flag": "https://static.movio.la/region_flags/pl.png", - "locale": "pl-PL", - "sort": 1, - "gender": "Female", - "tags": "Young Adult, Ads, Customer Service", - "display_name": "Zofia - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/d975d1831b994ab29c689800dd43b18a.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "ba61b3b0a56d463dbff10eeccd3a899a", - "labels": [ - "Middle-Aged", - "News", - "Audiobooks", - "Narration" - ], - "language": "French", - "flag": "https://static.movio.la/region_flags/fr.png", - "locale": "fr-FR", - "sort": 7, - "gender": "Female", - "tags": "Young Adult, Ads, Explainer Videos, E-learning & Presentations", - "display_name": "Josephine - Calm", - "preview": { - "movio": "https://static.movio.la/voice_preview/d3d5d36675c04e97a9baf4b178dd1d76.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "ba9dee2892da476b9f01c7cc659879b5", - "labels": [ - "Middle-Aged", - "Explainer", - "Natural", - "Narration" - ], - "language": "Swedish", - "flag": "https://static.movio.la/region_flags/se.png", - "locale": "sv-SE", - "sort": 70, - "gender": "Female", - "tags": "", - "display_name": "Alicia - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/4iyfze9R9hx9XicM9nsBeo.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "bb50022458624d89acd48368c3119ac2", - "labels": [ - "Youth", - "Explainer", - "News", - "Narration" - ], - "language": "German", - "flag": "https://static.movio.la/region_flags/de.png", - "locale": "de-DE", - "sort": 6, - "gender": "Male", - "tags": "Young Adult, Explainer Videos, E-learning & Presentations", - "display_name": "Killian - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/1b60bd820a224a4780297163df2753c6.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "bc22af81440d4212acf315103d7faf82", - "labels": [ - "Youth", - "Ads", - "Narration", - "News" - ], - "language": "Hindi", - "flag": "https://static.movio.la/region_flags/in.png", - "locale": "hi-IN", - "sort": 5, - "gender": "Female", - "tags": "", - "display_name": "Aditi - Calm", - "preview": { - "movio": "https://static.movio.la/voice_preview/c8641047a84040df9e98fb3c84923f6c.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "bc69c9589d6747028dc5ec4aec2b43c3", - "labels": [ - "Youth", - "Ads", - "Explainer", - "E-learning" - ], - "language": "Russian", - "flag": "https://static.movio.la/region_flags/ru.png", - "locale": "ru-RU", - "sort": 1, - "gender": "Female", - "tags": "Young Adult, Customer Service, Ads, Explainer Videos", - "display_name": "Dariya - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/26d8c533961f4a9daa70b5d9d1838005.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "beaa640abaa24c32bea33b280d2f5ea3", - "labels": [ - "Youth", - "Audiobooks", - "E-learning", - "Narration" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 16, - "gender": "Male", - "tags": "Young Adult, Ads, Explainer Videos, E-learning & Presentations", - "display_name": "Johan - Friendly", - "preview": { - "movio": "https://static.movio.la/voice_preview/fkxNCfdkoKfopBpTtvQqAp.wav" - }, - "settings": { - "style": "hopeful", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "bef4755ca1f442359c2fe6420690c8f7", - "labels": [ - "Youth", - "Ads", - "Explainer", - "Audiobooks" - ], - "language": "Korean", - "flag": "https://static.movio.la/region_flags/kr.png", - "locale": "ko-KR", - "sort": 1, - "gender": "Female", - "tags": "Young Adult, Customer Service, Explainer Videos, E-learning & Presentations", - "display_name": "SunHi - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/304a4edf4b724362902bd811b96b6443.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "c028be6858d04ee79c12a2209ab47bf8", - "labels": [ - "Narration", - "Youth", - "E-learning" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 11, - "gender": "Female", - "tags": "", - "display_name": "Hailey - Calm", - "preview": { - "movio": "https://static.movio.la/voice_preview/M4XBjtiH4yaz9GQhXHtSnV.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "c089f9832fd04922b34b3d2f3661d113", - "labels": [ - "Youth", - "E-learning", - "Explainer", - "Narration" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 15, - "gender": "Male", - "tags": "Young Adult, Ads, Explainer Videos, E-learning & Presentations", - "display_name": "Brandon - Warm", - "preview": { - "movio": "https://static.movio.la/voice_preview/maqA9fw7siQAcv2WafDz4F.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "c15a2314cbc446b7b6637f44234d6836", - "labels": [ - "Youth", - "Explainer", - "E-learning", - "Narration" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/za.png", - "locale": "en-ZA", - "sort": 34, - "gender": "Female", - "tags": "Young Adult, Explainer Videos, Product demos, E-learning & Presentations", - "display_name": "Leah - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/i5bRcieHP5gHNkcQkDSzpE.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "c218750e46864dba9c45b9e40fe91aef", - "labels": [ - "Youth", - "E-learning", - "Explainer", - "News" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/au.png", - "locale": "en-AU", - "sort": 32, - "gender": "Female", - "tags": "Young Adult, E-learning & Presentations, Product demos, Explainer Videos, News, Ads", - "display_name": "Natasha - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/WXnjbGWv8ApsQncudqKfW7.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "c29568d0e4a54715bb62bb40daa67875", - "labels": [ - "Middle-Aged", - "Ads" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/gb.png", - "locale": "en-GB", - "sort": 33, - "gender": "Female", - "tags": "", - "display_name": "Alison - Cheerful", - "preview": { - "movio": "https://static.movio.la/voice_preview/ZQLzm4o75YDvt8uS33Lqbd.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "c2958d67f1e74403a0038e3445d93d50", - "labels": [ - "Youth", - "E-learning", - "Audiobooks", - "Explainer", - "News" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 14, - "gender": "Female", - "tags": "Young Adult, Ads, Explainer Videos, E-learning & Presentations", - "display_name": "Sherry - Friendly", - "preview": { - "movio": "https://static.movio.la/voice_preview/RGqs3H9eLfHkc3HduJXxTY.wav" - }, - "settings": { - "style": "friendly", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "c29c6fdb6abe4146be2daa7929f03e41", - "labels": [ - "Youth", - "E-learning", - "Explainer", - "Ads", - "News" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/gb.png", - "locale": "en-GB", - "sort": 27, - "gender": "Female", - "tags": "Young Adult, E-learning & Presentations, Product demos, Explainer Videos, News, Ads", - "display_name": "Abbi - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/UcamNKnVKBJiTKVSuCGuTp.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "c2ace75f65fd433f987337950e812335", - "labels": [ - "Middle-Aged", - "Narration", - "News", - "E-learning" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/nz.png", - "locale": "en-NZ", - "sort": 6, - "gender": "Female", - "tags": "", - "display_name": " Molly - Newscaster", - "preview": { - "movio": "https://static.movio.la/voice_preview/jEKUAyUKmX8iG4NXrCmQRC.wav" - }, - "settings": { - "style": "general", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "c516bd553fd2402e9b1696b5e5bde910", - "labels": [ - "Youth", - "News", - "E-learning", - "Narration" - ], - "language": "Chinese", - "flag": "https://static.movio.la/region_flags/cn.png", - "locale": "zh-CN", - "sort": 15, - "gender": "Female", - "tags": "Young Adult, Explainer Videos, Ads, Audiobooks, E-learning & Presentations", - "display_name": "Xiaohan - Peaceful", - "preview": { - "movio": "https://static.movio.la/voice_preview/8083eb25c12345c99bb90bd3d7fd88e2.wav" - }, - "settings": { - "style": "gentle", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "c683b544f2b34bbfb81313e81852dd38", - "labels": [ - "Middle-Aged", - "Ads" - ], - "language": "Norwegian", - "flag": "https://static.movio.la/region_flags/no.png", - "locale": "nb-NO", - "sort": 100, - "gender": "Female", - "tags": "", - "display_name": "Pernille - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/SeLKqrMTHLePMP7FEK6ZaH.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "c6fb81520dcd42e0a02be231046a8639", - "labels": [ - "Youth", - "Ads", - "Explainer", - "News", - "Narration" - ], - "language": "Vietnamese", - "flag": "https://static.movio.la/region_flags/vn.png", - "locale": "vi-VN", - "sort": 1, - "gender": "Male", - "tags": "", - "display_name": "NamMinh - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/a716507b478c430580eb80f4aa8ac273.wav" - }, - "settings": { - "style": "general", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "c7b89c2854214a2f9709534a873a57ea", - "labels": [ - "Natural", - "Youth" - ], - "language": "Finnish", - "flag": "https://static.movio.la/region_flags/fi.png", - "locale": "fi-FI", - "sort": 100, - "gender": "Male", - "tags": "", - "display_name": "Harri - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/j6kh7pnUmir9h8RZU7aotA.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "c84b984bc6394112ab95bb75e2c871e1", - "labels": [ - "Youth", - "Explainer", - "News", - "Ads" - ], - "language": "Japanese", - "flag": "https://static.movio.la/region_flags/jp.png", - "locale": "ja-JP", - "sort": 2, - "gender": "Male", - "tags": "Young Adult, Ads, Explainer Videos, E-learning & Presentations", - "display_name": "Takumi - Warm", - "preview": { - "movio": "https://static.movio.la/voice_preview/5651d31a546e4976ad27427fdadf1651.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "word", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "c8a9c5997593b413e48e22cd9a4d6525", - "labels": [ - "Youth", - "Ads", - "Explainer", - "E-learning" - ], - "language": "Portuguese", - "flag": "https://static.movio.la/region_flags/br.png", - "locale": "pt-BR", - "sort": 5, - "gender": "Female", - "tags": "Young Adult, News, Youtube, Product demos", - "display_name": "Elza - Warm", - "preview": { - "movio": "https://static.movio.la/voice_preview/83572cdb6b24475a82d6bcf832615d38.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "c8f228e9ead44542829eb87d51420fbf", - "labels": [ - "Narration", - "Audiobooks", - "Natural" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 9, - "gender": "Female", - "tags": "", - "display_name": "Charlotte - Narration", - "preview": { - "movio": "https://static.movio.la/voice_preview/hF2vCwDV6mPojTnvvHva24.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "c9d7dad727f5433281a2fd0e8ecbb9bd", - "labels": [ - "Youth", - "Explainer", - "Ads", - "E-learning" - ], - "language": "Arabic", - "flag": "https://static.movio.la/region_flags/ye.png", - "locale": "ar-YE", - "sort": 1, - "gender": "Female", - "tags": "Young Adult, Explainer Videos, News, Ads, Product demos", - "display_name": "Maryam - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/4eef28034bdf4a2e9961c8f53dc2d85d.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "cac876fea7c541e7a634a9b386ee3b53", - "labels": [ - "Youth", - "Natural", - "Ads" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 7, - "gender": "male", - "tags": "", - "display_name": "Levi - Friendly", - "preview": { - "movio": "https://static.movio.la/voice_preview/XAaEPdKfrho2rmXVqi8M6M.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "cbb56828d798491e9f601a5415415e25", - "labels": [ - "Youth", - "Ads" - ], - "language": "Spanish", - "flag": "https://static.movio.la/region_flags/mx.png", - "locale": "es-MX", - "sort": 100, - "gender": "Female", - "tags": "", - "display_name": "Larissa - Friendly", - "preview": { - "movio": "https://static.movio.la/voice_preview/Jg5MDxyd6pjrPhvPLepFdh.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "cc29d03937d14240acf109c827a9a51a", - "labels": [ - "Youth", - "News", - "Narration", - "E-learning" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 10, - "gender": "Female", - "tags": "Young Adult, Explainer Videos, E-learning & Presentations, Product demos", - "display_name": "Aria - Newscaster", - "preview": { - "movio": "https://static.movio.la/voice_preview/5vzP2xA79TcGpndVngHBbA.wav" - }, - "settings": { - "style": "narration-professional", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "ccb30e87c6b34ca8941f88352c71612d", - "labels": [ - "Youth", - "Ads", - "Explainer", - "News" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/gb.png", - "locale": "en-GB", - "sort": 22, - "gender": "Male", - "tags": "Young Adult, E-learning & Presentations, Product demos, Explainer Videos, News, Ads", - "display_name": "Noah - Serious", - "preview": { - "movio": "https://static.movio.la/voice_preview/UDzn8mZ5eKbXrQQojCVMud.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "ccf05082198240f18053e57ac1dc2b5c", - "labels": [ - "Narration", - "Middle-Aged", - "Explainer", - "Professional" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 3, - "gender": "male", - "tags": "", - "display_name": "Jackson - Narration", - "preview": { - "movio": "https://static.movio.la/voice_preview/Xq8odYA7oSdemnkrrNxv9K.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "cd05d8c2c52444fbbbbbe16d86734464", - "labels": [ - "Narration", - "Youth", - "Explainer" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 17, - "gender": "male", - "tags": "", - "display_name": "Julian - Narration", - "preview": { - "movio": "https://static.movio.la/voice_preview/dcvPwsn8tLtJrosBrufgxk.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "cd658f1164c1489093607163fc83ba62", - "labels": [ - "Audiobooks", - "Youth" - ], - "language": "Thai", - "flag": "https://static.movio.la/region_flags/th.png", - "locale": "th-TH", - "sort": 100, - "gender": "Female", - "tags": "", - "display_name": "Premwadee - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/UMArfsbGuYxonKRvtSBe9a.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "cd92a228f9bf4fb1adaa1531595cd5d4", - "labels": [ - "Middle-Aged", - "Ads" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 41, - "gender": "Female", - "tags": "", - "display_name": "Indira - Cheerful", - "preview": { - "movio": "https://static.movio.la/voice_preview/H63XT8YQH7L4vupiCXGd2Z.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "cdd9ca1e09e34867a23d0cf77deb52ea", - "labels": [ - "Youth" - ], - "language": "Hebrew", - "flag": "https://static.movio.la/region_flags/il.png", - "locale": "he-IL", - "sort": 100, - "gender": "male", - "tags": "", - "display_name": "Isaiah - Serious", - "preview": { - "movio": "https://static.movio.la/voice_preview/C9jiJXuFU4EE24csF2JUj.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": null, - "lang": null, - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": null - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "ced64f6c3e56455692a04e6106db9dde", - "labels": [ - "Youth", - "Ads", - "Explainer", - "E-learning" - ], - "language": "French", - "flag": "https://static.movio.la/region_flags/ch.png", - "locale": "fr-CH", - "sort": 3, - "gender": "Male", - "tags": "Young Adult, News, Product demos, Explainer Videos, Ads", - "display_name": "Fabrice - Friendly", - "preview": { - "movio": "https://static.movio.la/voice_preview/af486fe2ca8747538656025e556fac50.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "ceebaab47af040a49edcbd27dc8f7dbe", - "labels": [ - "E-learning", - "News" - ], - "language": "Filipino", - "flag": "https://static.movio.la/region_flags/ph.png", - "locale": "fil-PH", - "sort": 2, - "gender": "Female", - "tags": "", - "display_name": "Luningnig", - "preview": { - "movio": "https://static.movio.la/voice_preview/Z2soFA5ma8KPTZnpF6XPN2.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "cfdb383951144f56a5198869636ccd17", - "labels": [ - "Youth", - "Ads", - "E-learning", - "Narration" - ], - "language": "Portuguese", - "flag": "https://static.movio.la/region_flags/br.png", - "locale": "pt-BR", - "sort": 1, - "gender": "Male", - "tags": "Young Adult, News, Explainer Videos, E-learning & Presentations", - "display_name": "Antonio - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/82871b89da0d42f0bc9c64681f00ae48.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "d0ba3a24e9fc49b1ae528a0dca5bf141", - "labels": [ - "Youth", - "News", - "Audiobooks", - "E-learning" - ], - "language": "Bangla", - "flag": "https://static.movio.la/region_flags/in.png", - "locale": "bn-IN", - "sort": 1, - "gender": "Male", - "tags": "News, E-learning & Presentations, Audiobooks", - "display_name": "Abhijit - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/c9a639f30d1c48d7b2fb9458c361123a.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "d252ca05aabc4ed587098201f42e6172", - "labels": [ - "Middle-Aged", - "Natural" - ], - "language": "Spanish", - "flag": "https://static.movio.la/region_flags/es.png", - "locale": "es-ES", - "sort": 100, - "gender": "Female", - "tags": "", - "display_name": "Abril - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/T3DNmvM7x8VVuY9S64B5YU.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "d2d4788928f443f5b8d6c60f201030cd", - "labels": [ - "Youth", - "Ads", - "Explainer" - ], - "language": "Dutch", - "flag": "https://static.movio.la/region_flags/nl.png", - "locale": "nl-NL", - "sort": 150, - "gender": "Female", - "tags": "", - "display_name": "Hanna - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/czaXYBZNro2An5BvAddGEa.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "d2ec95840fa84bc38fcb4bf04cd12f9e", - "labels": [ - "Youth", - "News", - "Explainer", - "Audiobooks" - ], - "language": "Arabic", - "flag": "https://static.movio.la/region_flags/qa.png", - "locale": "ar-QA", - "sort": 1, - "gender": "Male", - "tags": "Young Adult, Explainer Videos, News, Ads, Product demos", - "display_name": "Moaz - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/1672ce3d29b94d39bb60c6756a61ee9d.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "d336d17c60fe488bb7f7c16301e1d1d5", - "labels": [ - "Middle-Aged", - "News", - "Audiobooks", - "Narration" - ], - "language": "French", - "flag": "https://static.movio.la/region_flags/fr.png", - "locale": "fr-FR", - "sort": 8, - "gender": "Male", - "tags": "Middle-Aged, News, E-learning & Presentations, Explainer Videos", - "display_name": "Maurice - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/ffe9abccec3b4b02a86684a97ee187dc.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "d36f8d1c27054f7baa52c216ad874d16", - "labels": [ - "Narration", - "Youth", - "Natural", - "Explainer" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 5, - "gender": "male", - "tags": "", - "display_name": "Alexander - Narration", - "preview": { - "movio": "https://static.movio.la/voice_preview/eSxLsT26vJFS7aomV3aX9X.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "d3edc86dcdd04011b7e5e5d27562fcf5", - "labels": [ - "Natural", - "Explainer", - "E-learning" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 7, - "gender": "male", - "tags": "", - "display_name": "Larry-Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/5kuCRJnPiDk24gBeuNC9bi.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "d4374e1ee455465cac7600f318a84624", - "labels": [ - "Youth", - "Explainer", - "News", - "Ads" - ], - "language": "Arabic", - "flag": "https://static.movio.la/region_flags/sy.png", - "locale": "ar-SY", - "sort": 1, - "gender": "Male", - "tags": "Young Adult, Explainer Videos, News, Ads, Product demos", - "display_name": "Laith - Warm", - "preview": { - "movio": "https://static.movio.la/voice_preview/0ce94b0dc6fb4e6b82c4064e405a7852.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "d47ae8f1b293429f9e1513ce85d482e4", - "labels": [ - "Middle-Aged", - "News", - "Explainer", - "E-learning" - ], - "language": "German", - "flag": "https://static.movio.la/region_flags/de.png", - "locale": "de-DE", - "sort": 1, - "gender": "Female", - "tags": "Middle-Aged, News, Explainer Videos, E-learning & Presentations", - "display_name": "Klarissa - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/abf1df2570c944b9ab5d1ecc8aa8c763.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "d5e87b3c1778488697d8c35f50ff7a28", - "labels": [ - "Games", - "Middle-Aged" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 100, - "gender": "Male", - "tags": "", - "display_name": "Keith - Cheerful", - "preview": { - "movio": "https://static.movio.la/voice_preview/s9TAzfFvQ5CwT97Airbvu8.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "d5fdcfda99cd44dba12a4ea0076a7271", - "labels": [ - "Child", - "Natural" - ], - "language": "Italian", - "flag": "https://static.movio.la/region_flags/it.png", - "locale": "it-IT", - "sort": 100, - "gender": "female", - "tags": "", - "display_name": "Pierina - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/oGWBgMc6H2RntkhkkjmAhG.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": null, - "lang": null, - "break": false, - "prosody": null, - "emphasis": "", - "say_as": null - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "d62a0ce960434056b25c058bc4fa2509", - "labels": [ - "Middle-Aged", - "Audiobooks", - "Explainer", - "News" - ], - "language": "Spanish", - "flag": "https://static.movio.la/region_flags/mx.png", - "locale": "es-MX", - "sort": 2, - "gender": "Male", - "tags": "Middle-Aged, News, Explainer Videos", - "display_name": "Jorge - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/3dcdbcc214864ffb830b2795dc3a25e9.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "d7bbcdd6964c47bdaae26decade4a933", - "labels": [ - "Middle-Aged", - "E-learning", - "Audiobooks", - "News" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 4, - "gender": "Male", - "tags": "Middle-Aged, Explainer Videos, News", - "display_name": "Christopher - Calm", - "preview": { - "movio": "https://static.movio.la/voice_preview/Pn2tXVGjpwyHpWTsKFj87X.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "da239df5428c67c12c3271d2a0d3b66c", - "labels": [ - "Youth", - "Ads", - "Explainer", - "News" - ], - "language": "Portuguese", - "flag": "https://static.movio.la/region_flags/br.png", - "locale": "pt-BR", - "sort": 6, - "gender": "Male", - "tags": "Young Adult, Ads, Product demos, Youtube, Assistant", - "display_name": "Humberto - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/cfff49b2ad534ec0bcff4fac6584c588.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "dbcfe683e60a4bed9b8957d1f5d6de98", - "labels": [ - "Youth", - "Explainer", - "Ads", - "E-learning" - ], - "language": "Italian", - "flag": "https://static.movio.la/region_flags/it.png", - "locale": "it-IT", - "sort": 1, - "gender": "Male", - "tags": "Young Adult, Explainer Videos, E-learning & Presentations", - "display_name": "Diego - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/bdc08e6dbb004af4bf395d2dd0ad8645.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "dbe43f2b612d4ffab71925ebf53a0b4f", - "labels": [ - "Youth", - "Explainer", - "Ads", - "E-learning" - ], - "language": "Spanish", - "flag": "https://static.movio.la/region_flags/cl.png", - "locale": "es-CL", - "sort": 3, - "gender": "Female", - "tags": "Young Adult, Ads, Product demos, Explainer Videos", - "display_name": "Catalina - Warm", - "preview": { - "movio": "https://static.movio.la/voice_preview/81d8ecf79e604a96a63c8619b8290d60.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "dbf999472fe147be9de01004103c21ea", - "labels": [ - "Youth", - "Explainer", - "Ads" - ], - "language": "Portuguese", - "flag": "https://static.movio.la/region_flags/br.png", - "locale": "pt-BR", - "sort": 7, - "gender": "Female", - "tags": "Young Adult, Explainer Videos, E-learning & Presentations, Product demos, Youtube", - "display_name": "Adriana - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/56f9ef0f038c4bc28a21ffc254bec715.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "dcf69bbbab5b41f2b75b9f86316c06c5", - "labels": [ - "Youth", - "Audiobooks", - "E-learning", - "Explainer" - ], - "language": "Hindi", - "flag": "https://static.movio.la/region_flags/in.png", - "locale": "hi-IN", - "sort": 1, - "gender": "Female", - "tags": "", - "display_name": "Aruna - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/b1303134695d4d0e8d6308ac7d22bd3e.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "dd47dadb46f4b930cc760d8f3ad44fd9", - "labels": [], - "language": "Turkish", - "flag": "https://static.movio.la/region_flags/tr.png", - "locale": "tr-TR", - "sort": 1, - "gender": "Female", - "tags": "Young Adult, Ads, Product demos, Explainer Videos", - "display_name": "Emel", - "preview": { - "movio": "https://static.movio.la/voice_preview/008e01d2a6a94cfca6a4cca5951a7320.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "de6ad44022104ac0872392d1139e9364", - "labels": [ - "Youth", - "News", - "Explainer", - "E-learning", - "Audiobooks" - ], - "language": "Chinese", - "flag": "https://static.movio.la/region_flags/cn.png", - "locale": "zh-CN", - "sort": 0, - "gender": "Female", - "tags": "Young Adult, News, Explainer Videos, Audiobooks", - "display_name": "Xiaoxin - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/6a435813c0dd43a4af272ff8fffcc959.wav" - }, - "settings": { - "style": "newscast", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "dea92eeb96984004b5a04dd656d3ef9f", - "labels": [ - "Youth", - "Ads" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 9, - "gender": "male", - "tags": "", - "display_name": "Dylan - Cheerful", - "preview": { - "movio": "https://static.movio.la/voice_preview/bqCoKYFgQMFDnCvmU5BjpU.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "df1b0eaaf0cb4229b238ec530828ea83", - "labels": [ - "Professional", - "Youth" - ], - "language": "Urdu", - "flag": "https://static.movio.la/region_flags/pk.png", - "locale": "ur-PK", - "sort": 100, - "gender": "Female", - "tags": "", - "display_name": "Uzma - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/MXm8Z3CCfRjgngcwXiyRaN.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "dfaf1a62e9bc4616985f2bfab5a3f656", - "labels": [ - "Youth", - "Ads", - "E-learning", - "News" - ], - "language": "Arabic", - "flag": "https://static.movio.la/region_flags/tn.png", - "locale": "ar-TN", - "sort": 1, - "gender": "Male", - "tags": "Young Adult, Explainer Videos, News, Ads, Product demos", - "display_name": "Hedi - Friendly", - "preview": { - "movio": "https://static.movio.la/voice_preview/a050da8d411744029d4b04a1840b25ee.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "e052b69dbb6c4930a46b14960ee11dce", - "labels": [ - "Youth" - ], - "language": "Hebrew", - "flag": "https://static.movio.la/region_flags/il.png", - "locale": "he-IL", - "sort": 100, - "gender": "male", - "tags": "", - "display_name": "Aryeh - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/WVB7N8TELqCX8wu6Ak7qKQ.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": null, - "lang": null, - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": null - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "e17b99e1b86e47e8b7f4cae0f806aa78", - "labels": [ - "Middle-Aged", - "News", - "Explainer", - "Audiobooks" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/ca.png", - "locale": "en-CA", - "sort": 13, - "gender": "Male", - "tags": "Young Adult, E-learning & Presentations, Product demos, Explainer Videos, News, Ads", - "display_name": "Liam - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/8sg49P4MFQnpDvpRkaR6M9.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "e203c4c715894385b81187f2f26ac6f9", - "labels": [ - "Middle-Aged", - "E-learning", - "Explainer", - "News" - ], - "language": "Arabic", - "flag": "https://static.movio.la/region_flags/jo.png", - "locale": "ar-JO", - "sort": 1, - "gender": "Female", - "tags": "Young Adult, E-learning & Presentations, Product demos, Explainer Videos, News, Ads", - "display_name": "Sana - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/89057be683794a5f8e5e135465922534.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "e280fba0eada0e3127e2c2a58e1206cb", - "labels": [], - "language": "Turkish", - "flag": "https://static.movio.la/region_flags/tr.png", - "locale": "tr-TR", - "sort": 1, - "gender": "Male", - "tags": "Young Adult, Ads, Product demos, Explainer Videos", - "display_name": "Ahmet", - "preview": { - "movio": "https://static.movio.la/voice_preview/9f00961fddfb4d729a83f2aca7637a67.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "e2b70c60a32a4a0aa97da7eaa20c8b7e", - "labels": [ - "Youth", - "News", - "Explainer", - "Audiobooks" - ], - "language": "Spanish", - "flag": "https://static.movio.la/region_flags/bo.png", - "locale": "es-BO", - "sort": 5, - "gender": "Male", - "tags": "Young Adult, News, E-learning & Presentations, Explainer Videos", - "display_name": "Marcelo - Warm", - "preview": { - "movio": "https://static.movio.la/voice_preview/c31c34330c154856a76ec46c9d63fc6f.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "e3e89b7996b94daebf8a1d6904a1bd11", - "labels": [ - "Middle-Aged", - "Narration", - "Explainer", - "News" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/gb.png", - "locale": "en-GB", - "sort": 100, - "gender": "Male", - "tags": "", - "display_name": "Wilder - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/UjH2pdBnSE2N2MV4ebFgQe.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "e4878ce9b703461695bf793c0df0d2b1", - "labels": [ - "Youth", - "Ads", - "Explainer", - "E-learning" - ], - "language": "Indonesian", - "flag": "https://static.movio.la/region_flags/id.png", - "locale": "id-ID", - "sort": 1, - "gender": "Female", - "tags": "Young Adult, Explainer Videos, Ads, Product demos, E-learning & Presentations", - "display_name": "Gadis - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/c396e01cbd894c4e997e9a96773f7e0d.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "e4dcfd51f07d4b93a0468a48a782b50e", - "labels": [ - "Youth", - "Ads", - "Explainer", - "Narration" - ], - "language": "Portuguese", - "flag": "https://static.movio.la/region_flags/br.png", - "locale": "pt-BR", - "sort": 6, - "gender": "Female", - "tags": "Young Adult, Ads, News, E-learning & Presentations", - "display_name": "Francisca - Cheerful", - "preview": { - "movio": "https://static.movio.la/voice_preview/15ae85373431429b862e57029c3c7bf4.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "e529c8c45a8347fc870adb030ffab172", - "labels": [ - "Youth", - "Natural" - ], - "language": "Malay", - "flag": "https://static.movio.la/region_flags/my.png", - "locale": "ms-MY", - "sort": 100, - "gender": "Male", - "tags": "", - "display_name": "Amir - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/P3C2CYa4AwimBqzzobw3Ay.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "e6f941fd57e64b3ba000c53263d6ba28", - "labels": [ - "Middle-Aged", - "Explainer", - "News", - "Ads", - "Audiobooks" - ], - "language": "Dutch", - "flag": "https://static.movio.la/region_flags/nl.png", - "locale": "nl-NL", - "sort": 1, - "gender": "Female", - "tags": "Middle-Age,E-learning & Presentations, Product demos, Explainer Videos,", - "display_name": "Colette - Newscaster", - "preview": { - "movio": "https://static.movio.la/voice_preview/8WRR8WkEhViGVLAVrtwAMW.wav" - }, - "settings": { - "style": "general", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "e705f31fa48846a2b1bea49387c2c7cf", - "labels": [ - "Youth", - "News", - "Ads", - "Explainer" - ], - "language": "Greek", - "flag": "https://static.movio.la/region_flags/gr.png", - "locale": "el-GR", - "sort": 1, - "gender": "Female", - "tags": "Young Adult, News, Explainer Videos, E-learning & Presentations", - "display_name": "Athina - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/19e4574154514c65ad2e647ed949fc78.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "e756772fbb9b49828a9f24c8a905c58a", - "labels": [ - "Youth", - "Ads", - "Narration", - "News" - ], - "language": "Polish", - "flag": "https://static.movio.la/region_flags/pl.png", - "locale": "pl-PL", - "sort": 1, - "gender": "Female", - "tags": "Young Adult, News, Explainer Videos", - "display_name": "Agnieszka - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/e30356ac8e974425a205dbb22c4ff57e.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "e9472c5d7bda495d8813fb6bc757eaa3", - "labels": [ - "Youth", - "Natural", - "Ads" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/gb.png", - "locale": "en-GB", - "sort": 5, - "gender": "Female", - "tags": "", - "display_name": "Marieke - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/mVX39uo7mwzwMUxszXddPb.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "e9a57ec649c8e7db9d8104529374b2c3", - "labels": [ - "Middle-Aged", - "Audiobooks", - "News", - "Ads" - ], - "language": "Portuguese", - "flag": "https://static.movio.la/region_flags/br.png", - "locale": "pt-BR", - "sort": 3, - "gender": "Male", - "tags": "Middle-Aged, Engaging, Cheerful", - "display_name": "Donato - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/e6357e680feb469fbb989596e572ef4e.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "e9caf49d7f8e4fbeac1919c3dee72dd5", - "labels": [ - "Natural", - "Youth" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 12, - "gender": "male", - "tags": "", - "display_name": "Jeffery-Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/Fhr6aCxMMN76FweQrYUzL9.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "ebb3e19fb57744fbb32285fe2010d36d", - "labels": [ - "Middle-Aged", - "Natural" - ], - "language": "Danish", - "flag": "https://static.movio.la/region_flags/dk.png", - "locale": "da-DK", - "sort": 100, - "gender": "Male", - "tags": "", - "display_name": "Jeppe - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/R7vYzdDa9GQoefxNsgRtKG.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "ec218e50cc9c4991894676a31e4804c5", - "labels": [ - "Professional", - "Youth" - ], - "language": "Romanian", - "flag": "https://static.movio.la/region_flags/ro.png", - "locale": "ro-RO", - "sort": 100, - "gender": "Male", - "tags": "", - "display_name": "Emil - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/emBBNYQB7xhLjpgp5L4F9q.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "ec4aa6ac882147ffb679176d49f3e41f", - "labels": [ - "Middle-Aged", - "News", - "E-learning", - "Explainer" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 12, - "gender": "Male", - "tags": "Young Adult, Ads", - "display_name": "Eric - Newscaster", - "preview": { - "movio": "https://static.movio.la/voice_preview/QyfEredcYX3MKGkBGudZ9H.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "ec971490059245d3953fd895ee37ab09", - "labels": [ - "Youth", - "Explainer" - ], - "language": "Spanish", - "flag": "https://static.movio.la/region_flags/ec.png", - "locale": "es-ES", - "sort": 100, - "gender": "Female", - "tags": "", - "display_name": "Vera - Friendly", - "preview": { - "movio": "https://static.movio.la/voice_preview/LqxYEhqSg75meLYWG22j4d.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "ee537ab51bcc475290741093bba4c426", - "labels": [ - "Youth", - "Explainer", - "E-learning", - "Audiobooks", - "Ads" - ], - "language": "German", - "flag": "https://static.movio.la/region_flags/ch.png", - "locale": "de-CH", - "sort": 3, - "gender": "Female", - "tags": "Young Adult, E-learning & Presentations, Product demos, Explainer Videos, News, Ads", - "display_name": "Leni - Friendly", - "preview": { - "movio": "https://static.movio.la/voice_preview/c9720a439da5474480764fb729791afb.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "eecd293e7eac4153808ed65dd1cb4daa", - "labels": [ - "Youth", - "Explainer", - "News", - "Audiobooks" - ], - "language": "Portuguese", - "flag": "https://static.movio.la/region_flags/pt.png", - "locale": "pt-PT", - "sort": 10, - "gender": "Female", - "tags": "Young Adult, News, Explainer Videos, Youtube, Product demos, E-learning & Presentations", - "display_name": "Raquel - Warm", - "preview": { - "movio": "https://static.movio.la/voice_preview/c96b4c07e6414d3cb99b41fba9f659ff.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "ef5765a5c2ee49e58f7dd942e67fb6f2", - "labels": [ - "Youth", - "News", - "Narration", - "Audiobooks" - ], - "language": "Hindi", - "flag": "https://static.movio.la/region_flags/in.png", - "locale": "hi-IN", - "sort": 1, - "gender": "Male", - "tags": "", - "display_name": "Jaidev - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/f76b718088c54b22bb8da12dbcb78a0f.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "f10a2b62e6ec43fa9eb7078b03e2ba0d", - "labels": [ - "Youth", - "E-learning", - "Explainer", - "News", - "Ads" - ], - "language": "Arabic", - "flag": "https://static.movio.la/region_flags/sa.png", - "locale": "ar-SA", - "sort": 1, - "gender": "Female", - "tags": "Young Adult, Ads, E-learning & Presentations, Product demos, Explainer Videos, News", - "display_name": "Zariyah - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/86ab2c6c3d4d4e0f8d2f0f844460597e.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "f1b1d67bd09441589c0bb30f0c0549c9", - "labels": [ - "Youth", - "Ads", - "E-learning" - ], - "language": "Spanish", - "flag": "https://static.movio.la/region_flags/ve.png", - "locale": "es-VE", - "sort": 100, - "gender": "Female", - "tags": "", - "display_name": "Paola - Cheerful", - "preview": { - "movio": "https://static.movio.la/voice_preview/ALJsFyHFoDg6HopopwdyjS.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "f2846fb5c4c04ca494b721c3fc2526d3", - "labels": [ - "Narration", - "Middle-Aged" - ], - "language": "Thai", - "flag": "https://static.movio.la/region_flags/th.png", - "locale": "th-TH", - "sort": 100, - "gender": "Female", - "tags": "", - "display_name": "Achara - Friendly", - "preview": { - "movio": "https://static.movio.la/voice_preview/8qWmNwjzU4WyEwdanT5TqP.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "f2d44cfdd1dc4846ae54a01d9db9d9fe", - "labels": [ - "Middle-Aged", - "Audiobooks", - "News", - "Ads" - ], - "language": "Polish", - "flag": "https://static.movio.la/region_flags/pl.png", - "locale": "pl-PL", - "sort": 1, - "gender": "Male", - "tags": "Young Adult, Product demos, Ads, News", - "display_name": "Marek - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/e92a6b9ce02243d98cc826179b95c5c6.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "f37bfc7d0be8494c8fa103a4a47eed33", - "labels": [ - "Natural", - "Youth" - ], - "language": "Tamil", - "flag": "https://static.movio.la/region_flags/in.png", - "locale": "ta-IN", - "sort": 100, - "gender": "Female", - "tags": "", - "display_name": "Pallavi - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/sYBhrd5KJFYqy8cShU6VUW.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "f3abd8faf9f540efb5101c1fa1bc3a35", - "labels": [ - "Natural" - ], - "language": "Croatian", - "flag": "https://static.movio.la/region_flags/hr.png", - "locale": "hr-HR", - "sort": 100, - "gender": "Male", - "tags": "", - "display_name": "Srecko-Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/msLHmcmT5tCoQgWHAM4mFh.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "f578e0a57c0b4b46a510bcfdca45a26c", - "labels": [ - "Youth", - "Ads", - "Narration", - "News" - ], - "language": "Arabic", - "flag": "https://static.movio.la/region_flags/dz.png", - "locale": "ar-DZ", - "sort": 1, - "gender": "Female", - "tags": "Young Adult, Ads, E-learning & Presentations, Product demos, Explainer Videos, News", - "display_name": "Amina - Newscaster", - "preview": { - "movio": "https://static.movio.la/voice_preview/936fae57e54d47e58ee1ca0d6efd6e0b.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "f5a3cb4edbfc4d37b5614ce118be7bc8", - "labels": [ - "Youth", - "News", - "E-learning", - "Explainer" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/gb.png", - "locale": "en-GB", - "sort": 2, - "gender": "Male", - "tags": "Young Adult, E-learning & Presentations, Product demos, Explainer Videos, News, Ads", - "display_name": "Ryan - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/CsXU4XY7SgPPQmo6ZEtnjN.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "f7658a75545d4b70b04d8784c07bd038", - "labels": [ - "Youth", - "News", - "E-learning", - "Ads" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 11, - "gender": "Male", - "tags": "Young Adult, News, Explainer Videos", - "display_name": "Lucas - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/9ex83FXgouLw6NVytasyH7.wav" - }, - "settings": { - "style": "newscast", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "f86f4645a6164198a7f35c7255fcb0d1", - "labels": [ - "Ads", - "Youth" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 15, - "gender": "Male", - "tags": "", - "display_name": "Arnold - Cheerful", - "preview": { - "movio": "https://static.movio.la/voice_preview/iSgRx3f8nZevE25EEBaH4B.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "f8d7dd6a1bea4907a41b3fa30a66530e", - "labels": [ - "Youth", - "Ads", - "E-learning" - ], - "language": "Swedish", - "flag": "https://static.movio.la/region_flags/se.png", - "locale": "sv-SE", - "sort": 100, - "gender": "Male", - "tags": "", - "display_name": "Mattias - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/2PV8YHrZmCSicJHZUVXCwo.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "f9e6786404354cffbec42f650e9458c6", - "labels": [ - "Youth", - "Ads", - "E-learning", - "Natural" - ], - "language": "Swedish", - "flag": "https://static.movio.la/region_flags/se.png", - "locale": "sv-SE", - "sort": 10, - "gender": "Male", - "tags": "", - "display_name": "Hugo - Friendly", - "preview": { - "movio": "https://static.movio.la/voice_preview/LXpVFuD3MkDKYRpQ8nCnbC.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "fa4de0d162464cdf9311f73e83a556d7", - "labels": [ - "Middle-Aged", - "Explainer", - "Natural", - "News" - ], - "language": "Swedish", - "flag": "https://static.movio.la/region_flags/se.png", - "locale": "sv-SE", - "sort": 1, - "gender": "Male", - "tags": "", - "display_name": "Marcus - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/BvAUkFVWyJPVoCNBaQ39LD.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "fa643232596a4786a26834b36df59808", - "labels": [ - "Middle-Aged", - "News", - "Audiobooks", - "Explainer" - ], - "language": "Arabic", - "flag": "https://static.movio.la/region_flags/jo.png", - "locale": "ar-JO", - "sort": 1, - "gender": "Male", - "tags": "Young Adult, E-learning & Presentations, Product demos, Explainer Videos, News, Ads", - "display_name": "Taim - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/791a92c271244f909bd7ad89098b2176.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "face330a542b4357aa0611779c64c12f", - "labels": [ - "Middle-Aged", - "Narration" - ], - "language": "Spanish", - "flag": "https://static.movio.la/region_flags/es.png", - "locale": "es-ES", - "sort": 100, - "gender": "Male", - "tags": "", - "display_name": "Mateo - Warm", - "preview": { - "movio": "https://static.movio.la/voice_preview/4KssrtgEUBeMKn7PuZkqvy.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "fb3dcd1398534927a2308c3d7ee10c5b", - "labels": [ - "Middle-Aged", - "Explainer", - "Audiobooks", - "Ads", - "News" - ], - "language": "Hebrew", - "flag": "https://static.movio.la/region_flags/il.png", - "locale": "he-IL", - "sort": 1, - "gender": "Male", - "tags": "Young Adult, News, Explainer Videos, Product demos", - "display_name": "Avril - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/bwanELet7eJg5XcFtWWdCi.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "fb6ff83d7319492394ab3af233cca8e3", - "labels": [ - "Youth", - "E-learning", - "Explainer", - "Ads" - ], - "language": "Italian", - "flag": "https://static.movio.la/region_flags/it.png", - "locale": "it-IT", - "sort": 2, - "gender": "Female", - "tags": "Young Adult, Explainer Videos, E-learning & Presentations", - "display_name": "Elsa - Cheerful", - "preview": { - "movio": "https://static.movio.la/voice_preview/dddad5772a66418885cf01b12333466f.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "fb879a3cd2c040c8a730775b935263a1", - "labels": [ - "Middle-Aged", - "News", - "Audiobooks", - "Ads" - ], - "language": "German", - "flag": "https://static.movio.la/region_flags/de.png", - "locale": "de-DE", - "sort": 4, - "gender": "Female", - "tags": "Middle-Aged, E-learning & Presentations, Explainer Videos", - "display_name": "Elke - Warm", - "preview": { - "movio": "https://static.movio.la/voice_preview/cbaff86c906343938144258813bea682.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "fba666391539492285f14ccf016b63bd", - "labels": [ - "Middle-Aged", - "Narration", - "Natural" - ], - "language": "Danish", - "flag": "https://static.movio.la/region_flags/dk.png", - "locale": "da-DK", - "sort": 100, - "gender": "Female", - "tags": "", - "display_name": "Christel - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/YXrv38tGmfPFyQjGWgzB3W.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "fd26a72bd7724dbea95e4ad5db3a78bc", - "labels": [ - "Middle-Aged", - "News", - "Ads", - "Explainer" - ], - "language": "Filipino", - "flag": "https://static.movio.la/region_flags/ph.png", - "locale": "fil-PH", - "sort": 1, - "gender": "Male", - "tags": "Middle-Aged, Explainer Videos, E-learning & Presentations, Product demos", - "display_name": "Angelo - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/46aa971bb3ef4389bdb0288a475308f1.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "fd6bf3b9c3254137aefbe36972c39349", - "labels": [ - "Youth", - "News", - "Narration", - "Explainer", - "E-learning" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 20, - "gender": "Female", - "tags": "Young Adult, Ads, Explainer Videos, E-learning & Presentations", - "display_name": "Jane - Serious", - "preview": { - "movio": "https://static.movio.la/voice_preview/iuocs4hoQUGTHJoLnzYYyf.wav" - }, - "settings": { - "style": "unfriendly", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "fe13d29d488d4002a9a90dc1537fd544", - "labels": [ - "Youth", - "Ads", - "Narration", - "E-learning" - ], - "language": "Spanish", - "flag": "https://static.movio.la/region_flags/es.png", - "locale": "es-ES", - "sort": 9, - "gender": "Female", - "tags": "Young Adult, E-learning & Presentations, Explainer Videos", - "display_name": "Elvira - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/82563a4fa769487ea359f7ee26b506c5.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "fe981119cd9c4e7fa41ba65466ef564a", - "labels": [ - "Middle-Aged", - "Professional" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 35, - "gender": "Male", - "tags": "", - "display_name": "Dean - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/w4FoYdku4M9Fp2JYmLUdrT.mp3" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": false, - "prosody": [ - "rate" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": true - }, - { - "voice_id": "feca19f2a24943b3898e8b87f1696edf", - "labels": [ - "Middle-Aged", - "News", - "Ads", - "Explainer" - ], - "language": "French", - "flag": "https://static.movio.la/region_flags/be.png", - "locale": "fr-BE", - "sort": 4, - "gender": "Female", - "tags": "Young Adult, News, Product demos, Explainer Videos", - "display_name": "Charline - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/e4f2120a63f344b39fca996f5ca00943.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "fef785686844404baff0391a67c84c1d", - "labels": [ - "Youth", - "Natural", - "Professional" - ], - "language": "Spanish", - "flag": "https://static.movio.la/region_flags/es.png", - "locale": "es-ES", - "sort": 1, - "gender": "Female", - "tags": "", - "display_name": "Estrella - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/KxdYCK6JvCHpe3ySCTUicZ.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "ff465a8dab0d42c78f874a135b11d47d", - "labels": [ - "Older", - "Audiobooks", - "Narration", - "News" - ], - "language": "English", - "flag": "https://static.movio.la/region_flags/us.png", - "locale": "en-US", - "sort": 21, - "gender": "Male", - "tags": "Middle-Age,E-learning & Presentations, Product demos, Explainer Videos, News, Ads", - "display_name": "Davis - Professional", - "preview": { - "movio": "https://static.movio.la/voice_preview/MJy76NRegZK6zmnSzSn7qb.wav" - }, - "settings": { - "style": "general", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "ff5719e3a6314ecea47badcbb1c0ffaa", - "labels": [ - "Middle-Aged", - "Ads", - "Explainer", - "Narration", - "News" - ], - "language": "Portuguese", - "flag": "https://static.movio.la/region_flags/pt.png", - "locale": "pt-PT", - "sort": 11, - "gender": "Female", - "tags": "", - "display_name": "Ines - Friendly", - "preview": { - "movio": "https://static.movio.la/voice_preview/7369fb86158d411380ba510e22de9b55.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "ffb5979428d642abaa9cae60110824e3", - "labels": [ - "Youth", - "Ads", - "Narration", - "News" - ], - "language": "Spanish", - "flag": "https://static.movio.la/region_flags/es.png", - "locale": "es-ES", - "sort": 6, - "gender": "Male", - "tags": "Young Adult, Ads, E-learning & Presentations", - "display_name": "Alvaro - Natural", - "preview": { - "movio": "https://static.movio.la/voice_preview/fa873604b3344a77896b904c37735c5e.wav" - }, - "settings": { - "style": "", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - }, - { - "voice_id": "ffdbe4de35d34391830da243f2b82e13", - "labels": [ - "Youth", - "News", - "E-learning", - "Explainer" - ], - "language": "Chinese", - "flag": "https://static.movio.la/region_flags/cn.png", - "locale": "zh-CN", - "sort": 6, - "gender": "Male", - "tags": "Young Adult, News, Audiobooks, E-learning & Presentations, Explainer Videos", - "display_name": "Yunxi - Friendly", - "preview": { - "movio": "https://static.movio.la/voice_preview/db9a5f4a5a1f4cd7a39c5a675e051a51.wav" - }, - "settings": { - "style": "assistant", - "elevenlabs_settings": null - }, - "ssml": { - "style": [], - "lang": [], - "break": true, - "prosody": [ - "rate", - "pitch" - ], - "emphasis": "none", - "say_as": [] - }, - "is_customer": false, - "is_favorite": false, - "is_paid": false - } - ] - }, - "msg": null, - "message": null -} \ No newline at end of file diff --git a/ielts_be/__init__.py b/ielts_be/__init__.py new file mode 100644 index 0000000..4e25d95 --- /dev/null +++ b/ielts_be/__init__.py @@ -0,0 +1,156 @@ +import json +import os +import pathlib +import logging.config +import logging.handlers + +import aioboto3 +import contextlib +from contextlib import asynccontextmanager +from collections import defaultdict +from typing import List +from http import HTTPStatus + +import httpx +from fastapi import FastAPI, Request +from fastapi.encoders import jsonable_encoder +from fastapi.exceptions import RequestValidationError +from fastapi.middleware import Middleware +from fastapi.middleware.cors import CORSMiddleware +from fastapi.responses import JSONResponse + +import nltk +from starlette import status + +from ielts_be.api import router +from ielts_be.configs import DependencyInjector +from ielts_be.exceptions import CustomException +from ielts_be.middlewares import AuthenticationMiddleware, AuthBackend +from ielts_be.services.impl import OpenAIWhisper + + +@asynccontextmanager +async def lifespan(_app: FastAPI): + """ + Startup and Shutdown logic is in this lifespan method + + https://fastapi.tiangolo.com/advanced/events/ + """ + + # NLTK required datasets download + nltk.download('words') + nltk.download("punkt") + + # AWS Polly client instantiation + context_stack = contextlib.AsyncExitStack() + session = aioboto3.Session() + polly_client = await context_stack.enter_async_context( + session.client( + 'polly', + region_name='eu-west-1', + aws_secret_access_key=os.getenv("AWS_SECRET_ACCESS_KEY"), + aws_access_key_id=os.getenv("AWS_ACCESS_KEY_ID") + ) + ) + + http_client = httpx.AsyncClient() + stt = OpenAIWhisper() + + DependencyInjector( + polly_client, + http_client, + stt + ).inject() + + # Setup logging + config_file = pathlib.Path("./ielts_be/configs/logging/logging_config.json") + with open(config_file) as f_in: + config = json.load(f_in) + + logging.config.dictConfig(config) + + yield + + stt.close() + await http_client.aclose() + await polly_client.close() + await context_stack.aclose() + + +def setup_listeners(_app: FastAPI) -> None: + @_app.exception_handler(RequestValidationError) + async def custom_form_validation_error(request, exc): + """ + Don't delete request param + """ + reformatted_message = defaultdict(list) + for pydantic_error in exc.errors(): + loc, msg = pydantic_error["loc"], pydantic_error["msg"] + filtered_loc = loc[1:] if loc[0] in ("body", "query", "path") else loc + field_string = ".".join(filtered_loc) + if field_string == "cookie.refresh_token": + return JSONResponse( + status_code=401, + content={"error_code": 401, "message": HTTPStatus.UNAUTHORIZED.description}, + ) + reformatted_message[field_string].append(msg) + + return JSONResponse( + status_code=status.HTTP_400_BAD_REQUEST, + content=jsonable_encoder( + {"details": "Invalid request!", "errors": reformatted_message} + ), + ) + + @_app.exception_handler(CustomException) + async def custom_exception_handler(request: Request, exc: CustomException): + """ + Don't delete request param + """ + return JSONResponse( + status_code=exc.code, + content={"error_code": exc.error_code, "message": exc.message}, + ) + + @_app.exception_handler(Exception) + async def default_exception_handler(request: Request, exc: Exception): + """ + Don't delete request param + """ + return JSONResponse( + status_code=500, + content=str(exc), + ) + + +def setup_middleware() -> List[Middleware]: + middleware = [ + Middleware( + CORSMiddleware, + allow_origins=["*"], + allow_credentials=True, + allow_methods=["*"], + allow_headers=["*"], + ), + Middleware( + AuthenticationMiddleware, + backend=AuthBackend() + ) + ] + return middleware + + +def create_app() -> FastAPI: + env = os.getenv("ENV") + _app = FastAPI( + docs_url="/docs" if env != "production" else None, + redoc_url="/redoc" if env != "production" else None, + middleware=setup_middleware(), + lifespan=lifespan + ) + _app.include_router(router) + setup_listeners(_app) + return _app + + +app = create_app() diff --git a/ielts_be/api/__init__.py b/ielts_be/api/__init__.py new file mode 100644 index 0000000..1b70727 --- /dev/null +++ b/ielts_be/api/__init__.py @@ -0,0 +1,15 @@ +from fastapi import APIRouter + +from .training import training_router +from .user import user_router +from .exam import exam_router + +router = APIRouter(prefix="/api", tags=["Home"]) + +@router.get('/healthcheck') +async def healthcheck(): + return {"healthy": True} + +router.include_router(training_router, prefix="/training", tags=["Training"]) +router.include_router(user_router, prefix="/user", tags=["Users"]) +router.include_router(exam_router) diff --git a/ielts_be/api/exam/__init__.py b/ielts_be/api/exam/__init__.py new file mode 100644 index 0000000..79490b3 --- /dev/null +++ b/ielts_be/api/exam/__init__.py @@ -0,0 +1,16 @@ +from fastapi import APIRouter + +from .listening import listening_router +from .reading import reading_router +from .speaking import speaking_router +from .writing import writing_router +from .level import level_router +from .grade import grade_router + +exam_router = APIRouter() +exam_router.include_router(listening_router, prefix="/listening", tags=["Listening"]) +exam_router.include_router(reading_router, prefix="/reading", tags=["Reading"]) +exam_router.include_router(speaking_router, prefix="/speaking", tags=["Speaking"]) +exam_router.include_router(writing_router, prefix="/writing", tags=["Writing"]) +exam_router.include_router(level_router, prefix="/level", tags=["Level"]) +exam_router.include_router(grade_router, prefix="/grade", tags=["Grade"]) diff --git a/ielts_be/api/exam/grade.py b/ielts_be/api/exam/grade.py new file mode 100644 index 0000000..6312e1f --- /dev/null +++ b/ielts_be/api/exam/grade.py @@ -0,0 +1,64 @@ +from dependency_injector.wiring import inject, Provide +from fastapi import APIRouter, Depends, Path, Request, BackgroundTasks + +from ielts_be.controllers import IGradeController +from ielts_be.dtos.writing import WritingGradeTaskDTO +from ielts_be.middlewares import Authorized, IsAuthenticatedViaBearerToken + +controller = "grade_controller" +grade_router = APIRouter() + + +@grade_router.post( + '/writing/{task}', + dependencies=[Depends(Authorized([IsAuthenticatedViaBearerToken]))] +) +@inject +async def grade_writing_task( + data: WritingGradeTaskDTO, + background_tasks: BackgroundTasks, + task: int = Path(..., ge=1, le=2), + grade_controller: IGradeController = Depends(Provide[controller]) +): + return await grade_controller.grade_writing_task(task, data, background_tasks) + + +@grade_router.post( + '/speaking/{task}', + dependencies=[Depends(Authorized([IsAuthenticatedViaBearerToken]))] +) +@inject +async def grade_speaking_task( + request: Request, + background_tasks: BackgroundTasks, + task: int = Path(..., ge=1, le=3), + grade_controller: IGradeController = Depends(Provide[controller]) +): + form = await request.form() + return await grade_controller.grade_speaking_task(task, form, background_tasks) + + +@grade_router.post( + '/summary', + dependencies=[Depends(Authorized([IsAuthenticatedViaBearerToken]))] +) +@inject +async def grading_summary( + request: Request, + grade_controller: IGradeController = Depends(Provide[controller]) +): + data = await request.json() + return await grade_controller.grading_summary(data) + + +@grade_router.post( + '/short_answers', + dependencies=[Depends(Authorized([IsAuthenticatedViaBearerToken]))] +) +@inject +async def grade_short_answers( + request: Request, + grade_controller: IGradeController = Depends(Provide[controller]) +): + data = await request.json() + return await grade_controller.grade_short_answers(data) diff --git a/ielts_be/api/exam/level.py b/ielts_be/api/exam/level.py new file mode 100644 index 0000000..1f43f7e --- /dev/null +++ b/ielts_be/api/exam/level.py @@ -0,0 +1,67 @@ +from dependency_injector.wiring import Provide, inject +from fastapi import APIRouter, Depends, UploadFile, Request + +from ielts_be.dtos.level import LevelExercisesDTO +from ielts_be.middlewares import Authorized, IsAuthenticatedViaBearerToken +from ielts_be.controllers import ILevelController + +controller = "level_controller" +level_router = APIRouter() + + +@level_router.post( + '/', + dependencies=[Depends(Authorized([IsAuthenticatedViaBearerToken]))] +) +@inject +async def generate_exercises( + dto: LevelExercisesDTO, + level_controller: ILevelController = Depends(Provide[controller]) +): + return await level_controller.generate_exercises(dto) + +@level_router.get( + '/', + dependencies=[Depends(Authorized([IsAuthenticatedViaBearerToken]))] +) +@inject +async def get_level_exam( + level_controller: ILevelController = Depends(Provide[controller]) +): + return await level_controller.get_level_exam() + + +@level_router.get( + '/utas', + dependencies=[Depends(Authorized([IsAuthenticatedViaBearerToken]))] +) +@inject +async def get_level_utas( + level_controller: ILevelController = Depends(Provide[controller]) +): + return await level_controller.get_level_utas() + + +@level_router.post( + '/import/', + dependencies=[Depends(Authorized([IsAuthenticatedViaBearerToken]))] +) +@inject +async def import_level( + exercises: UploadFile, + solutions: UploadFile = None, + level_controller: ILevelController = Depends(Provide[controller]) +): + return await level_controller.upload_level(exercises, solutions) + +@level_router.post( + '/custom/', + dependencies=[Depends(Authorized([IsAuthenticatedViaBearerToken]))] +) +@inject +async def custom_level( + request: Request, + level_controller: ILevelController = Depends(Provide[controller]) +): + data = await request.json() + return await level_controller.get_custom_level(data) diff --git a/ielts_be/api/exam/listening.py b/ielts_be/api/exam/listening.py new file mode 100644 index 0000000..5358dc0 --- /dev/null +++ b/ielts_be/api/exam/listening.py @@ -0,0 +1,78 @@ +import random + +from dependency_injector.wiring import Provide, inject +from fastapi import APIRouter, Depends, Path, Query, UploadFile + +from ielts_be.middlewares import Authorized, IsAuthenticatedViaBearerToken +from ielts_be.controllers import IListeningController +from ielts_be.configs.constants import EducationalContent +from ielts_be.dtos.listening import GenerateListeningExercises, Dialog + +controller = "listening_controller" +listening_router = APIRouter() + +@listening_router.post( + '/import', + dependencies=[Depends(Authorized([IsAuthenticatedViaBearerToken]))] +) +@inject +async def upload( + exercises: UploadFile, + solutions: UploadFile = None, + listening_controller: IListeningController = Depends(Provide[controller]) +): + return await listening_controller.import_exam(exercises, solutions) + + +@listening_router.get( + '/{section}', + dependencies=[Depends(Authorized([IsAuthenticatedViaBearerToken]))] +) +@inject +async def generate_listening_dialog( + section: int = Path(..., ge=1, le=4), + difficulty: str = Query(default=None), + topic: str = Query(default=None), + listening_controller: IListeningController = Depends(Provide[controller]) +): + difficulty = random.choice(EducationalContent.DIFFICULTIES) if not difficulty else difficulty + topic = random.choice(EducationalContent.TOPICS) if not topic else topic + return await listening_controller.generate_listening_dialog(section, topic, difficulty) + +@listening_router.post( + '/media', + dependencies=[Depends(Authorized([IsAuthenticatedViaBearerToken]))] +) +@inject +async def generate_mp3( + dto: Dialog, + listening_controller: IListeningController = Depends(Provide[controller]) +): + return await listening_controller.generate_mp3(dto) + + + +@listening_router.post( + '/transcribe', + dependencies=[Depends(Authorized([IsAuthenticatedViaBearerToken]))] +) +@inject +async def transcribe_dialog( + audio: UploadFile, + listening_controller: IListeningController = Depends(Provide[controller]) +): + return await listening_controller.transcribe_dialog(audio) + + + +@listening_router.post( + '/', + dependencies=[Depends(Authorized([IsAuthenticatedViaBearerToken]))] +) +@inject +async def generate_listening_exercise( + dto: GenerateListeningExercises, + listening_controller: IListeningController = Depends(Provide[controller]) +): + return await listening_controller.get_listening_question(dto) + diff --git a/ielts_be/api/exam/reading.py b/ielts_be/api/exam/reading.py new file mode 100644 index 0000000..30578fd --- /dev/null +++ b/ielts_be/api/exam/reading.py @@ -0,0 +1,51 @@ +import random +from typing import Optional + +from dependency_injector.wiring import Provide, inject +from fastapi import APIRouter, Depends, Path, Query, UploadFile + +from ielts_be.configs.constants import EducationalContent +from ielts_be.dtos.reading import ReadingDTO +from ielts_be.middlewares import Authorized, IsAuthenticatedViaBearerToken +from ielts_be.controllers import IReadingController + +controller = "reading_controller" +reading_router = APIRouter() + + +@reading_router.post( + '/import', + dependencies=[Depends(Authorized([IsAuthenticatedViaBearerToken]))] +) +@inject +async def upload( + exercises: UploadFile, + solutions: UploadFile = None, + reading_controller: IReadingController = Depends(Provide[controller]) +): + return await reading_controller.import_exam(exercises, solutions) + +@reading_router.get( + '/{passage}', + dependencies=[Depends(Authorized([IsAuthenticatedViaBearerToken]))] +) +@inject +async def generate_passage( + topic: Optional[str] = Query(None), + word_count: Optional[int] = Query(None), + passage: int = Path(..., ge=1, le=3), + reading_controller: IReadingController = Depends(Provide[controller]) +): + topic = random.choice(EducationalContent.TOPICS) if not topic else topic + return await reading_controller.generate_reading_passage(passage, topic, word_count) + +@reading_router.post( + '/', + dependencies=[Depends(Authorized([IsAuthenticatedViaBearerToken]))] +) +@inject +async def generate_reading( + dto: ReadingDTO, + reading_controller: IReadingController = Depends(Provide[controller]) +): + return await reading_controller.generate_reading_exercises(dto) diff --git a/ielts_be/api/exam/speaking.py b/ielts_be/api/exam/speaking.py new file mode 100644 index 0000000..4a18a0b --- /dev/null +++ b/ielts_be/api/exam/speaking.py @@ -0,0 +1,71 @@ +import random +from typing import Optional + +from dependency_injector.wiring import inject, Provide +from fastapi import APIRouter, Path, Query, Depends + +from ielts_be.dtos.speaking import Video +from ielts_be.middlewares import Authorized, IsAuthenticatedViaBearerToken +from ielts_be.configs.constants import EducationalContent +from ielts_be.controllers import ISpeakingController + +controller = "speaking_controller" +speaking_router = APIRouter() + +@speaking_router.post( + '/media', + dependencies=[Depends(Authorized([IsAuthenticatedViaBearerToken]))] +) +@inject +async def generate_video( + video: Video, + speaking_controller: ISpeakingController = Depends(Provide[controller]) +): + return await speaking_controller.generate_video(video.text, video.avatar) + + +@speaking_router.get( + '/media/{vid_id}', + dependencies=[Depends(Authorized([IsAuthenticatedViaBearerToken]))] +) +@inject +async def poll_video( + vid_id: str = Path(...), + speaking_controller: ISpeakingController = Depends(Provide[controller]) +): + return await speaking_controller.poll_video(vid_id) + + + +@speaking_router.get( + '/avatars', + dependencies=[Depends(Authorized([IsAuthenticatedViaBearerToken]))] +) +@inject +async def get_avatars( + speaking_controller: ISpeakingController = Depends(Provide[controller]) +): + return await speaking_controller.get_avatars() + + + +@speaking_router.get( + '/{task}', + dependencies=[Depends(Authorized([IsAuthenticatedViaBearerToken]))] +) +@inject +async def get_speaking_task( + task: int = Path(..., ge=1, le=3), + topic: Optional[str] = Query(None), + first_topic: Optional[str] = Query(None), + second_topic: Optional[str] = Query(None), + difficulty: str = Query(default=random.choice(EducationalContent.DIFFICULTIES)), + speaking_controller: ISpeakingController = Depends(Provide[controller]) +): + if not second_topic: + topic_or_first_topic = topic if topic else random.choice(EducationalContent.MTI_TOPICS) + else: + topic_or_first_topic = first_topic if first_topic else random.choice(EducationalContent.MTI_TOPICS) + + second_topic = second_topic if second_topic else random.choice(EducationalContent.MTI_TOPICS) + return await speaking_controller.get_speaking_part(task, topic_or_first_topic, second_topic, difficulty) diff --git a/ielts_be/api/exam/writing.py b/ielts_be/api/exam/writing.py new file mode 100644 index 0000000..ed304dd --- /dev/null +++ b/ielts_be/api/exam/writing.py @@ -0,0 +1,42 @@ +import random + +from dependency_injector.wiring import inject, Provide +from fastapi import APIRouter, Path, Query, Depends, UploadFile, File + +from ielts_be.middlewares import Authorized, IsAuthenticatedViaBearerToken +from ielts_be.configs.constants import EducationalContent +from ielts_be.controllers import IWritingController + +controller = "writing_controller" +writing_router = APIRouter() + + +@writing_router.post( + '/{task}/attachment', + dependencies=[Depends(Authorized([IsAuthenticatedViaBearerToken]))] +) +@inject +async def generate_writing_academic( + task: int = Path(..., ge=1, le=2), + file: UploadFile = File(...), + difficulty: str = Query(default=None), + writing_controller: IWritingController = Depends(Provide[controller]) +): + difficulty = random.choice(EducationalContent.DIFFICULTIES) if not difficulty else difficulty + return await writing_controller.get_writing_task_academic_question(task, file, difficulty) + + +@writing_router.get( + '/{task}', + dependencies=[Depends(Authorized([IsAuthenticatedViaBearerToken]))] +) +@inject +async def generate_writing( + task: int = Path(..., ge=1, le=2), + difficulty: str = Query(default=None), + topic: str = Query(default=None), + writing_controller: IWritingController = Depends(Provide[controller]) +): + difficulty = random.choice(EducationalContent.DIFFICULTIES) if not difficulty else difficulty + topic = random.choice(EducationalContent.MTI_TOPICS) if not topic else topic + return await writing_controller.get_writing_task_general_question(task, topic, difficulty) diff --git a/ielts_be/api/home.py b/ielts_be/api/home.py new file mode 100644 index 0000000..84e0209 --- /dev/null +++ b/ielts_be/api/home.py @@ -0,0 +1,9 @@ +from fastapi import APIRouter +home_router = APIRouter() + + +@home_router.get( + '/healthcheck' +) +async def healthcheck(): + return {"healthy": True} diff --git a/ielts_be/api/training.py b/ielts_be/api/training.py new file mode 100644 index 0000000..a4148d0 --- /dev/null +++ b/ielts_be/api/training.py @@ -0,0 +1,34 @@ +from dependency_injector.wiring import Provide, inject +from fastapi import APIRouter, Depends, Request + +from ielts_be.dtos.training import FetchTipsDTO +from ielts_be.middlewares import Authorized, IsAuthenticatedViaBearerToken +from ielts_be.controllers import ITrainingController + +controller = "training_controller" +training_router = APIRouter() + + +@training_router.post( + '/tips', + dependencies=[Depends(Authorized([IsAuthenticatedViaBearerToken]))] +) +@inject +async def get_reading_passage( + data: FetchTipsDTO, + training_controller: ITrainingController = Depends(Provide[controller]) +): + return await training_controller.fetch_tips(data) + + +@training_router.post( + '/', + dependencies=[Depends(Authorized([IsAuthenticatedViaBearerToken]))] +) +@inject +async def training_content( + request: Request, + training_controller: ITrainingController = Depends(Provide[controller]) +): + data = await request.json() + return await training_controller.get_training_content(data) diff --git a/ielts_be/api/user.py b/ielts_be/api/user.py new file mode 100644 index 0000000..2a3bc0b --- /dev/null +++ b/ielts_be/api/user.py @@ -0,0 +1,21 @@ +from dependency_injector.wiring import Provide, inject +from fastapi import APIRouter, Depends + +from ielts_be.dtos.user_batch import BatchUsersDTO +from ielts_be.middlewares import Authorized, IsAuthenticatedViaBearerToken +from ielts_be.controllers import IUserController + +controller = "user_controller" +user_router = APIRouter() + + +@user_router.post( + '/import', + dependencies=[Depends(Authorized([IsAuthenticatedViaBearerToken]))] +) +@inject +async def batch_import( + batch: BatchUsersDTO, + user_controller: IUserController = Depends(Provide[controller]) +): + return await user_controller.batch_import(batch) diff --git a/ielts_be/configs/__init__.py b/ielts_be/configs/__init__.py new file mode 100644 index 0000000..05952b8 --- /dev/null +++ b/ielts_be/configs/__init__.py @@ -0,0 +1,5 @@ +from .dependency_injection import DependencyInjector + +__all__ = [ + "DependencyInjector" +] diff --git a/ielts_be/configs/constants.py b/ielts_be/configs/constants.py new file mode 100644 index 0000000..52e1250 --- /dev/null +++ b/ielts_be/configs/constants.py @@ -0,0 +1,780 @@ +from enum import Enum + +######################################################################################################################## +# DISCLAIMER # +# # +# All the array and dict "constants" are mutable variables, if somewhere in the app you modify them in any way, shape # +# or form all the other methods that will use these "constants" will also use the modified version. If you're unsure # +# whether a method will modify it use copy's deepcopy: # +# # +# from copy import deepcopy # +# # +# new_ref = deepcopy(CONSTANT) # +# # +# Using a wrapper method that returns a "constant" won't handle nested mutables. # +######################################################################################################################## + +BLACKLISTED_WORDS = ["jesus", "sex", "gay", "lesbian", "homosexual", "god", "angel", "pornography", "beer", "wine", + "cocaine", "alcohol", "nudity", "lgbt", "casino", "gambling", "catholicism", + "discrimination", "politic", "christianity", "islam", "christian", "christians", + "jews", "jew", "discrimination", "discriminatory"] + + +class UserDefaults: + DESIRED_LEVELS = { + "reading": 9, + "listening": 9, + "writing": 9, + "speaking": 9, + } + + LEVELS = { + "reading": 0, + "listening": 0, + "writing": 0, + "speaking": 0, + } + + +class ExamVariant(Enum): + FULL = "full" + PARTIAL = "partial" + + +class ReadingExerciseType(str, Enum): + fillBlanks = "fillBlanks" + writeBlanks = "writeBlanks" + trueFalse = "trueFalse" + paragraphMatch = "paragraphMatch" + ideaMatch = "ideaMatch" + multipleChoice = "multipleChoice" + + +class ListeningExerciseType(str, Enum): + multipleChoice = "multipleChoice" + multipleChoice3Options = "multipleChoice3Options" + writeBlanksQuestions = "writeBlanksQuestions" + writeBlanksFill = "writeBlanksFill" + writeBlanksForm = "writeBlanksForm" + trueFalse = "trueFalse" + +class LevelExerciseType(str, Enum): + multipleChoice = "multipleChoice" + mcBlank = "mcBlank" + mcUnderline = "mcUnderline" + blankSpace = "blankSpaceText" + passageUtas = "passageUtas" + fillBlanksMC = "fillBlanksMC" + + +class CustomLevelExerciseTypes(Enum): + MULTIPLE_CHOICE_4 = "multiple_choice_4" + MULTIPLE_CHOICE_BLANK_SPACE = "multiple_choice_blank_space" + MULTIPLE_CHOICE_UNDERLINED = "multiple_choice_underlined" + BLANK_SPACE_TEXT = "blank_space_text" + READING_PASSAGE_UTAS = "reading_passage_utas" + WRITING_LETTER = "writing_letter" + WRITING_2 = "writing_2" + SPEAKING_1 = "speaking_1" + SPEAKING_2 = "speaking_2" + SPEAKING_3 = "speaking_3" + READING_1 = "reading_1" + READING_2 = "reading_2" + READING_3 = "reading_3" + LISTENING_1 = "listening_1" + LISTENING_2 = "listening_2" + LISTENING_3 = "listening_3" + LISTENING_4 = "listening_4" + + +class QuestionType(Enum): + LISTENING_SECTION_1 = "Listening Section 1" + LISTENING_SECTION_2 = "Listening Section 2" + LISTENING_SECTION_3 = "Listening Section 3" + LISTENING_SECTION_4 = "Listening Section 4" + WRITING_TASK_1 = "Writing Task 1" + WRITING_TASK_2 = "Writing Task 2" + SPEAKING_1 = "Speaking Task Part 1" + SPEAKING_2 = "Speaking Task Part 2" + READING_PASSAGE_1 = "Reading Passage 1" + READING_PASSAGE_2 = "Reading Passage 2" + READING_PASSAGE_3 = "Reading Passage 3" + + +class FilePaths: + AUDIO_FILES_PATH = 'download-audio/' + FIREBASE_LISTENING_AUDIO_FILES_PATH = 'listening_recordings/' + VIDEO_FILES_PATH = 'download-video/' + FIREBASE_SPEAKING_VIDEO_FILES_PATH = 'speaking_videos/' + FIREBASE_FAILED_TRANSCRIPTION_FILES_PATH = 'failed_transcriptions/' + WRITING_ATTACHMENTS = 'writing_attachments/' + + +class TemperatureSettings: + GRADING_TEMPERATURE = 0.1 + TIPS_TEMPERATURE = 0.2 + GEN_QUESTION_TEMPERATURE = 0.7 + + +class GPTModels: + GPT_3_5_TURBO = "gpt-3.5-turbo" + GPT_4_TURBO = "gpt-4-turbo" + GPT_4_O = "gpt-4o" + GPT_3_5_TURBO_16K = "gpt-3.5-turbo-16k" + GPT_3_5_TURBO_INSTRUCT = "gpt-3.5-turbo-instruct" + GPT_4_PREVIEW = "gpt-4-turbo-preview" + + +class FieldsAndExercises: + GRADING_FIELDS = ['comment', 'overall', 'task_response'] + GEN_FIELDS = ['topic'] + GEN_TEXT_FIELDS = ['title'] + LISTENING_GEN_FIELDS = ['transcript', 'exercise'] + READING_EXERCISE_TYPES = ['fillBlanks', 'writeBlanks', 'trueFalse', 'paragraphMatch'] + READING_3_EXERCISE_TYPES = ['fillBlanks', 'writeBlanks', 'trueFalse', 'paragraphMatch', 'ideaMatch'] + + LISTENING_EXERCISE_TYPES = ['multipleChoice', 'writeBlanksQuestions', 'writeBlanksFill', 'writeBlanksForm'] + LISTENING_1_EXERCISE_TYPES = ['multipleChoice', 'writeBlanksQuestions', 'writeBlanksFill', 'writeBlanksFill', + 'writeBlanksForm', 'writeBlanksForm', 'writeBlanksForm', 'writeBlanksForm'] + LISTENING_2_EXERCISE_TYPES = ['multipleChoice', 'writeBlanksQuestions'] + LISTENING_3_EXERCISE_TYPES = ['multipleChoice3Options', 'writeBlanksQuestions'] + LISTENING_4_EXERCISE_TYPES = ['multipleChoice', 'writeBlanksQuestions', 'writeBlanksFill', 'writeBlanksForm'] + + TOTAL_READING_PASSAGE_1_EXERCISES = 13 + TOTAL_READING_PASSAGE_2_EXERCISES = 13 + TOTAL_READING_PASSAGE_3_EXERCISES = 14 + + TOTAL_LISTENING_SECTION_1_EXERCISES = 10 + TOTAL_LISTENING_SECTION_2_EXERCISES = 10 + TOTAL_LISTENING_SECTION_3_EXERCISES = 10 + TOTAL_LISTENING_SECTION_4_EXERCISES = 10 + + +class MinTimers: + LISTENING_MIN_TIMER_DEFAULT = 30 + WRITING_MIN_TIMER_DEFAULT = 60 + SPEAKING_MIN_TIMER_DEFAULT = 14 + + +class Voices: + EN_US_VOICES = [ + {'Gender': 'Female', 'Id': 'Salli', 'LanguageCode': 'en-US', 'LanguageName': 'US English', 'Name': 'Salli', + 'SupportedEngines': ['neural', 'standard']}, + {'Gender': 'Male', 'Id': 'Matthew', 'LanguageCode': 'en-US', 'LanguageName': 'US English', 'Name': 'Matthew', + 'SupportedEngines': ['neural', 'standard']}, + {'Gender': 'Female', 'Id': 'Kimberly', 'LanguageCode': 'en-US', 'LanguageName': 'US English', 'Name': 'Kimberly', + 'SupportedEngines': ['neural', 'standard']}, + {'Gender': 'Female', 'Id': 'Kendra', 'LanguageCode': 'en-US', 'LanguageName': 'US English', 'Name': 'Kendra', + 'SupportedEngines': ['neural', 'standard']}, + {'Gender': 'Male', 'Id': 'Justin', 'LanguageCode': 'en-US', 'LanguageName': 'US English', 'Name': 'Justin', + 'SupportedEngines': ['neural', 'standard']}, + {'Gender': 'Male', 'Id': 'Joey', 'LanguageCode': 'en-US', 'LanguageName': 'US English', 'Name': 'Joey', + 'SupportedEngines': ['neural', 'standard']}, + {'Gender': 'Female', 'Id': 'Joanna', 'LanguageCode': 'en-US', 'LanguageName': 'US English', 'Name': 'Joanna', + 'SupportedEngines': ['neural', 'standard']}, + {'Gender': 'Female', 'Id': 'Ivy', 'LanguageCode': 'en-US', 'LanguageName': 'US English', 'Name': 'Ivy', + 'SupportedEngines': ['neural', 'standard']}] + EN_GB_VOICES = [ + {'Gender': 'Female', 'Id': 'Emma', 'LanguageCode': 'en-GB', 'LanguageName': 'British English', 'Name': 'Emma', + 'SupportedEngines': ['neural', 'standard']}, + {'Gender': 'Male', 'Id': 'Brian', 'LanguageCode': 'en-GB', 'LanguageName': 'British English', 'Name': 'Brian', + 'SupportedEngines': ['neural', 'standard']}, + {'Gender': 'Female', 'Id': 'Amy', 'LanguageCode': 'en-GB', 'LanguageName': 'British English', 'Name': 'Amy', + 'SupportedEngines': ['neural', 'standard']}] + EN_GB_WLS_VOICES = [ + {'Gender': 'Male', 'Id': 'Geraint', 'LanguageCode': 'en-GB-WLS', 'LanguageName': 'Welsh English', 'Name': 'Geraint', + 'SupportedEngines': ['standard']}] + EN_AU_VOICES = [{'Gender': 'Male', 'Id': 'Russell', 'LanguageCode': 'en-AU', 'LanguageName': 'Australian English', + 'Name': 'Russell', 'SupportedEngines': ['standard']}, + {'Gender': 'Female', 'Id': 'Nicole', 'LanguageCode': 'en-AU', 'LanguageName': 'Australian English', + 'Name': 'Nicole', 'SupportedEngines': ['standard']}] + + ALL_VOICES = EN_US_VOICES + EN_GB_VOICES + EN_GB_WLS_VOICES + EN_AU_VOICES + + MALE_VOICES = [item for item in ALL_VOICES if item.get('Gender') == 'Male'] + FEMALE_VOICES = [item for item in ALL_VOICES if item.get('Gender') == 'Female'] + + +class NeuralVoices: + NEURAL_EN_US_VOICES = [ + {'Gender': 'Female', 'Id': 'Danielle', 'LanguageCode': 'en-US', 'LanguageName': 'US English', 'Name': 'Danielle', + 'SupportedEngines': ['neural']}, + {'Gender': 'Male', 'Id': 'Gregory', 'LanguageCode': 'en-US', 'LanguageName': 'US English', 'Name': 'Gregory', + 'SupportedEngines': ['neural']}, + {'Gender': 'Male', 'Id': 'Kevin', 'LanguageCode': 'en-US', 'LanguageName': 'US English', 'Name': 'Kevin', + 'SupportedEngines': ['neural']}, + {'Gender': 'Female', 'Id': 'Ruth', 'LanguageCode': 'en-US', 'LanguageName': 'US English', 'Name': 'Ruth', + 'SupportedEngines': ['neural']}, + {'Gender': 'Male', 'Id': 'Stephen', 'LanguageCode': 'en-US', 'LanguageName': 'US English', 'Name': 'Stephen', + 'SupportedEngines': ['neural']}] + NEURAL_EN_GB_VOICES = [ + {'Gender': 'Male', 'Id': 'Arthur', 'LanguageCode': 'en-GB', 'LanguageName': 'British English', 'Name': 'Arthur', + 'SupportedEngines': ['neural']}] + NEURAL_EN_AU_VOICES = [ + {'Gender': 'Female', 'Id': 'Olivia', 'LanguageCode': 'en-AU', 'LanguageName': 'Australian English', + 'Name': 'Olivia', 'SupportedEngines': ['neural']}] + NEURAL_EN_ZA_VOICES = [ + {'Gender': 'Female', 'Id': 'Ayanda', 'LanguageCode': 'en-ZA', 'LanguageName': 'South African English', + 'Name': 'Ayanda', 'SupportedEngines': ['neural']}] + NEURAL_EN_NZ_VOICES = [ + {'Gender': 'Female', 'Id': 'Aria', 'LanguageCode': 'en-NZ', 'LanguageName': 'New Zealand English', 'Name': 'Aria', + 'SupportedEngines': ['neural']}] + NEURAL_EN_IN_VOICES = [ + {'Gender': 'Female', 'Id': 'Kajal', 'LanguageCode': 'en-IN', 'LanguageName': 'Indian English', 'Name': 'Kajal', + 'SupportedEngines': ['neural']}] + NEURAL_EN_IE_VOICES = [ + {'Gender': 'Female', 'Id': 'Niamh', 'LanguageCode': 'en-IE', 'LanguageName': 'Irish English', 'Name': 'Niamh', + 'SupportedEngines': ['neural']}] + + ALL_NEURAL_VOICES = NEURAL_EN_US_VOICES + NEURAL_EN_GB_VOICES + NEURAL_EN_AU_VOICES + NEURAL_EN_ZA_VOICES + NEURAL_EN_NZ_VOICES + NEURAL_EN_IE_VOICES + + MALE_NEURAL_VOICES = [item for item in ALL_NEURAL_VOICES if item.get('Gender') == 'Male'] + FEMALE_NEURAL_VOICES = [item for item in ALL_NEURAL_VOICES if item.get('Gender') == 'Female'] + + +class EducationalContent: + DIFFICULTIES = ["A1", "A2", "B1", "B2", "C1", "C2"] + + MTI_TOPICS = [ + "Education", + "Technology", + "Environment", + "Health and Fitness", + "Engineering", + "Work and Careers", + "Travel and Tourism", + "Culture and Traditions", + "Social Issues", + "Arts and Entertainment", + "Climate Change", + "Social Media", + "Sustainable Development", + "Health Care", + "Immigration", + "Artificial Intelligence", + "Consumerism", + "Online Shopping", + "Energy", + "Oil and Gas", + "Poverty and Inequality", + "Cultural Diversity", + "Democracy and Governance", + "Mental Health", + "Ethics and Morality", + "Population Growth", + "Science and Innovation", + "Poverty Alleviation", + "Cybersecurity and Privacy", + "Human Rights", + "Food and Agriculture", + "Cyberbullying and Online Safety", + "Linguistic Diversity", + "Urbanization", + "Artificial Intelligence in Education", + "Youth Empowerment", + "Disaster Management", + "Mental Health Stigma", + "Internet Censorship", + "Sustainable Fashion", + "Indigenous Rights", + "Water Scarcity", + "Social Entrepreneurship", + "Privacy in the Digital Age", + "Sustainable Transportation", + "Gender Equality", + "Automation and Job Displacement", + "Digital Divide", + "Education Inequality" + ] + TOPICS = [ + "Art and Creativity", + "History of Ancient Civilizations", + "Environmental Conservation", + "Space Exploration", + "Artificial Intelligence", + "Climate Change", + "The Human Brain", + "Renewable Energy", + "Cultural Diversity", + "Modern Technology Trends", + "Sustainable Agriculture", + "Natural Disasters", + "Cybersecurity", + "Philosophy of Ethics", + "Robotics", + "Health and Wellness", + "Literature and Classics", + "World Geography", + "Social Media Impact", + "Food Sustainability", + "Economics and Markets", + "Human Evolution", + "Political Systems", + "Mental Health Awareness", + "Quantum Physics", + "Biodiversity", + "Education Reform", + "Animal Rights", + "The Industrial Revolution", + "Future of Work", + "Film and Cinema", + "Genetic Engineering", + "Climate Policy", + "Space Travel", + "Renewable Energy Sources", + "Cultural Heritage Preservation", + "Modern Art Movements", + "Sustainable Transportation", + "The History of Medicine", + "Artificial Neural Networks", + "Climate Adaptation", + "Philosophy of Existence", + "Augmented Reality", + "Yoga and Meditation", + "Literary Genres", + "World Oceans", + "Social Networking", + "Sustainable Fashion", + "Prehistoric Era", + "Democracy and Governance", + "Postcolonial Literature", + "Geopolitics", + "Psychology and Behavior", + "Nanotechnology", + "Endangered Species", + "Education Technology", + "Renaissance Art", + "Renewable Energy Policy", + "Modern Architecture", + "Climate Resilience", + "Artificial Life", + "Fitness and Nutrition", + "Classic Literature Adaptations", + "Ethical Dilemmas", + "Internet of Things (IoT)", + "Meditation Practices", + "Literary Symbolism", + "Marine Conservation", + "Sustainable Tourism", + "Ancient Philosophy", + "Cold War Era", + "Behavioral Economics", + "Space Colonization", + "Clean Energy Initiatives", + "Cultural Exchange", + "Modern Sculpture", + "Climate Mitigation", + "Mindfulness", + "Literary Criticism", + "Wildlife Conservation", + "Renewable Energy Innovations", + "History of Mathematics", + "Human-Computer Interaction", + "Global Health", + "Cultural Appropriation", + "Traditional cuisine and culinary arts", + "Local music and dance traditions", + "History of the region and historical landmarks", + "Traditional crafts and artisanal skills", + "Wildlife and conservation efforts", + "Local sports and athletic competitions", + "Fashion trends and clothing styles", + "Education systems and advancements", + "Healthcare services and medical innovations", + "Family values and social dynamics", + "Travel destinations and tourist attractions", + "Environmental sustainability projects", + "Technological developments and innovations", + "Entrepreneurship and business ventures", + "Youth empowerment initiatives", + "Art exhibitions and cultural events", + "Philanthropy and community development projects" + ] + + TWO_PEOPLE_SCENARIOS = [ + "Booking a table at a restaurant", + "Making a doctor's appointment", + "Asking for directions to a tourist attraction", + "Inquiring about public transportation options", + "Discussing weekend plans with a friend", + "Ordering food at a café", + "Renting a bicycle for a day", + "Arranging a meeting with a colleague", + "Talking to a real estate agent about renting an apartment", + "Discussing travel plans for an upcoming vacation", + "Checking the availability of a hotel room", + "Talking to a car rental service", + "Asking for recommendations at a library", + "Inquiring about opening hours at a museum", + "Discussing the weather forecast", + "Shopping for groceries", + "Renting a movie from a video store", + "Booking a flight ticket", + "Discussing a school assignment with a classmate", + "Making a reservation for a spa appointment", + "Talking to a customer service representative about a product issue", + "Discussing household chores with a family member", + "Planning a surprise party for a friend", + "Talking to a coworker about a project deadline", + "Inquiring about a gym membership", + "Discussing the menu options at a fast-food restaurant", + "Talking to a neighbor about a community event", + "Asking for help with computer problems", + "Discussing a recent sports game with a sports enthusiast", + "Talking to a pet store employee about buying a pet", + "Asking for information about a local farmer's market", + "Discussing the details of a home renovation project", + "Talking to a coworker about office supplies", + "Making plans for a family picnic", + "Inquiring about admission requirements at a university", + "Discussing the features of a new smartphone with a salesperson", + "Talking to a mechanic about car repairs", + "Making arrangements for a child's birthday party", + "Discussing a new diet plan with a nutritionist", + "Asking for information about a music concert", + "Talking to a hairdresser about getting a haircut", + "Inquiring about a language course at a language school", + "Discussing plans for a weekend camping trip", + "Talking to a bank teller about opening a new account", + "Ordering a drink at a coffee shop", + "Discussing a new book with a book club member", + "Talking to a librarian about library services", + "Asking for advice on finding a job", + "Discussing plans for a garden makeover with a landscaper", + "Talking to a travel agent about a cruise vacation", + "Inquiring about a fitness class at a gym", + "Ordering flowers for a special occasion", + "Discussing a new exercise routine with a personal trainer", + "Talking to a teacher about a child's progress in school", + "Asking for information about a local art exhibition", + "Discussing a home improvement project with a contractor", + "Talking to a babysitter about childcare arrangements", + "Making arrangements for a car service appointment", + "Inquiring about a photography workshop at a studio", + "Discussing plans for a family reunion with a relative", + "Talking to a tech support representative about computer issues", + "Asking for recommendations on pet grooming services", + "Discussing weekend plans with a significant other", + "Talking to a counselor about personal issues", + "Inquiring about a music lesson with a music teacher", + "Ordering a pizza for delivery", + "Making a reservation for a taxi", + "Discussing a new recipe with a chef", + "Talking to a fitness trainer about weight loss goals", + "Inquiring about a dance class at a dance studio", + "Ordering a meal at a food truck", + "Discussing plans for a weekend getaway with a partner", + "Talking to a florist about wedding flower arrangements", + "Asking for advice on home decorating", + "Discussing plans for a charity fundraiser event", + "Talking to a pet sitter about taking care of pets", + "Making arrangements for a spa day with a friend", + "Asking for recommendations on home improvement stores", + "Discussing weekend plans with a travel enthusiast", + "Talking to a car mechanic about car maintenance", + "Inquiring about a cooking class at a culinary school", + "Ordering a sandwich at a deli", + "Discussing plans for a family holiday party", + "Talking to a personal assistant about organizing tasks", + "Asking for information about a local theater production", + "Discussing a new DIY project with a home improvement expert", + "Talking to a wine expert about wine pairing", + "Making arrangements for a pet adoption", + "Asking for advice on planning a wedding" + ] + + SOCIAL_MONOLOGUE_CONTEXTS = [ + "A guided tour of a historical museum", + "An introduction to a new city for tourists", + "An orientation session for new university students", + "A safety briefing for airline passengers", + "An explanation of the process of recycling", + "A lecture on the benefits of a healthy diet", + "A talk on the importance of time management", + "A monologue about wildlife conservation", + "An overview of local public transportation options", + "A presentation on the history of cinema", + "An introduction to the art of photography", + "A discussion about the effects of climate change", + "An overview of different types of cuisine", + "A lecture on the principles of financial planning", + "A monologue about sustainable energy sources", + "An explanation of the process of online shopping", + "A guided tour of a botanical garden", + "An introduction to a local wildlife sanctuary", + "A safety briefing for hikers in a national park", + "A talk on the benefits of physical exercise", + "A lecture on the principles of effective communication", + "A monologue about the impact of social media", + "An overview of the history of a famous landmark", + "An introduction to the world of fashion design", + "A discussion about the challenges of global poverty", + "An explanation of the process of organic farming", + "A presentation on the history of space exploration", + "An overview of traditional music from different cultures", + "A lecture on the principles of effective leadership", + "A monologue about the influence of technology", + "A guided tour of a famous archaeological site", + "An introduction to a local wildlife rehabilitation center", + "A safety briefing for visitors to a science museum", + "A talk on the benefits of learning a new language", + "A lecture on the principles of architectural design", + "A monologue about the impact of renewable energy", + "An explanation of the process of online banking", + "A presentation on the history of a famous art movement", + "An overview of traditional clothing from various regions", + "A lecture on the principles of sustainable agriculture", + "A discussion about the challenges of urban development", + "A monologue about the influence of social norms", + "A guided tour of a historical battlefield", + "An introduction to a local animal shelter", + "A safety briefing for participants in a charity run", + "A talk on the benefits of community involvement", + "A lecture on the principles of sustainable tourism", + "A monologue about the impact of alternative medicine", + "An explanation of the process of wildlife tracking", + "A presentation on the history of a famous inventor", + "An overview of traditional dance forms from different cultures", + "A lecture on the principles of ethical business practices", + "A discussion about the challenges of healthcare access", + "A monologue about the influence of cultural traditions", + "A guided tour of a famous lighthouse", + "An introduction to a local astronomy observatory", + "A safety briefing for participants in a team-building event", + "A talk on the benefits of volunteering", + "A lecture on the principles of wildlife protection", + "A monologue about the impact of space exploration", + "An explanation of the process of wildlife photography", + "A presentation on the history of a famous musician", + "An overview of traditional art forms from different cultures", + "A lecture on the principles of effective education", + "A discussion about the challenges of sustainable development", + "A monologue about the influence of cultural diversity", + "A guided tour of a famous national park", + "An introduction to a local marine conservation project", + "A safety briefing for participants in a hot air balloon ride", + "A talk on the benefits of cultural exchange programs", + "A lecture on the principles of wildlife conservation", + "A monologue about the impact of technological advancements", + "An explanation of the process of wildlife rehabilitation", + "A presentation on the history of a famous explorer", + "A lecture on the principles of effective marketing", + "A discussion about the challenges of environmental sustainability", + "A monologue about the influence of social entrepreneurship", + "A guided tour of a famous historical estate", + "An introduction to a local marine life research center", + "A safety briefing for participants in a zip-lining adventure", + "A talk on the benefits of cultural preservation", + "A lecture on the principles of wildlife ecology", + "A monologue about the impact of space technology", + "An explanation of the process of wildlife conservation", + "A presentation on the history of a famous scientist", + "An overview of traditional crafts and artisans from different cultures", + "A lecture on the principles of effective intercultural communication" + ] + + FOUR_PEOPLE_SCENARIOS = [ + "A university lecture on history", + "A physics class discussing Newton's laws", + "A medical school seminar on anatomy", + "A training session on computer programming", + "A business school lecture on marketing strategies", + "A chemistry lab experiment and discussion", + "A language class practicing conversational skills", + "A workshop on creative writing techniques", + "A high school math lesson on calculus", + "A training program for customer service representatives", + "A lecture on environmental science and sustainability", + "A psychology class exploring human behavior", + "A music theory class analyzing compositions", + "A nursing school simulation for patient care", + "A computer science class on algorithms", + "A workshop on graphic design principles", + "A law school lecture on constitutional law", + "A geology class studying rock formations", + "A vocational training program for electricians", + "A history seminar focusing on ancient civilizations", + "A biology class dissecting specimens", + "A financial literacy course for adults", + "A literature class discussing classic novels", + "A training session for emergency response teams", + "A sociology lecture on social inequality", + "An art class exploring different painting techniques", + "A medical school seminar on diagnosis", + "A programming bootcamp teaching web development", + "An economics class analyzing market trends", + "A chemistry lab experiment on chemical reactions", + "A language class practicing pronunciation", + "A workshop on public speaking skills", + "A high school physics lesson on electromagnetism", + "A training program for IT professionals", + "A lecture on climate change and its effects", + "A psychology class studying cognitive psychology", + "A music class composing original songs", + "A nursing school simulation for patient assessment", + "A computer science class on data structures", + "A workshop on 3D modeling and animation", + "A law school lecture on contract law", + "A geography class examining world maps", + "A vocational training program for plumbers", + "A history seminar discussing revolutions", + "A biology class exploring genetics", + "A financial literacy course for teens", + "A literature class analyzing poetry", + "A training session for public speaking coaches", + "A sociology lecture on cultural diversity", + "An art class creating sculptures", + "A medical school seminar on surgical techniques", + "A programming bootcamp teaching app development", + "An economics class on global trade policies", + "A chemistry lab experiment on chemical bonding", + "A language class discussing idiomatic expressions", + "A workshop on conflict resolution", + "A high school biology lesson on evolution", + "A training program for project managers", + "A lecture on renewable energy sources", + "A psychology class on abnormal psychology", + "A music class rehearsing for a performance", + "A nursing school simulation for emergency response", + "A computer science class on cybersecurity", + "A workshop on digital marketing strategies", + "A law school lecture on intellectual property", + "A geology class analyzing seismic activity", + "A vocational training program for carpenters", + "A history seminar on the Renaissance", + "A chemistry class synthesizing compounds", + "A financial literacy course for seniors", + "A literature class interpreting Shakespearean plays", + "A training session for negotiation skills", + "A sociology lecture on urbanization", + "An art class creating digital art", + "A medical school seminar on patient communication", + "A programming bootcamp teaching mobile app development", + "An economics class on fiscal policy", + "A physics lab experiment on electromagnetism", + "A language class on cultural immersion", + "A workshop on time management", + "A high school chemistry lesson on stoichiometry", + "A training program for HR professionals", + "A lecture on space exploration and astronomy", + "A psychology class on human development", + "A music class practicing for a recital", + "A nursing school simulation for triage", + "A computer science class on web development frameworks", + "A workshop on team-building exercises", + "A law school lecture on criminal law", + "A geography class studying world cultures", + "A vocational training program for HVAC technicians", + "A history seminar on ancient civilizations", + "A biology class examining ecosystems", + "A financial literacy course for entrepreneurs", + "A literature class analyzing modern literature", + "A training session for leadership skills", + "A sociology lecture on gender studies", + "An art class exploring multimedia art", + "A medical school seminar on patient diagnosis", + "A programming bootcamp teaching software architecture" + ] + + ACADEMIC_SUBJECTS = [ + "Astrophysics", + "Microbiology", + "Political Science", + "Environmental Science", + "Literature", + "Biochemistry", + "Sociology", + "Art History", + "Geology", + "Economics", + "Psychology", + "History of Architecture", + "Linguistics", + "Neurobiology", + "Anthropology", + "Quantum Mechanics", + "Urban Planning", + "Philosophy", + "Marine Biology", + "International Relations", + "Medieval History", + "Geophysics", + "Finance", + "Educational Psychology", + "Graphic Design", + "Paleontology", + "Macroeconomics", + "Cognitive Psychology", + "Renaissance Art", + "Archaeology", + "Microeconomics", + "Social Psychology", + "Contemporary Art", + "Meteorology", + "Political Philosophy", + "Space Exploration", + "Cognitive Science", + "Classical Music", + "Oceanography", + "Public Health", + "Gender Studies", + "Baroque Art", + "Volcanology", + "Business Ethics", + "Music Composition", + "Environmental Policy", + "Media Studies", + "Ancient History", + "Seismology", + "Marketing", + "Human Development", + "Modern Art", + "Astronomy", + "International Law", + "Developmental Psychology", + "Film Studies", + "American History", + "Soil Science", + "Entrepreneurship", + "Clinical Psychology", + "Contemporary Dance", + "Space Physics", + "Political Economy", + "Cognitive Neuroscience", + "20th Century Literature", + "Public Administration", + "European History", + "Atmospheric Science", + "Supply Chain Management", + "Social Work", + "Japanese Literature", + "Planetary Science", + "Labor Economics", + "Industrial-Organizational Psychology", + "French Philosophy", + "Biogeochemistry", + "Strategic Management", + "Educational Sociology", + "Postmodern Literature", + "Public Relations", + "Middle Eastern History", + "Oceanography", + "International Development", + "Human Resources Management", + "Educational Leadership", + "Russian Literature", + "Quantum Chemistry", + "Environmental Economics", + "Environmental Psychology", + "Ancient Philosophy", + "Immunology", + "Comparative Politics", + "Child Development", + "Fashion Design", + "Geological Engineering", + "Macroeconomic Policy", + "Media Psychology", + "Byzantine Art", + "Ecology", + "International Business" + ] diff --git a/ielts_be/configs/dependency_injection.py b/ielts_be/configs/dependency_injection.py new file mode 100644 index 0000000..f7af3aa --- /dev/null +++ b/ielts_be/configs/dependency_injection.py @@ -0,0 +1,167 @@ +import json +import os + +from dependency_injector import providers, containers +from firebase_admin import credentials +from motor.motor_asyncio import AsyncIOMotorClient +from openai import AsyncOpenAI +from httpx import AsyncClient as HTTPClient +from dotenv import load_dotenv +from sentence_transformers import SentenceTransformer + +from ielts_be.repositories.impl import * +from ielts_be.services.impl import * +from ielts_be.controllers.impl import * + +load_dotenv() + + +class DependencyInjector: + + def __init__(self, polly_client: any, http_client: HTTPClient, stt: OpenAIWhisper): + self._container = containers.DynamicContainer() + self._polly_client = polly_client + self._http_client = http_client + self._stt = stt + + def inject(self): + self._setup_clients() + self._setup_third_parties() + self._setup_repositories() + self._setup_services() + self._setup_controllers() + self._container.wire( + packages=["ielts_be"] + ) + return self + + def _setup_clients(self): + self._container.openai_client = providers.Singleton(AsyncOpenAI) + self._container.polly_client = providers.Object(self._polly_client) + self._container.http_client = providers.Object(self._http_client) + self._container.stt = providers.Object(self._stt) + + def _setup_third_parties(self): + self._container.llm = providers.Factory(OpenAI, client=self._container.openai_client) + self._container.tts = providers.Factory(AWSPolly, client=self._container.polly_client) + + """ + with open('ielts_be/services/impl/third_parties/elai/conf.json', 'r') as file: + elai_conf = json.load(file) + + with open('ielts_be/services/impl/third_parties/elai/avatars.json', 'r') as file: + elai_avatars = json.load(file) + """ + + with open('ielts_be/services/impl/third_parties/heygen/avatars.json', 'r') as file: + heygen_avatars = json.load(file) + + self._container.vid_gen = providers.Factory( + Heygen, client=self._container.http_client, token=os.getenv("HEY_GEN_TOKEN"), avatars=heygen_avatars + ) + self._container.ai_detector = providers.Factory( + GPTZero, client=self._container.http_client, gpt_zero_key=os.getenv("GPT_ZERO_API_KEY") + ) + + def _setup_repositories(self): + cred = credentials.Certificate(os.getenv("GOOGLE_APPLICATION_CREDENTIALS")) + firebase_token = cred.get_access_token().access_token + + self._container.document_store = providers.Factory( + MongoDB, mongo_db=AsyncIOMotorClient(os.getenv("MONGODB_URI"))[os.getenv("MONGODB_DB")] + ) + + self._container.firebase_instance = providers.Factory( + FirebaseStorage, + client=self._container.http_client, token=firebase_token, bucket=os.getenv("FIREBASE_BUCKET") + ) + + def _setup_services(self): + self._container.listening_service = providers.Factory( + ListeningService, + llm=self._container.llm, + stt=self._container.stt, + tts=self._container.tts, + file_storage=self._container.firebase_instance, + document_store=self._container.document_store + ) + self._container.reading_service = providers.Factory(ReadingService, llm=self._container.llm) + + self._container.speaking_service = providers.Factory( + SpeakingService, llm=self._container.llm, + file_storage=self._container.firebase_instance, + stt=self._container.stt + ) + + self._container.writing_service = providers.Factory( + WritingService, llm=self._container.llm, ai_detector=self._container.ai_detector, file_storage=self._container.firebase_instance + ) + + with open('ielts_be/services/impl/exam/level/mc_variants.json', 'r') as file: + mc_variants = json.load(file) + + self._container.level_service = providers.Factory( + LevelService, llm=self._container.llm, document_store=self._container.document_store, + mc_variants=mc_variants, reading_service=self._container.reading_service, + writing_service=self._container.writing_service, speaking_service=self._container.speaking_service, + listening_service=self._container.listening_service + ) + + self._container.grade_service = providers.Factory( + GradeService, llm=self._container.llm + ) + + embeddings = SentenceTransformer('all-MiniLM-L6-v2') + + self._container.training_kb = providers.Factory( + TrainingContentKnowledgeBase, embeddings=embeddings + ) + + self._container.training_service = providers.Factory( + TrainingService, llm=self._container.llm, + document_store=self._container.document_store, training_kb=self._container.training_kb + ) + + self._container.user_service = providers.Factory( + UserService, document_store=self._container.document_store + ) + + self._container.evaluation_service = providers.Factory( + EvaluationService, db=self._container.document_store, + writing_service=self._container.writing_service, + speaking_service=self._container.speaking_service + ) + + def _setup_controllers(self): + + self._container.grade_controller = providers.Factory( + GradeController, grade_service=self._container.grade_service, + evaluation_service=self._container.evaluation_service + ) + + self._container.user_controller = providers.Factory( + UserController, user_service=self._container.user_service + ) + + self._container.training_controller = providers.Factory( + TrainingController, training_service=self._container.training_service + ) + + self._container.level_controller = providers.Factory( + LevelController, level_service=self._container.level_service + ) + self._container.listening_controller = providers.Factory( + ListeningController, listening_service=self._container.listening_service + ) + + self._container.reading_controller = providers.Factory( + ReadingController, reading_service=self._container.reading_service + ) + + self._container.speaking_controller = providers.Factory( + SpeakingController, speaking_service=self._container.speaking_service, vid_gen=self._container.vid_gen + ) + + self._container.writing_controller = providers.Factory( + WritingController, writing_service=self._container.writing_service + ) diff --git a/ielts_be/configs/logging/__init__.py b/ielts_be/configs/logging/__init__.py new file mode 100644 index 0000000..addcd44 --- /dev/null +++ b/ielts_be/configs/logging/__init__.py @@ -0,0 +1,7 @@ +from .filters import ErrorAndAboveFilter +from .queue_handler import QueueListenerHandler + +__all__ = [ + "ErrorAndAboveFilter", + "QueueListenerHandler" +] diff --git a/ielts_be/configs/logging/filters.py b/ielts_be/configs/logging/filters.py new file mode 100644 index 0000000..5b60503 --- /dev/null +++ b/ielts_be/configs/logging/filters.py @@ -0,0 +1,6 @@ +import logging + + +class ErrorAndAboveFilter(logging.Filter): + def filter(self, record: logging.LogRecord) -> bool | logging.LogRecord: + return record.levelno < logging.ERROR diff --git a/ielts_be/configs/logging/formatters.py b/ielts_be/configs/logging/formatters.py new file mode 100644 index 0000000..71fbc69 --- /dev/null +++ b/ielts_be/configs/logging/formatters.py @@ -0,0 +1,105 @@ +import datetime as dt +import json +import logging + +LOG_RECORD_BUILTIN_ATTRS = { + "args", + "asctime", + "created", + "exc_info", + "exc_text", + "filename", + "funcName", + "levelname", + "levelno", + "lineno", + "module", + "msecs", + "message", + "msg", + "name", + "pathname", + "process", + "processName", + "relativeCreated", + "stack_info", + "thread", + "threadName", + "taskName", +} + +""" + This isn't being used since the app will be run on gcloud run but this can be used for future apps. + If you want to test it: + + formatters: + + "json": { + "()": "json_formatter.JSONFormatter", + "fmt_keys": { + "level": "levelname", + "message": "message", + "timestamp": "timestamp", + "logger": "name", + "module": "module", + "function": "funcName", + "line": "lineno", + "thread_name": "threadName" + } + } + + handlers: + + "file_json": { + "class": "logging.handlers.RotatingFileHandler", + "level": "DEBUG", + "formatter": "json", + "filename": "logs/log", + "maxBytes": 1000000, + "backupCount": 3 + } + + and add "cfg://handlers.file_json" to queue handler +""" + +# From this video https://www.youtube.com/watch?v=9L77QExPmI0 +# Src here: https://github.com/mCodingLLC/VideosSampleCode/blob/master/videos/135_modern_logging/mylogger.py +class JSONFormatter(logging.Formatter): + def __init__( + self, + *, + fmt_keys: dict[str, str] | None = None, + ): + super().__init__() + self.fmt_keys = fmt_keys if fmt_keys is not None else {} + + def format(self, record: logging.LogRecord) -> str: + message = self._prepare_log_dict(record) + return json.dumps(message, default=str) + + def _prepare_log_dict(self, record: logging.LogRecord): + always_fields = { + "message": record.getMessage(), + "timestamp": dt.datetime.fromtimestamp( + record.created, tz=dt.timezone.utc + ).isoformat(), + } + if record.exc_info is not None: + always_fields["exc_info"] = self.formatException(record.exc_info) + + if record.stack_info is not None: + always_fields["stack_info"] = self.formatStack(record.stack_info) + + message = { + key: msg_val + if (msg_val := always_fields.pop(val, None)) is not None + else getattr(record, val) + for key, val in self.fmt_keys.items() + } + message.update(always_fields) + + for key, val in record.__dict__.items(): + if key not in LOG_RECORD_BUILTIN_ATTRS: + message[key] = val + + return message diff --git a/ielts_be/configs/logging/logging_config.json b/ielts_be/configs/logging/logging_config.json new file mode 100644 index 0000000..dd56c91 --- /dev/null +++ b/ielts_be/configs/logging/logging_config.json @@ -0,0 +1,53 @@ +{ + "version": 1, + "objects": { + "queue": { + "class": "queue.Queue", + "maxsize": 1000 + } + }, + "disable_existing_loggers": false, + "formatters": { + "simple": { + "format": "[%(levelname)s] (%(module)s|L: %(lineno)d) %(asctime)s: %(message)s", + "datefmt": "%Y-%m-%dT%H:%M:%S%z" + } + }, + "filters": { + "error_and_above": { + "()": "ielts_be.configs.logging.ErrorAndAboveFilter" + } + }, + "handlers": { + "console": { + "class": "logging.StreamHandler", + "level": "INFO", + "formatter": "simple", + "stream": "ext://sys.stdout", + "filters": ["error_and_above"] + }, + "error": { + "class": "logging.StreamHandler", + "level": "ERROR", + "formatter": "simple", + "stream": "ext://sys.stderr" + }, + "queue_handler": { + "class": "ielts_be.configs.logging.QueueListenerHandler", + "handlers": [ + "cfg://handlers.console", + "cfg://handlers.error" + ], + "queue": "cfg://objects.queue", + "respect_handler_level": true + } + }, + "loggers": { + "root": { + "level": "DEBUG", + "handlers": [ + "queue_handler" + ] + } + } +} diff --git a/ielts_be/configs/logging/queue_handler.py b/ielts_be/configs/logging/queue_handler.py new file mode 100644 index 0000000..f91b695 --- /dev/null +++ b/ielts_be/configs/logging/queue_handler.py @@ -0,0 +1,61 @@ +from logging.config import ConvertingList, ConvertingDict, valid_ident +from logging.handlers import QueueHandler, QueueListener +from queue import Queue +import atexit + + +class QueueHandlerHelper: + + @staticmethod + def resolve_handlers(l): + if not isinstance(l, ConvertingList): + return l + + # Indexing the list performs the evaluation. + return [l[i] for i in range(len(l))] + + @staticmethod + def resolve_queue(q): + if not isinstance(q, ConvertingDict): + return q + if '__resolved_value__' in q: + return q['__resolved_value__'] + + cname = q.pop('class') + klass = q.configurator.resolve(cname) + props = q.pop('.', None) + kwargs = {k: q[k] for k in q if valid_ident(k)} + result = klass(**kwargs) + if props: + for name, value in props.items(): + setattr(result, name, value) + + q['__resolved_value__'] = result + return result + + +# The guy from this video https://www.youtube.com/watch?v=9L77QExPmI0 is using logging features only available in 3.12 +# This article had the class required to build the queue handler in 3.11 +# https://rob-blackbourn.medium.com/how-to-use-python-logging-queuehandler-with-dictconfig-1e8b1284e27a +class QueueListenerHandler(QueueHandler): + + def __init__(self, handlers, respect_handler_level=False, auto_run=True, queue=Queue(-1)): + queue = QueueHandlerHelper.resolve_queue(queue) + super().__init__(queue) + handlers = QueueHandlerHelper.resolve_handlers(handlers) + self._listener = QueueListener( + self.queue, + *handlers, + respect_handler_level=respect_handler_level) + if auto_run: + self.start() + atexit.register(self.stop) + + def start(self): + self._listener.start() + + def stop(self): + self._listener.stop() + + def emit(self, record): + return super().emit(record) diff --git a/helper/question_templates.py b/ielts_be/configs/question_templates.py similarity index 96% rename from helper/question_templates.py rename to ielts_be/configs/question_templates.py index a6edfa8..b752a01 100644 --- a/helper/question_templates.py +++ b/ielts_be/configs/question_templates.py @@ -1,1237 +1,1275 @@ -import uuid - -from helper.constants import * - -def getListeningPartTemplate(): - return { - "audio": { - "repeatableTimes": 3, - "source": "", - }, - "exercises": [] - } - -def getListeningTemplate(): - return { - "parts": [], - "isDiagnostic": False, - "minTimer": LISTENING_MIN_TIMER_DEFAULT, - "module": "listening" - } - - -def getListeningPostSample(): - return { - "parts": [ - { - "exercises": [ - { - "questions": [ - { - "id": "1", - "options": [ - { - "id": "A", - "text": "To start working out together" - }, - { - "id": "B", - "text": "To join a book club" - }, - { - "id": "C", - "text": "To go on a trip" - }, - { - "id": "D", - "text": "To take a cooking class" - } - ], - "prompt": "What is John's suggestion to Emily?", - "solution": "A", - "variant": "text" - }, - { - "id": "2", - "options": [ - { - "id": "A", - "text": "She doesn't have time" - }, - { - "id": "B", - "text": "She doesn't have money" - }, - { - "id": "C", - "text": "She doesn't have a gym membership" - }, - { - "id": "D", - "text": "She doesn't like working out" - } - ], - "prompt": "What is Emily's current reason for not working out?", - "solution": "D", - "variant": "text" - }, - { - "id": "3", - "options": [ - { - "id": "A", - "text": "Gold's Gym" - }, - { - "id": "B", - "text": "Planet Fitness" - }, - { - "id": "C", - "text": "Fitness Plus" - }, - { - "id": "D", - "text": "Anytime Fitness" - } - ], - "prompt": "What gym does John suggest to Emily?", - "solution": "C", - "variant": "text" - }, - { - "id": "4", - "options": [ - { - "id": "A", - "text": "$10 a month" - }, - { - "id": "B", - "text": "$20 a month" - }, - { - "id": "C", - "text": "$30 a month" - }, - { - "id": "D", - "text": "$40 a month" - } - ], - "prompt": "What is the price of the basic membership at Fitness Plus?", - "solution": "C", - "variant": "text" - }, - { - "id": "5", - "options": [ - { - "id": "A", - "text": "3 months" - }, - { - "id": "B", - "text": "6 months" - }, - { - "id": "C", - "text": "12 months" - }, - { - "id": "D", - "text": "No commitment required" - } - ], - "prompt": "How long is the commitment for the basic membership at Fitness Plus?", - "solution": "D", - "variant": "text" - }, - { - "id": "6", - "options": [ - { - "id": "A", - "text": "Dance and cooking" - }, - { - "id": "B", - "text": "Yoga and spin" - }, - { - "id": "C", - "text": "Singing and art" - }, - { - "id": "D", - "text": "Martial arts and rock climbing" - } - ], - "prompt": "What type of classes does Fitness Plus offer?", - "solution": "B", - "variant": "text" - }, - { - "id": "7", - "options": [ - { - "id": "A", - "text": "Watch movies" - }, - { - "id": "B", - "text": "Take classes" - }, - { - "id": "C", - "text": "Play sports" - }, - { - "id": "D", - "text": "Study" - } - ], - "prompt": "What does John and Emily plan to do together at the gym?", - "solution": "B", - "variant": "text" - }, - { - "id": "8", - "options": [ - { - "id": "A", - "text": "Saturday" - }, - { - "id": "B", - "text": "Sunday" - }, - { - "id": "C", - "text": "Monday" - }, - { - "id": "D", - "text": "Tuesday" - } - ], - "prompt": "What day does John suggest to go check out the gym?", - "solution": "C", - "variant": "text" - }, - { - "id": "9", - "options": [ - { - "id": "A", - "text": "To go shopping" - }, - { - "id": "B", - "text": "To get lunch" - }, - { - "id": "C", - "text": "To schedule a tour" - }, - { - "id": "D", - "text": "To watch a movie" - } - ], - "prompt": "What is John's plan after checking out the gym?", - "solution": "C", - "variant": "text" - }, - { - "id": "10", - "options": [ - { - "id": "A", - "text": "Nervous" - }, - { - "id": "B", - "text": "Excited" - }, - { - "id": "C", - "text": "Uninterested" - }, - { - "id": "D", - "text": "Angry" - } - ], - "prompt": "How does Emily feel about starting to work out again?", - "solution": "B", - "variant": "text" - } - ] - } - ], - "text": { - "conversation": [ - { - "gender": "male", - "name": "John", - "text": "Hey, have you been working out lately?", - "voice": "Stephen" - }, - { - "gender": "female", - "name": "Emily", - "text": "Not really, I've been so busy with work.", - "voice": "Ruth" - }, - { - "gender": "male", - "name": "John", - "text": "Well, I've been thinking about getting a gym membership. Do you have one?", - "voice": "Stephen" - }, - { - "gender": "female", - "name": "Emily", - "text": "No, but I've been considering it too. Which gym are you thinking of joining?", - "voice": "Ruth" - }, - { - "gender": "male", - "name": "John", - "text": "I was looking at the one down the street, Fitness Plus. It seems to have good reviews.", - "voice": "Stephen" - }, - { - "gender": "female", - "name": "Emily", - "text": "Oh, I've heard of that one. What's the membership like?", - "voice": "Ruth" - }, - { - "gender": "male", - "name": "John", - "text": "They have different packages, but I'm thinking of going for the basic one. It's $30 a month with a one-year commitment.", - "voice": "Stephen" - }, - { - "gender": "female", - "name": "Emily", - "text": "That's not bad. Do they have classes too?", - "voice": "Ruth" - }, - { - "gender": "male", - "name": "John", - "text": "Yeah, they have a variety of classes like yoga and spin. I'm interested in trying out some of those.", - "voice": "Stephen" - }, - { - "gender": "female", - "name": "Emily", - "text": "I've always wanted to try yoga. Maybe we can go together sometime.", - "voice": "Ruth" - }, - { - "gender": "male", - "name": "John", - "text": "That would be great! It's always more fun to have a workout buddy. Have you looked into any other gyms?", - "voice": "Stephen" - }, - { - "gender": "female", - "name": "Emily", - "text": "Not really. I've been busy with work, but I'll definitely check out Fitness Plus. Maybe we can both join and motivate each other.", - "voice": "Ruth" - }, - { - "gender": "male", - "name": "John", - "text": "Sounds like a plan. Let's do it.", - "voice": "Stephen" - }, - { - "gender": "female", - "name": "Emily", - "text": "Awesome. We can go check it out this weekend.", - "voice": "Ruth" - }, - { - "gender": "male", - "name": "John", - "text": "Perfect. I'll give them a call to schedule a tour.", - "voice": "Stephen" - }, - { - "gender": "female", - "name": "Emily", - "text": "Thanks, John. I'm excited to start working out again.", - "voice": "Ruth" - }, - { - "gender": "male", - "name": "John", - "text": "Me too. Let's do this!", - "voice": "Stephen" - } - ] - } - }, - { - "exercises": [ - { - "id": "0646ab5b-e8e2-4da5-8a0c-784fe3d0186a", - "maxWords": 3, - "prompt": "You will hear a monologue. Answer the questions below using no more than three words or a number accordingly.", - "solutions": [ - { - "id": "11", - "solution": [ - "multi-faceted", - "various dimensions" - ] - }, - { - "id": "12", - "solution": [ - "climate change", - "rising temperature" - ] - }, - { - "id": "13", - "solution": [ - "waste minimization", - "resource reuse" - ] - }, - { - "id": "14", - "solution": [ - "reduce carbon footprint", - "support sustainable businesses" - ] - }, - { - "id": "15", - "solution": [ - "ourselves", - "parents/educators" - ] - } - ], - "text": "What is the concept of sustainability?{{11}}\\nWhat is the biggest challenge we are facing?{{12}}\\nWhat is the need for a circular economy?{{13}}\\nWhat can individuals do to address these challenges?{{14}}\\nWho is responsible for educating future generations about environmental sustainability?{{15}}\\n", - "type": "writeBlanks" - }, - { - "id": "0c99267c-8c3a-4ed0-9f05-00c07a480831", - "maxWords": 1, - "prompt": "You will hear a monologue. Fill the form with words/numbers missing.", - "solutions": [ - { - "id": "16", - "solution": "dimensional" - }, - { - "id": "17", - "solution": "Change" - }, - { - "id": "18", - "solution": "Natural" - }, - { - "id": "19", - "solution": "Waste" - }, - { - "id": "20", - "solution": "Injustice" - } - ], - "text": "Key: Multi-{{1}} Concept of Sustainability\nValue: The concept of sustainability encompasses social, economic, and environmental aspects, and it is essential to address all dimensions in order to achieve a sustainable future.\\nKey: Climate {{2}}\nValue: Rising temperatures, extreme weather events, and loss of biodiversity are just some of the consequences of climate change caused by human activities such as burning fossil fuels and deforestation.\\nKey: Depletion of {{3}} Resources\nValue: Our current consumption patterns are not sustainable, and the overexploitation of resources is leading to deforestation, water scarcity, and depletion of fisheries. It is crucial to find ways to reduce our consumption and ensure resource replenishment.\\nKey: {{4}} Management\nValue: Our linear model of consumption and disposal is not sustainable, and we need to shift towards a circular economy where waste is minimized, and resources are reused or recycled.\\nKey: Environmental {{5}}\nValue: Marginalized communities are often the most affected by environmental degradation, and it is crucial to address this injustice and ensure that environmental policies and actions are fair and inclusive.\\n", - "type": "writeBlanks" - } - ], - "text": "\n\nHello everyone, thank you for joining me in this discussion about one of the most pressing issues of our time - environmental sustainability. I believe we can all agree that our planet is facing numerous challenges due to human activities and it is high time we address them.\n\nFirstly, I would like to acknowledge that the concept of sustainability itself is multi-faceted and encompasses various dimensions such as social, economic, and environmental aspects. However, today, I would like to focus on the environmental challenges we are currently facing.\n\nOne of the biggest challenges we are facing is climate change. The Earth's temperature is rising at an alarming rate due to the increase in greenhouse gas emissions, primarily from human activities such as burning fossil fuels and deforestation. This has resulted in extreme weather events, loss of biodiversity, and rising sea levels, among others. We are already seeing the consequences of climate change, and if we do not take immediate action, the situation will only worsen.\n\nAnother challenge is the depletion of natural resources. Our planet has a finite amount of resources, and yet, our current consumption patterns are not sustainable. The overexploitation of resources is leading to deforestation, water scarcity, and depletion of fisheries. We need to find ways to reduce our consumption and ensure that we are not exploiting resources faster than they can replenish.\n\nIn addition to climate change and resource depletion, waste management is also a significant challenge. Our current linear model of consumption and disposal is not sustainable in the long run. We produce a massive amount of waste, and most of it ends up in landfills or our oceans, polluting our environment and harming wildlife. We need to shift towards a circular economy, where waste is minimized, and resources are reused or recycled.\n\nFurthermore, there is also the issue of environmental injustice. The impacts of environmental degradation are not equally distributed, and marginalized communities are often the most affected. This injustice needs to be addressed, and measures must be taken to ensure that environmental policies and actions are fair and inclusive.\n\nSo, what can we do to address these challenges? Firstly, we need to acknowledge that each one of us has a role to play. We cannot rely on governments or organizations alone to solve these issues. We need to make changes in our daily lives, such as reducing our carbon footprint, adopting sustainable practices, and supporting businesses that prioritize the environment.\n\nWe also need to hold corporations and governments accountable for their actions. We have the power to demand change through our consumer choices and our votes. It is crucial that we urge our leaders to implement policies that promote sustainable practices and penalize those who harm the environment.\n\nMoreover, education and awareness are essential in tackling these challenges. We need to educate ourselves and others about the importance of environmental sustainability and the actions we can take to achieve it. Our children are the future, and it is our responsibility to educate them on the significance of preserving our planet.\n\nIn conclusion, the challenges of environmental sustainability are daunting, but they are not insurmountable. It is up to us to take action and make a difference. We owe it to ourselves, future generations, and the planet to ensure a sustainable future. Let us work together towards a greener, cleaner, and more sustainable world. Thank you." - }, - { - "exercises": [ - { - "id": "0149f828-c216-4e60-80fa-1dd28a860031", - "maxWords": 1, - "prompt": "Fill the blank space with the word missing from the audio.", - "solutions": [ - { - "id": "21", - "solution": "Smith" - }, - { - "id": "22", - "solution": "rash" - }, - { - "id": "23", - "solution": "fever" - }, - { - "id": "24", - "solution": "allergies" - }, - { - "id": "25", - "solution": "antinuclear" - }, - { - "id": "26", - "solution": "immunosuppressants" - }, - { - "id": "27", - "solution": "evaluation" - }, - { - "id": "28", - "solution": "Autoimmune" - }, - { - "id": "29", - "solution": "four" - }, - { - "id": "30", - "solution": "possibilities" - } - ], - "text": "Dr. {{21}}, Dr. Patel, Sarah, and Alex were discussing a case study of a patient with a fever and rash.\\nThe patient was a 30-year-old female with a history of allergies.\\nThe patient's rash was erythematous and she had a {{23}} of 101°F.\\nPossible initial diagnoses included a viral infection or allergic reaction.\\nHowever, the final diagnosis was an autoimmune disorder based on elevated {{25}} antibodies in the patient's blood work.\\nTreatment involved {{26}} and the patient's symptoms resolved within a week.\\nThorough {{27}} and considering all possibilities is important in the diagnostic process.\\n{{28}} disorders can develop without any underlying trigger.\\nThe seminar ended with the {{29}} individuals thanking each other and continuing their day with new knowledge.\\nThinking outside the box and considering all {{30}} is crucial in the diagnostic process.", - "type": "writeBlanks" - } - ], - "text": { - "conversation": [ - { - "gender": "male", - "name": "Dr. Smith", - "text": "Good morning everyone, thank you for joining us today for this seminar on diagnosis. Let's begin with the case study of a patient who presented with a fever and rash.", - "voice": "Kevin" - }, - { - "gender": "male", - "name": "Dr. Patel", - "text": "Yes, I remember this case. The patient was a 30-year-old female with a history of allergies.", - "voice": "Stephen" - }, - { - "gender": "female", - "name": "Sarah", - "text": "Hi, I'm Sarah, a third-year medical student. I remember studying this case in our lectures. The patient's rash was erythematous, right?", - "voice": "Aria" - }, - { - "gender": "male", - "name": "Dr. Smith", - "text": "Yes, that's correct. And the patient had a fever of 101°F. What would be your initial diagnosis?", - "voice": "Kevin" - }, - { - "gender": "male", - "name": "Alex", - "text": "Hi, I'm Alex, a fourth-year medical student. I would say it could be a viral infection or an allergic reaction.", - "voice": "Kevin" - }, - { - "gender": "male", - "name": "Dr. Patel", - "text": "That's a good guess, Alex. But remember, always consider other possibilities. In this case, it turned out to be an autoimmune disorder.", - "voice": "Stephen" - }, - { - "gender": "female", - "name": "Sarah", - "text": "Oh, I didn't think of that. How did you come to that diagnosis?", - "voice": "Aria" - }, - { - "gender": "male", - "name": "Dr. Smith", - "text": "Well, the patient's blood work showed elevated levels of antinuclear antibodies. That, along with the clinical presentation, pointed towards an autoimmune disorder.", - "voice": "Kevin" - }, - { - "gender": "male", - "name": "Alex", - "text": "That's interesting. I would have never thought of that. How did you treat the patient?", - "voice": "Kevin" - }, - { - "gender": "male", - "name": "Dr. Patel", - "text": "We started the patient on immunosuppressants and the rash and fever resolved within a week.", - "voice": "Stephen" - }, - { - "gender": "female", - "name": "Sarah", - "text": "Wow, it's amazing how a simple rash and fever could lead to such a complex diagnosis.", - "voice": "Aria" - }, - { - "gender": "male", - "name": "Dr. Smith", - "text": "That's the importance of thorough evaluation and considering all possibilities. Any other thoughts or questions?", - "voice": "Kevin" - }, - { - "gender": "male", - "name": "Alex", - "text": "I just wanted to ask, do you think the patient's allergies could have triggered the autoimmune disorder?", - "voice": "Kevin" - }, - { - "gender": "male", - "name": "Dr. Patel", - "text": "It's possible, but we can't say for sure. Sometimes autoimmune disorders can develop without any underlying trigger.", - "voice": "Stephen" - }, - { - "gender": "female", - "name": "Sarah", - "text": "Thank you for sharing this case with us, it was very informative.", - "voice": "Aria" - }, - { - "gender": "male", - "name": "Dr. Smith", - "text": "My pleasure. I hope this discussion has given you a better understanding of the diagnostic process. Always remember to think outside the box and consider all possibilities.", - "voice": "Kevin" - } - ] - } - }, - { - "exercises": [ - { - "id": "921d3a2a-7f6e-46ae-a19d-65eb5ba21375", - "maxWords": 3, - "prompt": "You will hear a monologue. Answer the questions below using no more than three words or a number accordingly.", - "solutions": [ - { - "id": "31", - "solution": [ - "complex mixture", - "vital natural resource", - "non-renewable resource" - ] - }, - { - "id": "32", - "solution": [ - "sand, silt, clay" - ] - }, - { - "id": "33", - "solution": [ - "ability to provide nutrients", - "balance of essential nutrients", - "breaking down organic matter" - ] - }, - { - "id": "34", - "solution": [ - "break down organic matter", - "improve soil structure", - "release nutrients" - ] - }, - { - "id": "35", - "solution": [ - "soil erosion", - "land use practices", - "preservation of soil for future generations" - ] - } - ], - "text": "What is soil?{{31}}\\nWhat are the three main categories of soil?{{32}}\\nWhat is soil fertility?{{33}}\\nWhat is the role of microorganisms in soil?{{34}}\\nWhat environmental issue can be prevented through proper soil management?{{35}}\\n", - "type": "writeBlanks" - }, - { - "id": "e86afd9a-90d1-48db-bee1-0d20f6eea64d", - "maxWords": 1, - "prompt": "Fill the blank space with the word missing from the audio.", - "solutions": [ - { - "id": "36", - "solution": "vital" - }, - { - "id": "37", - "solution": "classified" - }, - { - "id": "38", - "solution": "fertility" - }, - { - "id": "39", - "solution": "microorganisms" - }, - { - "id": "40", - "solution": "science" - } - ], - "text": "Soil is a {{36}} natural resource that provides the foundation for plant growth\\nSoil is {{37}} into three main categories: sand, silt, and clay\\nSoil {{38}} refers to the ability of the soil to provide essential nutrients for plant growth\\nHealthy soil is teeming with {{39}}\\nSoil {{40}} plays a significant role in environmental conservation", - "type": "writeBlanks" - } - ], - "text": "\n\nGood morning everyone, today I would like to talk to you about a topic that is often overlooked but plays a crucial role in our daily lives - soil science. Soil science deals with the study of the composition, structure, and properties of soil, as well as how it interacts with the environment and living organisms.\n\nSoil is a vital natural resource that provides the foundation for plant growth, which in turn sustains all life on earth. It is the basis for our food production, as well as the source of many raw materials such as wood, cotton, and rubber. Without a healthy and productive soil, our agricultural systems would collapse, and we would struggle to feed our growing population.\n\nBut what exactly is soil? Soil is a complex mixture of minerals, organic matter, water, and air, all held together by microorganisms. It takes thousands of years for soil to form, and it is a non-renewable resource, which makes its conservation even more critical.\n\nOne of the key aspects of soil science is understanding the different types of soil and their properties. Soil is classified into three main categories: sand, silt, and clay. These categories are based on the size of the particles that make up the soil. Sand particles are the largest, followed by silt and then clay. The composition of these particles greatly affects the soil's properties, such as water retention, drainage, and nutrient availability.\n\nAnother crucial aspect of soil science is the study of soil fertility. Soil fertility refers to the ability of the soil to provide essential nutrients for plant growth. The nutrients in the soil come from the breakdown of organic matter, such as dead plants and animal remains. Fertile soil contains a balance of essential nutrients, such as nitrogen, phosphorus, and potassium, which are necessary for plant growth.\n\nThe health of the soil is also crucial in soil science. Healthy soil is teeming with microorganisms, which play a vital role in breaking down organic matter and releasing nutrients into the soil. These microorganisms also help to improve soil structure, making it more porous and allowing for better air and water circulation.\n\nSoil science also plays a significant role in environmental conservation. Soil erosion, the removal of topsoil by wind and water, is a significant environmental issue that can be prevented through proper soil management. By understanding the factors that contribute to soil erosion, such as improper land use practices, we can implement strategies to prevent it and preserve our soil for future generations.\n\nIn conclusion, soil science is a critical field of study that impacts our daily lives in more ways than we can imagine. It is not just about digging in the dirt; it is a complex science that requires a multidisciplinary approach. By understanding the composition, properties, and fertility of soil, we can ensure the sustainable use of this precious resource and preserve it for future generations. Thank you." - } - ] - } - - -def getReadingTemplate(): - return { - "parts": [], - "isDiagnostic": False, - "minTimer": 60, - "type": "academic" - } - - -def getReadingPostSample(): - return { - "parts": [ - { - "exercises": [ - { - "id": "cbd08cdd-5850-40a8-b6e2-6021c04474ad", - "prompt": "Do the following statements agree with the information given in the Reading Passage?", - "questions": [ - { - "id": "1", - "prompt": "Technology is constantly evolving and shaping our world.", - "solution": "true" - }, - { - "id": "2", - "prompt": "The use of artificial intelligence (AI) has only recently become popular.", - "solution": "false" - }, - { - "id": "3", - "prompt": "5G technology offers slower speeds and higher latency than its predecessors.", - "solution": "false" - }, - { - "id": "4", - "prompt": "Social media has had a minimal impact on our society.", - "solution": "false" - }, - { - "id": "5", - "prompt": "Cybersecurity is not a growing concern as technology becomes more integrated into our lives.", - "solution": "false" - }, - { - "id": "6", - "prompt": "Technology has not had a significant impact on the education sector.", - "solution": "false" - }, - { - "id": "7", - "prompt": "Automation and AI are not causing shifts in the job market.", - "solution": "false" - } - ], - "type": "trueFalse" - }, - { - "allowRepetition": True, - "id": "b88f3eb5-11b7-4a8e-bb1a-4e96215b34bf", - "prompt": "Complete the summary below. Click a blank to select the corresponding word(s) for it.\\nThere are more words than spaces so you will not use them all. You may use any of the words more than once.", - "solutions": [ - { - "id": "8", - "solution": "smartphones" - }, - { - "id": "9", - "solution": "artificial intelligence" - }, - { - "id": "10", - "solution": "5G technology" - }, - { - "id": "11", - "solution": "virtual reality" - }, - { - "id": "12", - "solution": "cybersecurity" - }, - { - "id": "13", - "solution": "telemedicine" - } - ], - "text": "\n\nTechnology has become an integral part of our daily lives, from {{8}} to smart homes. The rise of {{9}} (AI) and the Internet of Things (IoT) are two major trends that are revolutionizing the way we live and work. {{10}} is also gaining popularity, enabling advancements in areas like {{11}} and self-driving cars. Cloud computing, virtual and augmented reality (VR and AR), and blockchain technology are also on the rise, impacting industries such as finance, education, and healthcare. Social media has changed the way we communicate and raised concerns about privacy and mental health. With the increase in data breaches and cyber attacks, {{12}} has become a growing concern. {{13}} and online learning have made healthcare and education more accessible and efficient. However, there are concerns about the impact of technology on the job market, leading to discussions about the need for reskilling and upskilling. As technology continues to advance, it is crucial to understand its impact and consequences on our society.", - "type": "fillBlanks", - "words": [ - "speaking", - "5G technology", - "telemedicine", - "virtual reality", - "antechamber", - "smartphones", - "kitsch", - "devilish", - "parent", - "artificial intelligence", - "cybersecurity" - ] - } - ], - "text": { - "content": "In today's society, technology has become an integral part of our daily lives. From smartphones to smart homes, we are constantly surrounded by the latest and most advanced technological devices. As technology continues to evolve and improve, it is important to understand the current trends and how they are shaping our world. One of the biggest technology trends in recent years is the rise of artificial intelligence (AI). AI is the simulation of human intelligence processes by machines, particularly computer systems. This technology has been around for decades, but with the advancement of computing power and big data, AI has become more sophisticated and prevalent. From virtual personal assistants like Siri and Alexa to self-driving cars, AI is revolutionizing the way we live and work. Another trend that has gained widespread popularity is the Internet of Things (IoT). This refers to the interconnection of everyday objects via the internet, allowing them to send and receive data. Smart homes, wearable devices, and even smart cities are all examples of IoT. With IoT, our devices and appliances can communicate with each other, making our lives more convenient and efficient. The use of 5G technology is also on the rise. 5G is the fifth generation of wireless technology, offering faster speeds and lower latency than its predecessors. With 5G, we can expect to see advancements in areas like virtual reality, self-driving cars, and remote surgery. It will also enable the development of smart cities and the Internet of Things to reach its full potential. Cloud computing is another trend that has been steadily growing. Cloud computing involves the delivery of computing services over the internet, such as storage, servers, and databases. This allows for easy access to data and applications from anywhere, at any time. Many businesses and individuals are utilizing cloud computing to streamline their operations and increase efficiency. Virtual and augmented reality (VR and AR) are becoming more prevalent in various industries, from gaming and entertainment to healthcare and education. VR immerses the user in a simulated environment, while AR overlays digital information onto the real world. These technologies have the potential to change the way we learn, work, and entertain ourselves. Blockchain technology is also gaining traction, particularly in the financial sector. Blockchain is a decentralized digital ledger that records transactions across a network of computers. It allows for secure and transparent transactions without the need for intermediaries. This technology has the potential to disrupt traditional banking and financial systems. Social media has been a dominant force in the technology world for some time now, and it continues to evolve and shape our society. With the rise of platforms like Facebook, Twitter, and Instagram, we are more connected than ever before. Social media has changed the way we communicate, share information, and even do business. It has also raised concerns about privacy and the impact of social media on mental health. Cybersecurity is a growing concern as technology becomes more integrated into our lives. With the increase in data breaches and cyber attacks, the need for strong cybersecurity measures is greater than ever. Companies and individuals are investing in better security protocols to protect their sensitive information. The healthcare industry is also experiencing technological advancements with the introduction of telemedicine. This allows patients to receive medical care remotely, without having to visit a physical doctor's office. Telemedicine has become increasingly popular, especially during the COVID-19 pandemic, as it allows for safe and convenient access to healthcare. In the education sector, technology has brought about significant changes as well. Online learning platforms and digital tools have made education more accessible and efficient. With the rise of e-learning, students can access education from anywhere in the world and at their own pace. As technology continues to advance, concerns about its impact on the job market have also arisen. Automation and AI are replacing human workers in many industries, leading to job loss and shifts in the workforce. This trend has sparked discussions about the need for reskilling and upskilling to adapt to the changing job market. In conclusion, the world is constantly evolving and adapting to the latest technology trends. From AI and IoT to 5G and blockchain, these advancements are shaping the way we live, work, and interact with each other. As society continues to embrace and integrate technology into our daily lives, it is crucial to understand its impact and potential consequences. Whether it be in the fields of healthcare, education, or finance, technology is undoubtedly transforming the world as we know it.", - "title": "Modern Technology Trends" - } - }, - { - "exercises": [ - { - "id": "f2daa91a-3e92-4c07-aefd-719bcf22bac7", - "prompt": "Do the following statements agree with the information given in the Reading Passage?", - "questions": [ - { - "id": "14", - "prompt": "Yoga and meditation have been gaining popularity in recent years.", - "solution": "true" - }, - { - "id": "15", - "prompt": "Yoga and meditation originated in ancient India.", - "solution": "true" - }, - { - "id": "16", - "prompt": "Yoga is a system that combines physical postures, breathing techniques, and meditation.", - "solution": "true" - }, - { - "id": "17", - "prompt": "Meditation involves training the mind to achieve a state of inner peace and relaxation.", - "solution": "true" - }, - { - "id": "18", - "prompt": "Yoga and meditation can reduce stress and improve mental health.", - "solution": "true" - }, - { - "id": "19", - "prompt": "Yoga and meditation can improve physical health.", - "solution": "true" - }, - { - "id": "20", - "prompt": "Yoga and meditation are only suitable for people who are physically fit.", - "solution": "false" - } - ], - "type": "trueFalse" - }, - { - "id": "b500cb69-843d-4430-a544-924c514ea12a", - "maxWords": 3, - "prompt": "Choose no more than three words and/or a number from the passage for each answer.", - "solutions": [ - { - "id": "21", - "solution": [ - "physical, mental, emotional" - ] - }, - { - "id": "22", - "solution": [ - "ancient India" - ] - }, - { - "id": "23", - "solution": [ - "physical postures, breathing techniques" - ] - }, - { - "id": "24", - "solution": [ - "reduce stress, improve mindfulness" - ] - }, - { - "id": "25", - "solution": [ - "improve, promote relaxation" - ] - }, - { - "id": "26", - "solution": [ - "anyone, all ages and backgrounds" - ] - } - ], - "text": "What are the three main benefits of yoga and meditation?{{21}}\\nWhere did yoga originate?{{22}}\\nWhat are the two components of yoga?{{23}}\\nHow do yoga and meditation improve mental health?{{24}}\\nWhat is the impact of yoga and meditation on sleep quality?{{25}}\\nWho can practice yoga and meditation?{{26}}\\n", - "type": "writeBlanks" - } - ], - "text": { - "content": "Yoga and meditation have been gaining popularity in recent years as more and more people recognize the physical, mental, and emotional benefits of these ancient practices. Originating in ancient India, yoga is a holistic system that combines physical postures, breathing techniques, and meditation to promote overall well-being. Similarly, meditation is a mental practice that involves training the mind to achieve a state of inner peace and relaxation. One of the main benefits of yoga and meditation is their ability to reduce stress and improve mental health. In today's fast-paced world, stress has become a common problem for many people, leading to various physical and mental health issues. However, studies have shown that practicing yoga and meditation can significantly reduce stress levels and improve overall mental health. This is because these practices focus on deep breathing and mindfulness, which can help individuals to calm their minds and relax their bodies. As a result, many people who regularly practice yoga and meditation report feeling more peaceful, centered, and less stressed in their daily lives. Furthermore, yoga and meditation have been shown to have a positive impact on physical health. The physical postures and movements in yoga help to improve flexibility, strength, and balance. These postures also work to stretch and strengthen different muscles in the body, which can alleviate tension and prevent injuries. Additionally, the controlled breathing in yoga helps to increase oxygen flow throughout the body, which can improve cardiovascular health. As for meditation, studies have shown that it can lower blood pressure and reduce the risk of heart disease. These physical benefits make yoga and meditation an excellent form of exercise for people of all ages and fitness levels. Apart from the physical and mental benefits, yoga and meditation also have a positive impact on emotional well-being. The practice of mindfulness in these practices helps individuals to become more aware of their thoughts and emotions, allowing them to better manage and process them. This can result in improved emotional regulation and a greater sense of self-awareness. As a result, individuals who practice yoga and meditation often report feeling more positive, content, and emotionally stable. Another significant benefit of yoga and meditation is their ability to improve overall concentration and focus. In today's digital age, our minds are constantly bombarded with information and distractions, making it challenging to stay focused on tasks. However, regular practice of yoga and meditation can improve concentration and enhance cognitive function. This is because these practices require individuals to focus their minds on their breath, movements, or a specific mantra, helping to train the brain to stay focused for longer periods. Moreover, yoga and meditation have been shown to have a positive impact on sleep quality. Many people struggle with insomnia or other sleep-related issues, which can have a significant impact on their overall health and well-being. However, studies have shown that yoga and meditation can improve sleep quality and help individuals fall asleep faster. This is because these practices promote relaxation and reduce stress, which are common causes of sleep issues. As a result, individuals who practice yoga and meditation often report feeling more rested and rejuvenated after a good night's sleep. In addition to the physical, mental, emotional, and cognitive benefits, yoga and meditation also have a spiritual component. These practices are deeply rooted in ancient Indian spirituality and have been used for centuries to connect individuals with their inner selves and the universe. While the spiritual aspect may not be for everyone, many people find that it adds a deeper level of meaning and purpose to their practice. Furthermore, yoga and meditation are accessible to people of all ages and backgrounds. Whether you are young or old, fit or not, religious or not, yoga and meditation can be practiced by anyone. There are many different styles and forms of yoga and meditation, allowing individuals to choose the practice that best suits their needs and preferences. This inclusivity is what makes yoga and meditation such powerful and universal practices. In conclusion, the benefits of yoga and meditation are numerous and far-reaching. From reducing stress and improving mental health to promoting physical strength and emotional well-being, these ancient practices offer a holistic approach to overall health and wellness. Whether you are looking to improve your physical fitness, manage stress, or connect with your inner self, yoga and meditation are powerful tools that can help you achieve these goals. So why not give it a try and experience the transformative power of yoga and meditation for yourself?", - "title": "The Benefits of Yoga and Meditation" - } - }, - { - "exercises": [ - { - "allowRepetition": True, - "id": "1035c153-d38a-4f27-a14e-0ce63184ff82", - "prompt": "Complete the summary below. Click a blank to select the corresponding word(s) for it.\\nThere are more words than spaces so you will not use them all. You may use any of the words more than once.", - "solutions": [ - { - "id": "27", - "solution": "Cultural diversity" - }, - { - "id": "28", - "solution": "Variety" - }, - { - "id": "29", - "solution": "Multicultural" - }, - { - "id": "30", - "solution": "Tolerance" - }, - { - "id": "31", - "solution": "Unity" - }, - { - "id": "32", - "solution": "Challenges" - }, - { - "id": "33", - "solution": "Celebrated" - } - ], - "text": "\n\n{{27}} refers to the {{28}} of cultures, traditions, beliefs, and lifestyles that exist within a society. In today's interconnected world, the movement of people, goods, and ideas has led to a more diverse and {{29}} society. The exchange of ideas and knowledge, {{30}} and understanding, and promoting peace and {{31}} are some of the benefits of cultural diversity. However, it also poses {{32}} such as potential clashes and the marginalization of certain groups. To address these challenges, it is important for societies to promote cultural competency and sensitivity, as well as for individuals to embrace diversity and participate in cultural events. Overall, cultural diversity is a crucial aspect of our global society that needs to be preserved and {{33}}.", - "type": "fillBlanks", - "words": [ - "Tolerance", - "Cultural diversity", - "penny", - "Multicultural", - "shrill", - "Celebrated", - "Variety", - "query", - "Challenges", - "wont", - "Unity", - "chemical" - ] - }, - { - "questions": [ - { - "id": "34", - "options": [ - { - "id": "A", - "text": "The variety of cultures, traditions, beliefs, and lifestyles within a society" - }, - { - "id": "B", - "text": "The number of countries in the world" - }, - { - "id": "C", - "text": "The different types of technology used in different cultures" - }, - { - "id": "D", - "text": "The number of languages spoken in a society" - } - ], - "prompt": "What is the main definition of cultural diversity?", - "solution": "A", - "variant": "text" - }, - { - "id": "35", - "options": [ - { - "id": "A", - "text": "By making it easier for people to travel" - }, - { - "id": "B", - "text": "By increasing the number of countries in the world" - }, - { - "id": "C", - "text": "By creating more jobs for people from different cultures" - }, - { - "id": "D", - "text": "By promoting a single global culture" - } - ], - "prompt": "How has technology contributed to an increase in cultural diversity?", - "solution": "A", - "variant": "text" - }, - { - "id": "36", - "options": [ - { - "id": "A", - "text": "Increased economic opportunities" - }, - { - "id": "B", - "text": "Higher levels of education" - }, - { - "id": "C", - "text": "Improved transportation systems" - }, - { - "id": "D", - "text": "The exchange of ideas and knowledge" - } - ], - "prompt": "What is one of the key benefits of cultural diversity?", - "solution": "D", - "variant": "text" - }, - { - "id": "37", - "options": [ - { - "id": "A", - "text": "By forcing people to conform to a single culture" - }, - { - "id": "B", - "text": "By exposing people to different perspectives and experiences" - }, - { - "id": "C", - "text": "By creating a homogenous society" - }, - { - "id": "D", - "text": "By limiting the movement of people between countries" - } - ], - "prompt": "How does cultural diversity promote tolerance and understanding?", - "solution": "B", - "variant": "text" - }, - { - "id": "38", - "options": [ - { - "id": "A", - "text": "Increased discrimination" - }, - { - "id": "B", - "text": "A decline in technological advancements" - }, - { - "id": "C", - "text": "A decrease in the number of countries" - }, - { - "id": "D", - "text": "A lack of cultural exchange" - } - ], - "prompt": "What is one challenge posed by cultural diversity?", - "solution": "A", - "variant": "text" - }, - { - "id": "39", - "options": [ - { - "id": "A", - "text": "By promoting a single global culture" - }, - { - "id": "B", - "text": "By creating barriers between different groups" - }, - { - "id": "C", - "text": "By promoting cultural competency and sensitivity" - }, - { - "id": "D", - "text": "By limiting the number of countries in the world" - } - ], - "prompt": "What is one way that societies can address the challenges of cultural diversity?", - "solution": "C", - "variant": "text" - }, - { - "id": "40", - "options": [ - { - "id": "A", - "text": "To ignore cultural differences" - }, - { - "id": "B", - "text": "To actively participate in cultural events and activities" - }, - { - "id": "C", - "text": "To only embrace their own culture" - }, - { - "id": "D", - "text": "To avoid learning about other cultures" - } - ], - "prompt": "What is the responsibility of individuals in promoting and preserving cultural diversity?", - "solution": "B", - "variant": "text" - } - ] - } - ], - "text": { - "content": "Cultural diversity is a term that is often used in today's world, but what does it really mean? Simply put, cultural diversity refers to the variety of cultures, traditions, beliefs, and lifestyles that exist within a society. It is a reflection of the different backgrounds, experiences, and identities of individuals and groups. In this IELTS Reading Passage, we will explore the concept of cultural diversity and its significance in our global society. The world we live in today is more interconnected and interdependent than ever before. With the advancements in technology, transportation, and communication, people from different parts of the world can easily connect and interact with one another. This has led to an increase in the movement of people, goods, and ideas, resulting in a more diverse and multicultural society. In fact, it is estimated that over 190 countries exist in the world, each with its unique culture and traditions. One of the key benefits of cultural diversity is the exchange of ideas and knowledge. When people from different backgrounds come together, they bring with them their unique perspectives and experiences. This leads to a rich exchange of ideas, which can result in the development of new innovations and solutions to various problems. For example, the fusion of different cuisines has led to the creation of new and delicious dishes, and the blending of different musical styles has given birth to new genres of music. Moreover, cultural diversity also promotes tolerance and understanding among individuals and groups. When people are exposed to different cultures, they learn to appreciate and respect the differences that exist. This, in turn, leads to a more inclusive and harmonious society, where people from diverse backgrounds can coexist peacefully. In a world that is plagued by conflicts and discrimination, cultural diversity plays a crucial role in promoting peace and unity. However, despite its numerous benefits, cultural diversity also poses some challenges. One of the main challenges is the potential for cultural clashes. As individuals from different cultures interact, conflicts can arise due to differences in values, beliefs, and customs. This can lead to misunderstandings and even discrimination. For instance, a person from a collectivist culture may struggle to understand the individualistic values of someone from a Western culture. Furthermore, cultural diversity can also lead to the marginalization of certain groups within a society. In some cases, minority cultures may face discrimination and exclusion, which can result in social and economic disadvantages. This is often seen in the case of migrant communities, where they may struggle to fully integrate into the host society due to cultural barriers. To address these challenges, it is important for societies to promote cultural competency and sensitivity. This means educating individuals about different cultures and encouraging them to embrace diversity. It also involves creating policies and programs that promote inclusivity and equality for all groups within a society. For example, many countries have implemented diversity training programs in schools and workplaces to promote understanding and respect for different cultures. In addition, governments play a crucial role in promoting and preserving cultural diversity. They can do this by protecting the cultural heritage of different groups and promoting cultural events and festivals. This not only helps in preserving the unique identities of different cultures but also promotes cultural exchange and understanding. On an individual level, there are also steps that we can take to embrace cultural diversity. This includes being open-minded and respectful towards different cultures, being willing to learn about other cultures, and actively participating in cultural events and activities. By doing so, we can break down barriers and promote a more inclusive and harmonious society. In conclusion, cultural diversity is a key aspect of our global society. It brings numerous benefits such as the exchange of ideas and promoting tolerance, but it also poses challenges that need to be addressed. As individuals and societies, it is our responsibility to promote and preserve cultural diversity and create a world where everyone is embraced and valued for their unique identities and backgrounds. By doing so, we can create a more peaceful and prosperous world for all.", - "title": "Cultural Diversity: A Key Aspect of Our Global Society" - } - } - ] - } - - -def getSpeakingTemplate(): - return { - "exercises": [ - { - "id": str(uuid.uuid4()), - "prompts": ["questions"], - "text": "Listen carefully and respond.", - "first_title": "first_topic", - "second_title": "second_topic", - "type": "interactiveSpeaking" - }, - { - "id": str(uuid.uuid4()), - "prompts": ["prompts"], - "text": "text", - "title": "topic", - "video_url": "sp2_video_url", - "video_path": "sp2_video_path", - "type": "speaking" - }, - { - "id": str(uuid.uuid4()), - "prompts": ["questions"], - "text": "Listen carefully and respond.", - "title": "topic", - "type": "interactiveSpeaking" - } - ], - "isDiagnostic": False, - "minTimer": SPEAKING_MIN_TIMER_DEFAULT, - "module": "speaking" - } - - -def getSpeakingPostTemplate(): - return { - "exercises": [ - { - "question": "What is the most impactful book you have ever read and how has it influenced your perspective on life? Please share specific examples from the book that resonated with you on a personal level.", - "topic": "Books" - }, - { - "prompts": [ - "Where did you go?", - "What did you do there?", - "Why was it a memorable experience for you?" - ], - "question": "Tell me about a memorable travel experience you have had.", - "topic": "Travel" - }, - { - "questions": [ - "In what ways has technology improved our lives?", - "What are some potential negative effects of technology on society?", - "How can we strike a balance between the use of technology and maintaining healthy relationships?" - ], - "topic": "Technology and Society" - } - ] - } - - -def getWritingTemplate(): - return { - "exercises": [ - { - "id": str(uuid.uuid4()), - "prefix": "You should spend about 20 minutes on this task.", - "prompt": "", - "suffix": "You should write at least 100 words.", - "type": "writing", - "wordCounter": { - "limit": 100, - "type": "min" - } - }, - { - "id": str(uuid.uuid4()), - "prefix": "You should spend about 40 minutes on this task.\nPresent a written argument or case to an educated " - "reader with no specialist knowledge of the following topic:", - "prompt": "", - "suffix": "You should write at least 250 words.\nUse your own ideas, knowledge and experience and support " - "your arguments with examples and relevant evidence.", - "type": "writing", - "wordCounter": { - "limit": 250, - "type": "min" - } - } - ], - "isDiagnostic": False, - "minTimer": WRITING_MIN_TIMER_DEFAULT, - "module": "writing", - "type": "general" - } - - -def getWritingPostSample(): - return { - "exercises": [ - "You recently attended a friend's wedding and were impressed by their wedding planner. Write a letter to your friend, advising them on the best wedding planner for their upcoming wedding. In your letter, include information about the planner's services, pricing, and any personal experiences you had with them. Provide your friend with recommendations and tips on how to make the most out of their wedding planning experience.", - "To what extent do you agree or disagree with the statement that technology has had a positive impact on modern society? In your response, critically examine the opposing perspectives on this issue, considering both the benefits and drawbacks of technological advancements. Support your arguments with relevant examples and evidence, and conclude with your own stance on the matter." - ] - } +import uuid + +from .constants import MinTimers + + +def getListeningPartTemplate(): + return { + "audio": { + "repeatableTimes": 3, + "source": "", + }, + "exercises": [] + } + + +def getListeningTemplate(): + return { + "parts": [], + "isDiagnostic": False, + "minTimer": MinTimers.LISTENING_MIN_TIMER_DEFAULT, + "module": "listening" + } + + + +def getListeningPostSample(): + return { + "parts": [ + { + "exercises": [ + { + "questions": [ + { + "id": "1", + "options": [ + { + "id": "A", + "text": "To start working out together" + }, + { + "id": "B", + "text": "To join a book club" + }, + { + "id": "C", + "text": "To go on a trip" + }, + { + "id": "D", + "text": "To take a cooking class" + } + ], + "prompt": "What is John's suggestion to Emily?", + "solution": "A", + "variant": "text" + }, + { + "id": "2", + "options": [ + { + "id": "A", + "text": "She doesn't have time" + }, + { + "id": "B", + "text": "She doesn't have money" + }, + { + "id": "C", + "text": "She doesn't have a gym membership" + }, + { + "id": "D", + "text": "She doesn't like working out" + } + ], + "prompt": "What is Emily's current reason for not working out?", + "solution": "D", + "variant": "text" + }, + { + "id": "3", + "options": [ + { + "id": "A", + "text": "Gold's Gym" + }, + { + "id": "B", + "text": "Planet Fitness" + }, + { + "id": "C", + "text": "Fitness Plus" + }, + { + "id": "D", + "text": "Anytime Fitness" + } + ], + "prompt": "What gym does John suggest to Emily?", + "solution": "C", + "variant": "text" + }, + { + "id": "4", + "options": [ + { + "id": "A", + "text": "$10 a month" + }, + { + "id": "B", + "text": "$20 a month" + }, + { + "id": "C", + "text": "$30 a month" + }, + { + "id": "D", + "text": "$40 a month" + } + ], + "prompt": "What is the price of the basic membership at Fitness Plus?", + "solution": "C", + "variant": "text" + }, + { + "id": "5", + "options": [ + { + "id": "A", + "text": "3 months" + }, + { + "id": "B", + "text": "6 months" + }, + { + "id": "C", + "text": "12 months" + }, + { + "id": "D", + "text": "No commitment required" + } + ], + "prompt": "How long is the commitment for the basic membership at Fitness Plus?", + "solution": "D", + "variant": "text" + }, + { + "id": "6", + "options": [ + { + "id": "A", + "text": "Dance and cooking" + }, + { + "id": "B", + "text": "Yoga and spin" + }, + { + "id": "C", + "text": "Singing and art" + }, + { + "id": "D", + "text": "Martial arts and rock climbing" + } + ], + "prompt": "What type of classes does Fitness Plus offer?", + "solution": "B", + "variant": "text" + }, + { + "id": "7", + "options": [ + { + "id": "A", + "text": "Watch movies" + }, + { + "id": "B", + "text": "Take classes" + }, + { + "id": "C", + "text": "Play sports" + }, + { + "id": "D", + "text": "Study" + } + ], + "prompt": "What does John and Emily plan to do together at the gym?", + "solution": "B", + "variant": "text" + }, + { + "id": "8", + "options": [ + { + "id": "A", + "text": "Saturday" + }, + { + "id": "B", + "text": "Sunday" + }, + { + "id": "C", + "text": "Monday" + }, + { + "id": "D", + "text": "Tuesday" + } + ], + "prompt": "What day does John suggest to go check out the gym?", + "solution": "C", + "variant": "text" + }, + { + "id": "9", + "options": [ + { + "id": "A", + "text": "To go shopping" + }, + { + "id": "B", + "text": "To get lunch" + }, + { + "id": "C", + "text": "To schedule a tour" + }, + { + "id": "D", + "text": "To watch a movie" + } + ], + "prompt": "What is John's plan after checking out the gym?", + "solution": "C", + "variant": "text" + }, + { + "id": "10", + "options": [ + { + "id": "A", + "text": "Nervous" + }, + { + "id": "B", + "text": "Excited" + }, + { + "id": "C", + "text": "Uninterested" + }, + { + "id": "D", + "text": "Angry" + } + ], + "prompt": "How does Emily feel about starting to work out again?", + "solution": "B", + "variant": "text" + } + ] + } + ], + "text": { + "conversation": [ + { + "gender": "male", + "name": "John", + "text": "Hey, have you been working out lately?", + "voice": "Stephen" + }, + { + "gender": "female", + "name": "Emily", + "text": "Not really, I've been so busy with work.", + "voice": "Ruth" + }, + { + "gender": "male", + "name": "John", + "text": "Well, I've been thinking about getting a gym membership. Do you have one?", + "voice": "Stephen" + }, + { + "gender": "female", + "name": "Emily", + "text": "No, but I've been considering it too. Which gym are you thinking of joining?", + "voice": "Ruth" + }, + { + "gender": "male", + "name": "John", + "text": "I was looking at the one down the street, Fitness Plus. It seems to have good reviews.", + "voice": "Stephen" + }, + { + "gender": "female", + "name": "Emily", + "text": "Oh, I've heard of that one. What's the membership like?", + "voice": "Ruth" + }, + { + "gender": "male", + "name": "John", + "text": "They have different packages, but I'm thinking of going for the basic one. It's $30 a month with a one-year commitment.", + "voice": "Stephen" + }, + { + "gender": "female", + "name": "Emily", + "text": "That's not bad. Do they have classes too?", + "voice": "Ruth" + }, + { + "gender": "male", + "name": "John", + "text": "Yeah, they have a variety of classes like yoga and spin. I'm interested in trying out some of those.", + "voice": "Stephen" + }, + { + "gender": "female", + "name": "Emily", + "text": "I've always wanted to try yoga. Maybe we can go together sometime.", + "voice": "Ruth" + }, + { + "gender": "male", + "name": "John", + "text": "That would be great! It's always more fun to have a workout buddy. Have you looked into any other gyms?", + "voice": "Stephen" + }, + { + "gender": "female", + "name": "Emily", + "text": "Not really. I've been busy with work, but I'll definitely check out Fitness Plus. Maybe we can both join and motivate each other.", + "voice": "Ruth" + }, + { + "gender": "male", + "name": "John", + "text": "Sounds like a plan. Let's do it.", + "voice": "Stephen" + }, + { + "gender": "female", + "name": "Emily", + "text": "Awesome. We can go check it out this weekend.", + "voice": "Ruth" + }, + { + "gender": "male", + "name": "John", + "text": "Perfect. I'll give them a call to schedule a tour.", + "voice": "Stephen" + }, + { + "gender": "female", + "name": "Emily", + "text": "Thanks, John. I'm excited to start working out again.", + "voice": "Ruth" + }, + { + "gender": "male", + "name": "John", + "text": "Me too. Let's do this!", + "voice": "Stephen" + } + ] + } + }, + { + "exercises": [ + { + "id": "0646ab5b-e8e2-4da5-8a0c-784fe3d0186a", + "maxWords": 3, + "prompt": "You will hear a monologue. Answer the questions below using no more than three words or a number accordingly.", + "solutions": [ + { + "id": "11", + "solution": [ + "multi-faceted", + "various dimensions" + ] + }, + { + "id": "12", + "solution": [ + "climate change", + "rising temperature" + ] + }, + { + "id": "13", + "solution": [ + "waste minimization", + "resource reuse" + ] + }, + { + "id": "14", + "solution": [ + "reduce carbon footprint", + "support sustainable businesses" + ] + }, + { + "id": "15", + "solution": [ + "ourselves", + "parents/educators" + ] + } + ], + "text": "What is the concept of sustainability?{{11}}\\nWhat is the biggest challenge we are facing?{{12}}\\nWhat is the need for a circular economy?{{13}}\\nWhat can individuals do to address these challenges?{{14}}\\nWho is responsible for educating future generations about environmental sustainability?{{15}}\\n", + "type": "writeBlanks" + }, + { + "id": "0c99267c-8c3a-4ed0-9f05-00c07a480831", + "maxWords": 1, + "prompt": "You will hear a monologue. Fill the form with words/numbers missing.", + "solutions": [ + { + "id": "16", + "solution": "dimensional" + }, + { + "id": "17", + "solution": "Change" + }, + { + "id": "18", + "solution": "Natural" + }, + { + "id": "19", + "solution": "Waste" + }, + { + "id": "20", + "solution": "Injustice" + } + ], + "text": "Key: Multi-{{1}} Concept of Sustainability\nValue: The concept of sustainability encompasses social, economic, and environmental aspects, and it is essential to address all dimensions in order to achieve a sustainable future.\\nKey: Climate {{2}}\nValue: Rising temperatures, extreme weather events, and loss of biodiversity are just some of the consequences of climate change caused by human activities such as burning fossil fuels and deforestation.\\nKey: Depletion of {{3}} Resources\nValue: Our current consumption patterns are not sustainable, and the overexploitation of resources is leading to deforestation, water scarcity, and depletion of fisheries. It is crucial to find ways to reduce our consumption and ensure resource replenishment.\\nKey: {{4}} Management\nValue: Our linear model of consumption and disposal is not sustainable, and we need to shift towards a circular economy where waste is minimized, and resources are reused or recycled.\\nKey: Environmental {{5}}\nValue: Marginalized communities are often the most affected by environmental degradation, and it is crucial to address this injustice and ensure that environmental policies and actions are fair and inclusive.\\n", + "type": "writeBlanks" + } + ], + "text": "\n\nHello everyone, thank you for joining me in this discussion about one of the most pressing issues of our time - environmental sustainability. I believe we can all agree that our planet is facing numerous challenges due to human activities and it is high time we address them.\n\nFirstly, I would like to acknowledge that the concept of sustainability itself is multi-faceted and encompasses various dimensions such as social, economic, and environmental aspects. However, today, I would like to focus on the environmental challenges we are currently facing.\n\nOne of the biggest challenges we are facing is climate change. The Earth's temperature is rising at an alarming rate due to the increase in greenhouse gas emissions, primarily from human activities such as burning fossil fuels and deforestation. This has resulted in extreme weather events, loss of biodiversity, and rising sea levels, among others. We are already seeing the consequences of climate change, and if we do not take immediate action, the situation will only worsen.\n\nAnother challenge is the depletion of natural resources. Our planet has a finite amount of resources, and yet, our current consumption patterns are not sustainable. The overexploitation of resources is leading to deforestation, water scarcity, and depletion of fisheries. We need to find ways to reduce our consumption and ensure that we are not exploiting resources faster than they can replenish.\n\nIn addition to climate change and resource depletion, waste management is also a significant challenge. Our current linear model of consumption and disposal is not sustainable in the long run. We produce a massive amount of waste, and most of it ends up in landfills or our oceans, polluting our environment and harming wildlife. We need to shift towards a circular economy, where waste is minimized, and resources are reused or recycled.\n\nFurthermore, there is also the issue of environmental injustice. The impacts of environmental degradation are not equally distributed, and marginalized communities are often the most affected. This injustice needs to be addressed, and measures must be taken to ensure that environmental policies and actions are fair and inclusive.\n\nSo, what can we do to address these challenges? Firstly, we need to acknowledge that each one of us has a role to play. We cannot rely on governments or organizations alone to solve these issues. We need to make changes in our daily lives, such as reducing our carbon footprint, adopting sustainable practices, and supporting businesses that prioritize the environment.\n\nWe also need to hold corporations and governments accountable for their actions. We have the power to demand change through our consumer choices and our votes. It is crucial that we urge our leaders to implement policies that promote sustainable practices and penalize those who harm the environment.\n\nMoreover, education and awareness are essential in tackling these challenges. We need to educate ourselves and others about the importance of environmental sustainability and the actions we can take to achieve it. Our children are the future, and it is our responsibility to educate them on the significance of preserving our planet.\n\nIn conclusion, the challenges of environmental sustainability are daunting, but they are not insurmountable. It is up to us to take action and make a difference. We owe it to ourselves, future generations, and the planet to ensure a sustainable future. Let us work together towards a greener, cleaner, and more sustainable world. Thank you." + }, + { + "exercises": [ + { + "id": "0149f828-c216-4e60-80fa-1dd28a860031", + "maxWords": 1, + "prompt": "Fill the blank space with the word missing from the audio.", + "solutions": [ + { + "id": "21", + "solution": "Smith" + }, + { + "id": "22", + "solution": "rash" + }, + { + "id": "23", + "solution": "fever" + }, + { + "id": "24", + "solution": "allergies" + }, + { + "id": "25", + "solution": "antinuclear" + }, + { + "id": "26", + "solution": "immunosuppressants" + }, + { + "id": "27", + "solution": "evaluation" + }, + { + "id": "28", + "solution": "Autoimmune" + }, + { + "id": "29", + "solution": "four" + }, + { + "id": "30", + "solution": "possibilities" + } + ], + "text": "Dr. {{21}}, Dr. Patel, Sarah, and Alex were discussing a case study of a patient with a fever and rash.\\nThe patient was a 30-year-old female with a history of allergies.\\nThe patient's rash was erythematous and she had a {{23}} of 101°F.\\nPossible initial diagnoses included a viral infection or allergic reaction.\\nHowever, the final diagnosis was an autoimmune disorder based on elevated {{25}} antibodies in the patient's blood work.\\nTreatment involved {{26}} and the patient's symptoms resolved within a week.\\nThorough {{27}} and considering all possibilities is important in the diagnostic process.\\n{{28}} disorders can develop without any underlying trigger.\\nThe seminar ended with the {{29}} individuals thanking each other and continuing their day with new knowledge.\\nThinking outside the box and considering all {{30}} is crucial in the diagnostic process.", + "type": "writeBlanks" + } + ], + "text": { + "conversation": [ + { + "gender": "male", + "name": "Dr. Smith", + "text": "Good morning everyone, thank you for joining us today for this seminar on diagnosis. Let's begin with the case study of a patient who presented with a fever and rash.", + "voice": "Kevin" + }, + { + "gender": "male", + "name": "Dr. Patel", + "text": "Yes, I remember this case. The patient was a 30-year-old female with a history of allergies.", + "voice": "Stephen" + }, + { + "gender": "female", + "name": "Sarah", + "text": "Hi, I'm Sarah, a third-year medical student. I remember studying this case in our lectures. The patient's rash was erythematous, right?", + "voice": "Aria" + }, + { + "gender": "male", + "name": "Dr. Smith", + "text": "Yes, that's correct. And the patient had a fever of 101°F. What would be your initial diagnosis?", + "voice": "Kevin" + }, + { + "gender": "male", + "name": "Alex", + "text": "Hi, I'm Alex, a fourth-year medical student. I would say it could be a viral infection or an allergic reaction.", + "voice": "Kevin" + }, + { + "gender": "male", + "name": "Dr. Patel", + "text": "That's a good guess, Alex. But remember, always consider other possibilities. In this case, it turned out to be an autoimmune disorder.", + "voice": "Stephen" + }, + { + "gender": "female", + "name": "Sarah", + "text": "Oh, I didn't think of that. How did you come to that diagnosis?", + "voice": "Aria" + }, + { + "gender": "male", + "name": "Dr. Smith", + "text": "Well, the patient's blood work showed elevated levels of antinuclear antibodies. That, along with the clinical presentation, pointed towards an autoimmune disorder.", + "voice": "Kevin" + }, + { + "gender": "male", + "name": "Alex", + "text": "That's interesting. I would have never thought of that. How did you treat the patient?", + "voice": "Kevin" + }, + { + "gender": "male", + "name": "Dr. Patel", + "text": "We started the patient on immunosuppressants and the rash and fever resolved within a week.", + "voice": "Stephen" + }, + { + "gender": "female", + "name": "Sarah", + "text": "Wow, it's amazing how a simple rash and fever could lead to such a complex diagnosis.", + "voice": "Aria" + }, + { + "gender": "male", + "name": "Dr. Smith", + "text": "That's the importance of thorough evaluation and considering all possibilities. Any other thoughts or questions?", + "voice": "Kevin" + }, + { + "gender": "male", + "name": "Alex", + "text": "I just wanted to ask, do you think the patient's allergies could have triggered the autoimmune disorder?", + "voice": "Kevin" + }, + { + "gender": "male", + "name": "Dr. Patel", + "text": "It's possible, but we can't say for sure. Sometimes autoimmune disorders can develop without any underlying trigger.", + "voice": "Stephen" + }, + { + "gender": "female", + "name": "Sarah", + "text": "Thank you for sharing this case with us, it was very informative.", + "voice": "Aria" + }, + { + "gender": "male", + "name": "Dr. Smith", + "text": "My pleasure. I hope this discussion has given you a better understanding of the diagnostic process. Always remember to think outside the box and consider all possibilities.", + "voice": "Kevin" + } + ] + } + }, + { + "exercises": [ + { + "id": "921d3a2a-7f6e-46ae-a19d-65eb5ba21375", + "maxWords": 3, + "prompt": "You will hear a monologue. Answer the questions below using no more than three words or a number accordingly.", + "solutions": [ + { + "id": "31", + "solution": [ + "complex mixture", + "vital natural resource", + "non-renewable resource" + ] + }, + { + "id": "32", + "solution": [ + "sand, silt, clay" + ] + }, + { + "id": "33", + "solution": [ + "ability to provide nutrients", + "balance of essential nutrients", + "breaking down organic matter" + ] + }, + { + "id": "34", + "solution": [ + "break down organic matter", + "improve soil structure", + "release nutrients" + ] + }, + { + "id": "35", + "solution": [ + "soil erosion", + "land use practices", + "preservation of soil for future generations" + ] + } + ], + "text": "What is soil?{{31}}\\nWhat are the three main categories of soil?{{32}}\\nWhat is soil fertility?{{33}}\\nWhat is the role of microorganisms in soil?{{34}}\\nWhat environmental issue can be prevented through proper soil management?{{35}}\\n", + "type": "writeBlanks" + }, + { + "id": "e86afd9a-90d1-48db-bee1-0d20f6eea64d", + "maxWords": 1, + "prompt": "Fill the blank space with the word missing from the audio.", + "solutions": [ + { + "id": "36", + "solution": "vital" + }, + { + "id": "37", + "solution": "classified" + }, + { + "id": "38", + "solution": "fertility" + }, + { + "id": "39", + "solution": "microorganisms" + }, + { + "id": "40", + "solution": "science" + } + ], + "text": "Soil is a {{36}} natural resource that provides the foundation for plant growth\\nSoil is {{37}} into three main categories: sand, silt, and clay\\nSoil {{38}} refers to the ability of the soil to provide essential nutrients for plant growth\\nHealthy soil is teeming with {{39}}\\nSoil {{40}} plays a significant role in environmental conservation", + "type": "writeBlanks" + } + ], + "text": "\n\nGood morning everyone, today I would like to talk to you about a topic that is often overlooked but plays a crucial role in our daily lives - soil science. Soil science deals with the study of the composition, structure, and properties of soil, as well as how it interacts with the environment and living organisms.\n\nSoil is a vital natural resource that provides the foundation for plant growth, which in turn sustains all life on earth. It is the basis for our food production, as well as the source of many raw materials such as wood, cotton, and rubber. Without a healthy and productive soil, our agricultural systems would collapse, and we would struggle to feed our growing population.\n\nBut what exactly is soil? Soil is a complex mixture of minerals, organic matter, water, and air, all held together by microorganisms. It takes thousands of years for soil to form, and it is a non-renewable resource, which makes its conservation even more critical.\n\nOne of the key aspects of soil science is understanding the different types of soil and their properties. Soil is classified into three main categories: sand, silt, and clay. These categories are based on the size of the particles that make up the soil. Sand particles are the largest, followed by silt and then clay. The composition of these particles greatly affects the soil's properties, such as water retention, drainage, and nutrient availability.\n\nAnother crucial aspect of soil science is the study of soil fertility. Soil fertility refers to the ability of the soil to provide essential nutrients for plant growth. The nutrients in the soil come from the breakdown of organic matter, such as dead plants and animal remains. Fertile soil contains a balance of essential nutrients, such as nitrogen, phosphorus, and potassium, which are necessary for plant growth.\n\nThe health of the soil is also crucial in soil science. Healthy soil is teeming with microorganisms, which play a vital role in breaking down organic matter and releasing nutrients into the soil. These microorganisms also help to improve soil structure, making it more porous and allowing for better air and water circulation.\n\nSoil science also plays a significant role in environmental conservation. Soil erosion, the removal of topsoil by wind and water, is a significant environmental issue that can be prevented through proper soil management. By understanding the factors that contribute to soil erosion, such as improper land use practices, we can implement strategies to prevent it and preserve our soil for future generations.\n\nIn conclusion, soil science is a critical field of study that impacts our daily lives in more ways than we can imagine. It is not just about digging in the dirt; it is a complex science that requires a multidisciplinary approach. By understanding the composition, properties, and fertility of soil, we can ensure the sustainable use of this precious resource and preserve it for future generations. Thank you." + } + ] + } + + +def getReadingTemplate(): + return { + "parts": [], + "isDiagnostic": False, + "minTimer": 60, + "type": "academic" + } + + +def getReadingPostSample(): + return { + "parts": [ + { + "exercises": [ + { + "id": "cbd08cdd-5850-40a8-b6e2-6021c04474ad", + "prompt": "Do the following statements agree with the information given in the Reading Passage?", + "questions": [ + { + "id": "1", + "prompt": "Technology is constantly evolving and shaping our world.", + "solution": "true" + }, + { + "id": "2", + "prompt": "The use of artificial intelligence (AI) has only recently become popular.", + "solution": "false" + }, + { + "id": "3", + "prompt": "5G technology offers slower speeds and higher latency than its predecessors.", + "solution": "false" + }, + { + "id": "4", + "prompt": "Social media has had a minimal impact on our society.", + "solution": "false" + }, + { + "id": "5", + "prompt": "Cybersecurity is not a growing concern as technology becomes more integrated into our lives.", + "solution": "false" + }, + { + "id": "6", + "prompt": "Technology has not had a significant impact on the education sector.", + "solution": "false" + }, + { + "id": "7", + "prompt": "Automation and AI are not causing shifts in the job market.", + "solution": "false" + } + ], + "type": "trueFalse" + }, + { + "allowRepetition": True, + "id": "b88f3eb5-11b7-4a8e-bb1a-4e96215b34bf", + "prompt": "Complete the summary below. Click a blank to select the corresponding word(s) for it.\\nThere are more words than spaces so you will not use them all. You may use any of the words more than once.", + "solutions": [ + { + "id": "8", + "solution": "smartphones" + }, + { + "id": "9", + "solution": "artificial intelligence" + }, + { + "id": "10", + "solution": "5G technology" + }, + { + "id": "11", + "solution": "virtual reality" + }, + { + "id": "12", + "solution": "cybersecurity" + }, + { + "id": "13", + "solution": "telemedicine" + } + ], + "text": "\n\nTechnology has become an integral part of our daily lives, from {{8}} to smart homes. The rise of {{9}} (AI) and the Internet of Things (IoT) are two major trends that are revolutionizing the way we live and work. {{10}} is also gaining popularity, enabling advancements in areas like {{11}} and self-driving cars. Cloud computing, virtual and augmented reality (VR and AR), and blockchain technology are also on the rise, impacting industries such as finance, education, and healthcare. Social media has changed the way we communicate and raised concerns about privacy and mental health. With the increase in data breaches and cyber attacks, {{12}} has become a growing concern. {{13}} and online learning have made healthcare and education more accessible and efficient. However, there are concerns about the impact of technology on the job market, leading to discussions about the need for reskilling and upskilling. As technology continues to advance, it is crucial to understand its impact and consequences on our society.", + "type": "fillBlanks", + "words": [ + "speaking", + "5G technology", + "telemedicine", + "virtual reality", + "antechamber", + "smartphones", + "kitsch", + "devilish", + "parent", + "artificial intelligence", + "cybersecurity" + ] + } + ], + "text": { + "content": "In today's society, technology has become an integral part of our daily lives. From smartphones to smart homes, we are constantly surrounded by the latest and most advanced technological devices. As technology continues to evolve and improve, it is important to understand the current trends and how they are shaping our world. One of the biggest technology trends in recent years is the rise of artificial intelligence (AI). AI is the simulation of human intelligence processes by machines, particularly computer systems. This technology has been around for decades, but with the advancement of computing power and big data, AI has become more sophisticated and prevalent. From virtual personal assistants like Siri and Alexa to self-driving cars, AI is revolutionizing the way we live and work. Another trend that has gained widespread popularity is the Internet of Things (IoT). This refers to the interconnection of everyday objects via the internet, allowing them to send and receive data. Smart homes, wearable devices, and even smart cities are all examples of IoT. With IoT, our devices and appliances can communicate with each other, making our lives more convenient and efficient. The use of 5G technology is also on the rise. 5G is the fifth generation of wireless technology, offering faster speeds and lower latency than its predecessors. With 5G, we can expect to see advancements in areas like virtual reality, self-driving cars, and remote surgery. It will also enable the development of smart cities and the Internet of Things to reach its full potential. Cloud computing is another trend that has been steadily growing. Cloud computing involves the delivery of computing services over the internet, such as storage, servers, and databases. This allows for easy access to data and applications from anywhere, at any time. Many businesses and individuals are utilizing cloud computing to streamline their operations and increase efficiency. Virtual and augmented reality (VR and AR) are becoming more prevalent in various industries, from gaming and entertainment to healthcare and education. VR immerses the user in a simulated environment, while AR overlays digital information onto the real world. These technologies have the potential to change the way we learn, work, and entertain ourselves. Blockchain technology is also gaining traction, particularly in the financial sector. Blockchain is a decentralized digital ledger that records transactions across a network of computers. It allows for secure and transparent transactions without the need for intermediaries. This technology has the potential to disrupt traditional banking and financial systems. Social media has been a dominant force in the technology world for some time now, and it continues to evolve and shape our society. With the rise of platforms like Facebook, Twitter, and Instagram, we are more connected than ever before. Social media has changed the way we communicate, share information, and even do business. It has also raised concerns about privacy and the impact of social media on mental health. Cybersecurity is a growing concern as technology becomes more integrated into our lives. With the increase in data breaches and cyber attacks, the need for strong cybersecurity measures is greater than ever. Companies and individuals are investing in better security protocols to protect their sensitive information. The healthcare industry is also experiencing technological advancements with the introduction of telemedicine. This allows patients to receive medical care remotely, without having to visit a physical doctor's office. Telemedicine has become increasingly popular, especially during the COVID-19 pandemic, as it allows for safe and convenient access to healthcare. In the education sector, technology has brought about significant changes as well. Online learning platforms and digital tools have made education more accessible and efficient. With the rise of e-learning, students can access education from anywhere in the world and at their own pace. As technology continues to advance, concerns about its impact on the job market have also arisen. Automation and AI are replacing human workers in many industries, leading to job loss and shifts in the workforce. This trend has sparked discussions about the need for reskilling and upskilling to adapt to the changing job market. In conclusion, the world is constantly evolving and adapting to the latest technology trends. From AI and IoT to 5G and blockchain, these advancements are shaping the way we live, work, and interact with each other. As society continues to embrace and integrate technology into our daily lives, it is crucial to understand its impact and potential consequences. Whether it be in the fields of healthcare, education, or finance, technology is undoubtedly transforming the world as we know it.", + "title": "Modern Technology Trends" + } + }, + { + "exercises": [ + { + "id": "f2daa91a-3e92-4c07-aefd-719bcf22bac7", + "prompt": "Do the following statements agree with the information given in the Reading Passage?", + "questions": [ + { + "id": "14", + "prompt": "Yoga and meditation have been gaining popularity in recent years.", + "solution": "true" + }, + { + "id": "15", + "prompt": "Yoga and meditation originated in ancient India.", + "solution": "true" + }, + { + "id": "16", + "prompt": "Yoga is a system that combines physical postures, breathing techniques, and meditation.", + "solution": "true" + }, + { + "id": "17", + "prompt": "Meditation involves training the mind to achieve a state of inner peace and relaxation.", + "solution": "true" + }, + { + "id": "18", + "prompt": "Yoga and meditation can reduce stress and improve mental health.", + "solution": "true" + }, + { + "id": "19", + "prompt": "Yoga and meditation can improve physical health.", + "solution": "true" + }, + { + "id": "20", + "prompt": "Yoga and meditation are only suitable for people who are physically fit.", + "solution": "false" + } + ], + "type": "trueFalse" + }, + { + "id": "b500cb69-843d-4430-a544-924c514ea12a", + "maxWords": 3, + "prompt": "Choose no more than three words and/or a number from the passage for each answer.", + "solutions": [ + { + "id": "21", + "solution": [ + "physical, mental, emotional" + ] + }, + { + "id": "22", + "solution": [ + "ancient India" + ] + }, + { + "id": "23", + "solution": [ + "physical postures, breathing techniques" + ] + }, + { + "id": "24", + "solution": [ + "reduce stress, improve mindfulness" + ] + }, + { + "id": "25", + "solution": [ + "improve, promote relaxation" + ] + }, + { + "id": "26", + "solution": [ + "anyone, all ages and backgrounds" + ] + } + ], + "text": "What are the three main benefits of yoga and meditation?{{21}}\\nWhere did yoga originate?{{22}}\\nWhat are the two components of yoga?{{23}}\\nHow do yoga and meditation improve mental health?{{24}}\\nWhat is the impact of yoga and meditation on sleep quality?{{25}}\\nWho can practice yoga and meditation?{{26}}\\n", + "type": "writeBlanks" + } + ], + "text": { + "content": "Yoga and meditation have been gaining popularity in recent years as more and more people recognize the physical, mental, and emotional benefits of these ancient practices. Originating in ancient India, yoga is a holistic system that combines physical postures, breathing techniques, and meditation to promote overall well-being. Similarly, meditation is a mental practice that involves training the mind to achieve a state of inner peace and relaxation. One of the main benefits of yoga and meditation is their ability to reduce stress and improve mental health. In today's fast-paced world, stress has become a common problem for many people, leading to various physical and mental health issues. However, studies have shown that practicing yoga and meditation can significantly reduce stress levels and improve overall mental health. This is because these practices focus on deep breathing and mindfulness, which can help individuals to calm their minds and relax their bodies. As a result, many people who regularly practice yoga and meditation report feeling more peaceful, centered, and less stressed in their daily lives. Furthermore, yoga and meditation have been shown to have a positive impact on physical health. The physical postures and movements in yoga help to improve flexibility, strength, and balance. These postures also work to stretch and strengthen different muscles in the body, which can alleviate tension and prevent injuries. Additionally, the controlled breathing in yoga helps to increase oxygen flow throughout the body, which can improve cardiovascular health. As for meditation, studies have shown that it can lower blood pressure and reduce the risk of heart disease. These physical benefits make yoga and meditation an excellent form of exercise for people of all ages and fitness levels. Apart from the physical and mental benefits, yoga and meditation also have a positive impact on emotional well-being. The practice of mindfulness in these practices helps individuals to become more aware of their thoughts and emotions, allowing them to better manage and process them. This can result in improved emotional regulation and a greater sense of self-awareness. As a result, individuals who practice yoga and meditation often report feeling more positive, content, and emotionally stable. Another significant benefit of yoga and meditation is their ability to improve overall concentration and focus. In today's digital age, our minds are constantly bombarded with information and distractions, making it challenging to stay focused on tasks. However, regular practice of yoga and meditation can improve concentration and enhance cognitive function. This is because these practices require individuals to focus their minds on their breath, movements, or a specific mantra, helping to train the brain to stay focused for longer periods. Moreover, yoga and meditation have been shown to have a positive impact on sleep quality. Many people struggle with insomnia or other sleep-related issues, which can have a significant impact on their overall health and well-being. However, studies have shown that yoga and meditation can improve sleep quality and help individuals fall asleep faster. This is because these practices promote relaxation and reduce stress, which are common causes of sleep issues. As a result, individuals who practice yoga and meditation often report feeling more rested and rejuvenated after a good night's sleep. In addition to the physical, mental, emotional, and cognitive benefits, yoga and meditation also have a spiritual component. These practices are deeply rooted in ancient Indian spirituality and have been used for centuries to connect individuals with their inner selves and the universe. While the spiritual aspect may not be for everyone, many people find that it adds a deeper level of meaning and purpose to their practice. Furthermore, yoga and meditation are accessible to people of all ages and backgrounds. Whether you are young or old, fit or not, religious or not, yoga and meditation can be practiced by anyone. There are many different styles and forms of yoga and meditation, allowing individuals to choose the practice that best suits their needs and preferences. This inclusivity is what makes yoga and meditation such powerful and universal practices. In conclusion, the benefits of yoga and meditation are numerous and far-reaching. From reducing stress and improving mental health to promoting physical strength and emotional well-being, these ancient practices offer a holistic approach to overall health and wellness. Whether you are looking to improve your physical fitness, manage stress, or connect with your inner self, yoga and meditation are powerful tools that can help you achieve these goals. So why not give it a try and experience the transformative power of yoga and meditation for yourself?", + "title": "The Benefits of Yoga and Meditation" + } + }, + { + "exercises": [ + { + "allowRepetition": True, + "id": "1035c153-d38a-4f27-a14e-0ce63184ff82", + "prompt": "Complete the summary below. Click a blank to select the corresponding word(s) for it.\\nThere are more words than spaces so you will not use them all. You may use any of the words more than once.", + "solutions": [ + { + "id": "27", + "solution": "Cultural diversity" + }, + { + "id": "28", + "solution": "Variety" + }, + { + "id": "29", + "solution": "Multicultural" + }, + { + "id": "30", + "solution": "Tolerance" + }, + { + "id": "31", + "solution": "Unity" + }, + { + "id": "32", + "solution": "Challenges" + }, + { + "id": "33", + "solution": "Celebrated" + } + ], + "text": "\n\n{{27}} refers to the {{28}} of cultures, traditions, beliefs, and lifestyles that exist within a society. In today's interconnected world, the movement of people, goods, and ideas has led to a more diverse and {{29}} society. The exchange of ideas and knowledge, {{30}} and understanding, and promoting peace and {{31}} are some of the benefits of cultural diversity. However, it also poses {{32}} such as potential clashes and the marginalization of certain groups. To address these challenges, it is important for societies to promote cultural competency and sensitivity, as well as for individuals to embrace diversity and participate in cultural events. Overall, cultural diversity is a crucial aspect of our global society that needs to be preserved and {{33}}.", + "type": "fillBlanks", + "words": [ + "Tolerance", + "Cultural diversity", + "penny", + "Multicultural", + "shrill", + "Celebrated", + "Variety", + "query", + "Challenges", + "wont", + "Unity", + "chemical" + ] + }, + { + "questions": [ + { + "id": "34", + "options": [ + { + "id": "A", + "text": "The variety of cultures, traditions, beliefs, and lifestyles within a society" + }, + { + "id": "B", + "text": "The number of countries in the world" + }, + { + "id": "C", + "text": "The different types of technology used in different cultures" + }, + { + "id": "D", + "text": "The number of languages spoken in a society" + } + ], + "prompt": "What is the main definition of cultural diversity?", + "solution": "A", + "variant": "text" + }, + { + "id": "35", + "options": [ + { + "id": "A", + "text": "By making it easier for people to travel" + }, + { + "id": "B", + "text": "By increasing the number of countries in the world" + }, + { + "id": "C", + "text": "By creating more jobs for people from different cultures" + }, + { + "id": "D", + "text": "By promoting a single global culture" + } + ], + "prompt": "How has technology contributed to an increase in cultural diversity?", + "solution": "A", + "variant": "text" + }, + { + "id": "36", + "options": [ + { + "id": "A", + "text": "Increased economic opportunities" + }, + { + "id": "B", + "text": "Higher levels of education" + }, + { + "id": "C", + "text": "Improved transportation systems" + }, + { + "id": "D", + "text": "The exchange of ideas and knowledge" + } + ], + "prompt": "What is one of the key benefits of cultural diversity?", + "solution": "D", + "variant": "text" + }, + { + "id": "37", + "options": [ + { + "id": "A", + "text": "By forcing people to conform to a single culture" + }, + { + "id": "B", + "text": "By exposing people to different perspectives and experiences" + }, + { + "id": "C", + "text": "By creating a homogenous society" + }, + { + "id": "D", + "text": "By limiting the movement of people between countries" + } + ], + "prompt": "How does cultural diversity promote tolerance and understanding?", + "solution": "B", + "variant": "text" + }, + { + "id": "38", + "options": [ + { + "id": "A", + "text": "Increased discrimination" + }, + { + "id": "B", + "text": "A decline in technological advancements" + }, + { + "id": "C", + "text": "A decrease in the number of countries" + }, + { + "id": "D", + "text": "A lack of cultural exchange" + } + ], + "prompt": "What is one challenge posed by cultural diversity?", + "solution": "A", + "variant": "text" + }, + { + "id": "39", + "options": [ + { + "id": "A", + "text": "By promoting a single global culture" + }, + { + "id": "B", + "text": "By creating barriers between different groups" + }, + { + "id": "C", + "text": "By promoting cultural competency and sensitivity" + }, + { + "id": "D", + "text": "By limiting the number of countries in the world" + } + ], + "prompt": "What is one way that societies can address the challenges of cultural diversity?", + "solution": "C", + "variant": "text" + }, + { + "id": "40", + "options": [ + { + "id": "A", + "text": "To ignore cultural differences" + }, + { + "id": "B", + "text": "To actively participate in cultural events and activities" + }, + { + "id": "C", + "text": "To only embrace their own culture" + }, + { + "id": "D", + "text": "To avoid learning about other cultures" + } + ], + "prompt": "What is the responsibility of individuals in promoting and preserving cultural diversity?", + "solution": "B", + "variant": "text" + } + ] + } + ], + "text": { + "content": "Cultural diversity is a term that is often used in today's world, but what does it really mean? Simply put, cultural diversity refers to the variety of cultures, traditions, beliefs, and lifestyles that exist within a society. It is a reflection of the different backgrounds, experiences, and identities of individuals and groups. In this IELTS Reading Passage, we will explore the concept of cultural diversity and its significance in our global society. The world we live in today is more interconnected and interdependent than ever before. With the advancements in technology, transportation, and communication, people from different parts of the world can easily connect and interact with one another. This has led to an increase in the movement of people, goods, and ideas, resulting in a more diverse and multicultural society. In fact, it is estimated that over 190 countries exist in the world, each with its unique culture and traditions. One of the key benefits of cultural diversity is the exchange of ideas and knowledge. When people from different backgrounds come together, they bring with them their unique perspectives and experiences. This leads to a rich exchange of ideas, which can result in the development of new innovations and solutions to various problems. For example, the fusion of different cuisines has led to the creation of new and delicious dishes, and the blending of different musical styles has given birth to new genres of music. Moreover, cultural diversity also promotes tolerance and understanding among individuals and groups. When people are exposed to different cultures, they learn to appreciate and respect the differences that exist. This, in turn, leads to a more inclusive and harmonious society, where people from diverse backgrounds can coexist peacefully. In a world that is plagued by conflicts and discrimination, cultural diversity plays a crucial role in promoting peace and unity. However, despite its numerous benefits, cultural diversity also poses some challenges. One of the main challenges is the potential for cultural clashes. As individuals from different cultures interact, conflicts can arise due to differences in values, beliefs, and customs. This can lead to misunderstandings and even discrimination. For instance, a person from a collectivist culture may struggle to understand the individualistic values of someone from a Western culture. Furthermore, cultural diversity can also lead to the marginalization of certain groups within a society. In some cases, minority cultures may face discrimination and exclusion, which can result in social and economic disadvantages. This is often seen in the case of migrant communities, where they may struggle to fully integrate into the host society due to cultural barriers. To address these challenges, it is important for societies to promote cultural competency and sensitivity. This means educating individuals about different cultures and encouraging them to embrace diversity. It also involves creating policies and programs that promote inclusivity and equality for all groups within a society. For example, many countries have implemented diversity training programs in schools and workplaces to promote understanding and respect for different cultures. In addition, governments play a crucial role in promoting and preserving cultural diversity. They can do this by protecting the cultural heritage of different groups and promoting cultural events and festivals. This not only helps in preserving the unique identities of different cultures but also promotes cultural exchange and understanding. On an individual level, there are also steps that we can take to embrace cultural diversity. This includes being open-minded and respectful towards different cultures, being willing to learn about other cultures, and actively participating in cultural events and activities. By doing so, we can break down barriers and promote a more inclusive and harmonious society. In conclusion, cultural diversity is a key aspect of our global society. It brings numerous benefits such as the exchange of ideas and promoting tolerance, but it also poses challenges that need to be addressed. As individuals and societies, it is our responsibility to promote and preserve cultural diversity and create a world where everyone is embraced and valued for their unique identities and backgrounds. By doing so, we can create a more peaceful and prosperous world for all.", + "title": "Cultural Diversity: A Key Aspect of Our Global Society" + } + } + ] + } + + +def getSpeakingTemplate(): + return { + "exercises": [ + { + "id": str(uuid.uuid4()), + "prompts": [], + "text": "text", + "title": "topic", + "video_url": "sp1_video_url", + "video_path": "sp1_video_path", + "type": "speaking" + }, + { + "id": str(uuid.uuid4()), + "prompts": ["prompts"], + "text": "text", + "title": "topic", + "video_url": "sp2_video_url", + "video_path": "sp2_video_path", + "type": "speaking" + }, + { + "id": str(uuid.uuid4()), + "prompts": ["questions"], + "text": "Listen carefully and respond.", + "title": "topic", + "type": "interactiveSpeaking" + } + ], + "isDiagnostic": False, + "minTimer": MinTimers.SPEAKING_MIN_TIMER_DEFAULT, + "module": "speaking" + } + + +def getSpeakingPostTemplate(): + return { + "exercises": [ + { + "question": "What is the most impactful book you have ever read and how has it influenced your perspective on life? Please share specific examples from the book that resonated with you on a personal level.", + "topic": "Books" + }, + { + "prompts": [ + "Where did you go?", + "What did you do there?", + "Why was it a memorable experience for you?" + ], + "question": "Tell me about a memorable travel experience you have had.", + "topic": "Travel" + }, + { + "questions": [ + "In what ways has technology improved our lives?", + "What are some potential negative effects of technology on society?", + "How can we strike a balance between the use of technology and maintaining healthy relationships?" + ], + "topic": "Technology and Society" + } + ] + } + + +def getWritingTemplate(): + return { + "exercises": [ + { + "id": str(uuid.uuid4()), + "prefix": "You should spend about 20 minutes on this task.", + "prompt": "", + "suffix": "You should write at least 100 words.", + "type": "writing", + "wordCounter": { + "limit": 100, + "type": "min" + } + }, + { + "id": str(uuid.uuid4()), + "prefix": "You should spend about 40 minutes on this task.\nPresent a written argument or case to an educated " + "reader with no specialist knowledge of the following topic:", + "prompt": "", + "suffix": "You should write at least 250 words.\nUse your own ideas, knowledge and experience and support " + "your arguments with examples and relevant evidence.", + "type": "writing", + "wordCounter": { + "limit": 250, + "type": "min" + } + } + ], + "isDiagnostic": False, + "minTimer": MinTimers.WRITING_MIN_TIMER_DEFAULT, + "module": "writing", + "type": "general" + } + + +def getWritingPostSample(): + return { + "exercises": [ + "You recently attended a friend's wedding and were impressed by their wedding planner. Write a letter to your friend, advising them on the best wedding planner for their upcoming wedding. In your letter, include information about the planner's services, pricing, and any personal experiences you had with them. Provide your friend with recommendations and tips on how to make the most out of their wedding planning experience.", + "To what extent do you agree or disagree with the statement that technology has had a positive impact on modern society? In your response, critically examine the opposing perspectives on this issue, considering both the benefits and drawbacks of technological advancements. Support your arguments with relevant examples and evidence, and conclude with your own stance on the matter." + ] + } + + +def get_question_tips(question: str, answer: str, correct_answer: str, context: str = None): + messages = [ + { + "role": "user", + "content": "You are a IELTS exam program that analyzes incorrect answers to questions and gives tips to " + "help students understand why it was a wrong answer and gives helpful insight for the future. " + "The tip should refer to the context and question.", + } + ] + + if not (context is None or context == ""): + messages.append({ + "role": "user", + "content": f"This is the context for the question: {context}", + }) + + messages.extend([ + { + "role": "user", + "content": f"This is the question: {question}", + }, + { + "role": "user", + "content": f"This is the answer: {answer}", + }, + { + "role": "user", + "content": f"This is the correct answer: {correct_answer}", + } + ]) + + return messages diff --git a/ielts_be/controllers/__init__.py b/ielts_be/controllers/__init__.py new file mode 100644 index 0000000..621885c --- /dev/null +++ b/ielts_be/controllers/__init__.py @@ -0,0 +1,3 @@ +from .abc import * + +__all__ = abc.__all__ diff --git a/ielts_be/controllers/abc/__init__.py b/ielts_be/controllers/abc/__init__.py new file mode 100644 index 0000000..7e6d5c0 --- /dev/null +++ b/ielts_be/controllers/abc/__init__.py @@ -0,0 +1,11 @@ +from .grade import IGradeController +from .training import ITrainingController +from .user import IUserController +from .exam import * + +__all__ = [ + "IGradeController", + "ITrainingController", + "IUserController", +] +__all__.extend(exam.__all__) diff --git a/ielts_be/controllers/abc/exam/__init__.py b/ielts_be/controllers/abc/exam/__init__.py new file mode 100644 index 0000000..1ab1a7e --- /dev/null +++ b/ielts_be/controllers/abc/exam/__init__.py @@ -0,0 +1,13 @@ +from .level import ILevelController +from .listening import IListeningController +from .reading import IReadingController +from .writing import IWritingController +from .speaking import ISpeakingController + +__all__ = [ + "IListeningController", + "IReadingController", + "IWritingController", + "ISpeakingController", + "ILevelController", +] diff --git a/ielts_be/controllers/abc/exam/level.py b/ielts_be/controllers/abc/exam/level.py new file mode 100644 index 0000000..393e408 --- /dev/null +++ b/ielts_be/controllers/abc/exam/level.py @@ -0,0 +1,27 @@ +from abc import ABC, abstractmethod + +from fastapi import UploadFile +from typing import Dict, Optional + + +class ILevelController(ABC): + + @abstractmethod + async def generate_exercises(self, dto): + pass + + @abstractmethod + async def get_level_exam(self): + pass + + @abstractmethod + async def get_level_utas(self): + pass + + @abstractmethod + async def upload_level(self, file: UploadFile, solutions: Optional[UploadFile] = None): + pass + + @abstractmethod + async def get_custom_level(self, data: Dict): + pass diff --git a/ielts_be/controllers/abc/exam/listening.py b/ielts_be/controllers/abc/exam/listening.py new file mode 100644 index 0000000..8aa8428 --- /dev/null +++ b/ielts_be/controllers/abc/exam/listening.py @@ -0,0 +1,26 @@ +from abc import ABC, abstractmethod + +from fastapi import UploadFile + + +class IListeningController(ABC): + + @abstractmethod + async def import_exam(self, exercises: UploadFile, solutions: UploadFile = None): + pass + + @abstractmethod + async def generate_listening_dialog(self, section_id: int, topic: str, difficulty: str): + pass + + @abstractmethod + async def get_listening_question(self, dto): + pass + + @abstractmethod + async def generate_mp3(self, dto): + pass + + @abstractmethod + async def transcribe_dialog(self, audio: UploadFile): + pass diff --git a/ielts_be/controllers/abc/exam/reading.py b/ielts_be/controllers/abc/exam/reading.py new file mode 100644 index 0000000..8aaa30a --- /dev/null +++ b/ielts_be/controllers/abc/exam/reading.py @@ -0,0 +1,20 @@ +from abc import ABC, abstractmethod +from typing import Optional + +from fastapi import UploadFile + + +class IReadingController(ABC): + + @abstractmethod + async def import_exam(self, exercises: UploadFile, solutions: UploadFile = None): + pass + + @abstractmethod + async def generate_reading_passage(self, passage: int, topic: Optional[str], word_count: Optional[int]): + pass + + @abstractmethod + async def generate_reading_exercises(self, dto): + pass + diff --git a/ielts_be/controllers/abc/exam/speaking.py b/ielts_be/controllers/abc/exam/speaking.py new file mode 100644 index 0000000..73c5a38 --- /dev/null +++ b/ielts_be/controllers/abc/exam/speaking.py @@ -0,0 +1,20 @@ +from abc import ABC, abstractmethod + + +class ISpeakingController(ABC): + + @abstractmethod + async def get_speaking_part(self, task: int, topic: str, second_topic: str, difficulty: str): + pass + + @abstractmethod + async def get_avatars(self): + pass + + @abstractmethod + async def generate_video(self, text: str, avatar: str): + pass + + @abstractmethod + async def poll_video(self, vid_id: str): + pass diff --git a/ielts_be/controllers/abc/exam/writing.py b/ielts_be/controllers/abc/exam/writing.py new file mode 100644 index 0000000..4fc9e0e --- /dev/null +++ b/ielts_be/controllers/abc/exam/writing.py @@ -0,0 +1,14 @@ +from abc import ABC, abstractmethod + +from fastapi.datastructures import UploadFile + + +class IWritingController(ABC): + + @abstractmethod + async def get_writing_task_general_question(self, task: int, topic: str, difficulty: str): + pass + + @abstractmethod + async def get_writing_task_academic_question(self, task: int, attachment: UploadFile, difficulty: str): + pass diff --git a/ielts_be/controllers/abc/grade.py b/ielts_be/controllers/abc/grade.py new file mode 100644 index 0000000..f0d461e --- /dev/null +++ b/ielts_be/controllers/abc/grade.py @@ -0,0 +1,30 @@ +from abc import ABC, abstractmethod +from typing import Dict +from fastapi import BackgroundTasks +from fastapi.datastructures import FormData + + +class IGradeController(ABC): + + @abstractmethod + async def grade_writing_task( + self, + task: int, dto: any, + background_tasks: BackgroundTasks + ): + pass + + @abstractmethod + async def grade_speaking_task( + self, task: int, form: FormData, background_tasks: BackgroundTasks + ): + pass + + @abstractmethod + async def grade_short_answers(self, data: Dict): + pass + + @abstractmethod + async def grading_summary(self, data: Dict): + pass + diff --git a/ielts_be/controllers/abc/training.py b/ielts_be/controllers/abc/training.py new file mode 100644 index 0000000..f044ddf --- /dev/null +++ b/ielts_be/controllers/abc/training.py @@ -0,0 +1,12 @@ +from abc import ABC, abstractmethod + + +class ITrainingController(ABC): + + @abstractmethod + async def fetch_tips(self, data): + pass + + @abstractmethod + async def get_training_content(self, data): + pass diff --git a/ielts_be/controllers/abc/user.py b/ielts_be/controllers/abc/user.py new file mode 100644 index 0000000..3d37d37 --- /dev/null +++ b/ielts_be/controllers/abc/user.py @@ -0,0 +1,8 @@ +from abc import ABC, abstractmethod + + +class IUserController(ABC): + + @abstractmethod + async def batch_import(self, batch): + pass diff --git a/ielts_be/controllers/impl/__init__.py b/ielts_be/controllers/impl/__init__.py new file mode 100644 index 0000000..865c438 --- /dev/null +++ b/ielts_be/controllers/impl/__init__.py @@ -0,0 +1,12 @@ +from .training import TrainingController +from .grade import GradeController +from .user import UserController +from .exam import * + +__all__ = [ + "TrainingController", + "GradeController", + "UserController" +] + +__all__.extend(exam.__all__) diff --git a/ielts_be/controllers/impl/exam/__init__.py b/ielts_be/controllers/impl/exam/__init__.py new file mode 100644 index 0000000..71c35da --- /dev/null +++ b/ielts_be/controllers/impl/exam/__init__.py @@ -0,0 +1,13 @@ +from .level import LevelController +from .listening import ListeningController +from .reading import ReadingController +from .speaking import SpeakingController +from .writing import WritingController + +__all__ = [ + "LevelController", + "ListeningController", + "ReadingController", + "SpeakingController", + "WritingController", +] diff --git a/ielts_be/controllers/impl/exam/level.py b/ielts_be/controllers/impl/exam/level.py new file mode 100644 index 0000000..927e51a --- /dev/null +++ b/ielts_be/controllers/impl/exam/level.py @@ -0,0 +1,26 @@ +from fastapi import UploadFile +from typing import Dict, Optional + +from ielts_be.controllers import ILevelController +from ielts_be.services import ILevelService + + +class LevelController(ILevelController): + + def __init__(self, level_service: ILevelService): + self._service = level_service + + async def generate_exercises(self, dto): + return await self._service.generate_exercises(dto) + + async def get_level_exam(self): + return await self._service.get_level_exam() + + async def get_level_utas(self): + return await self._service.get_level_utas() + + async def upload_level(self, exercises: UploadFile, solutions: Optional[UploadFile] = None): + return await self._service.upload_level(exercises, solutions) + + async def get_custom_level(self, data: Dict): + return await self._service.get_custom_level(data) diff --git a/ielts_be/controllers/impl/exam/listening.py b/ielts_be/controllers/impl/exam/listening.py new file mode 100644 index 0000000..2be5cfb --- /dev/null +++ b/ielts_be/controllers/impl/exam/listening.py @@ -0,0 +1,46 @@ +import io + +from fastapi import UploadFile +from fastapi.responses import StreamingResponse, Response + +from ielts_be.controllers import IListeningController +from ielts_be.services import IListeningService +from ielts_be.dtos.listening import GenerateListeningExercises, Dialog + + +class ListeningController(IListeningController): + + def __init__(self, listening_service: IListeningService): + self._service = listening_service + + async def import_exam(self, exercises: UploadFile, solutions: UploadFile = None): + res = await self._service.import_exam(exercises, solutions) + if not res: + return Response(status_code=500) + else: + return res + + async def generate_listening_dialog(self, section_id: int, topic: str, difficulty: str): + return await self._service.generate_listening_dialog(section_id, topic, difficulty) + + async def get_listening_question(self, dto: GenerateListeningExercises): + return await self._service.get_listening_question(dto) + + async def generate_mp3(self, dto: Dialog): + mp3 = await self._service.generate_mp3(dto) + + return StreamingResponse( + content=io.BytesIO(mp3), + media_type="audio/mpeg", + headers={ + "Content-Type": "audio/mpeg", + "Content-Disposition": "attachment;filename=speech.mp3" + } + ) + + async def transcribe_dialog(self, audio: UploadFile): + dialog = await self._service.transcribe_dialog(audio) + if dialog is None: + return Response(status_code=500) + + return dialog diff --git a/ielts_be/controllers/impl/exam/reading.py b/ielts_be/controllers/impl/exam/reading.py new file mode 100644 index 0000000..d338d5e --- /dev/null +++ b/ielts_be/controllers/impl/exam/reading.py @@ -0,0 +1,28 @@ +import logging +from typing import Optional + +from fastapi import UploadFile, Response + +from ielts_be.controllers import IReadingController +from ielts_be.services import IReadingService +from ielts_be.dtos.reading import ReadingDTO + + +class ReadingController(IReadingController): + + def __init__(self, reading_service: IReadingService): + self._service = reading_service + self._logger = logging.getLogger(__name__) + + async def import_exam(self, exercises: UploadFile, solutions: UploadFile = None): + res = await self._service.import_exam(exercises, solutions) + if not res: + return Response(status_code=500) + else: + return res + + async def generate_reading_passage(self, passage: int, topic: Optional[str], word_count: Optional[int]): + return await self._service.generate_reading_passage(passage, topic, word_count) + + async def generate_reading_exercises(self, dto: ReadingDTO): + return await self._service.generate_reading_exercises(dto) diff --git a/ielts_be/controllers/impl/exam/speaking.py b/ielts_be/controllers/impl/exam/speaking.py new file mode 100644 index 0000000..0ca895d --- /dev/null +++ b/ielts_be/controllers/impl/exam/speaking.py @@ -0,0 +1,24 @@ +import logging + +from ielts_be.controllers import ISpeakingController +from ielts_be.services import ISpeakingService, IVideoGeneratorService + + +class SpeakingController(ISpeakingController): + + def __init__(self, speaking_service: ISpeakingService, vid_gen: IVideoGeneratorService): + self._service = speaking_service + self._vid_gen = vid_gen + self._logger = logging.getLogger(__name__) + + async def get_speaking_part(self, task: int, topic: str, second_topic: str, difficulty: str): + return await self._service.get_speaking_part(task, topic, second_topic, difficulty) + + async def get_avatars(self): + return await self._vid_gen.get_avatars() + + async def generate_video(self, text: str, avatar: str): + return await self._vid_gen.create_video(text, avatar) + + async def poll_video(self, vid_id: str): + return await self._vid_gen.poll_status(vid_id) diff --git a/ielts_be/controllers/impl/exam/writing.py b/ielts_be/controllers/impl/exam/writing.py new file mode 100644 index 0000000..5fdf19b --- /dev/null +++ b/ielts_be/controllers/impl/exam/writing.py @@ -0,0 +1,18 @@ +from fastapi import UploadFile, HTTPException + +from ielts_be.controllers import IWritingController +from ielts_be.services import IWritingService + + +class WritingController(IWritingController): + + def __init__(self, writing_service: IWritingService): + self._service = writing_service + + async def get_writing_task_general_question(self, task: int, topic: str, difficulty: str): + return await self._service.get_writing_task_general_question(task, topic, difficulty) + + async def get_writing_task_academic_question(self, task: int, attachment: UploadFile, difficulty: str): + if attachment.content_type not in ['image/jpeg', 'image/png']: + raise HTTPException(status_code=400, detail="Invalid file type. Only JPEG and PNG allowed.") + return await self._service.get_writing_task_academic_question(task, attachment, difficulty) diff --git a/ielts_be/controllers/impl/grade.py b/ielts_be/controllers/impl/grade.py new file mode 100644 index 0000000..f4c70b6 --- /dev/null +++ b/ielts_be/controllers/impl/grade.py @@ -0,0 +1,113 @@ +import logging +from typing import Dict + +from fastapi import BackgroundTasks, Response, HTTPException +from fastapi.datastructures import FormData + +from ielts_be.controllers import IGradeController +from ielts_be.services import IGradeService, IEvaluationService +from ielts_be.dtos.evaluation import EvaluationType +from ielts_be.dtos.speaking import GradeSpeakingItem +from ielts_be.dtos.writing import WritingGradeTaskDTO + +class GradeController(IGradeController): + + def __init__( + self, + grade_service: IGradeService, + evaluation_service: IEvaluationService, + ): + self._service = grade_service + self._evaluation_service = evaluation_service + self._logger = logging.getLogger(__name__) + + async def grade_writing_task( + self, + task: int, dto: WritingGradeTaskDTO, background_tasks: BackgroundTasks + ): + await self._evaluation_service.create_evaluation( + dto.userId, dto.sessionId, dto.exerciseId, EvaluationType.WRITING, task + ) + + await self._evaluation_service.begin_evaluation( + dto.userId, dto.sessionId, task, dto.exerciseId, EvaluationType.WRITING, dto, background_tasks + ) + + return Response(status_code=200) + + async def grade_speaking_task(self, task: int, form: FormData, background_tasks: BackgroundTasks): + answers: Dict[int, Dict] = {} + user_id = form.get("userId") + session_id = form.get("sessionId") + exercise_id = form.get("exerciseId") + + if not session_id or not exercise_id: + raise HTTPException( + status_code=400, + detail="Fields sessionId and exerciseId are required!" + ) + + for key, value in form.items(): + if '_' not in key: + continue + + field_name, index = key.rsplit('_', 1) + index = int(index) + + if index not in answers: + answers[index] = {} + + if field_name == 'question': + answers[index]['question'] = value + elif field_name == 'audio': + answers[index]['answer'] = value + + for i, answer in answers.items(): + if 'question' not in answer or 'answer' not in answer: + raise HTTPException( + status_code=400, + detail=f"Incomplete data for answer {i}. Both question and audio required." + ) + + items = [ + GradeSpeakingItem( + question=answers[i]['question'], + answer=answers[i]['answer'] + ) + for i in sorted(answers.keys()) + ] + + ex_type = EvaluationType.SPEAKING if task == 2 else EvaluationType.SPEAKING_INTERACTIVE + + await self._evaluation_service.create_evaluation( + user_id, session_id, exercise_id, ex_type, task + ) + + await self._evaluation_service.begin_evaluation( + user_id, session_id, task, exercise_id, ex_type, items, background_tasks + ) + + return Response(status_code=200) + + async def grade_short_answers(self, data: Dict): + return await self._service.grade_short_answers(data) + + async def grading_summary(self, data: Dict): + section_keys = ['reading', 'listening', 'writing', 'speaking', 'level'] + extracted_sections = self._extract_existing_sections_from_body(data, section_keys) + return await self._service.calculate_grading_summary(extracted_sections) + + @staticmethod + def _extract_existing_sections_from_body(my_dict, keys_to_extract): + if 'sections' in my_dict and isinstance(my_dict['sections'], list) and len(my_dict['sections']) > 0: + return list( + filter( + lambda item: + 'code' in item and + item['code'] in keys_to_extract and + 'grade' in item and + 'name' in item, + my_dict['sections'] + ) + ) + diff --git a/ielts_be/controllers/impl/training.py b/ielts_be/controllers/impl/training.py new file mode 100644 index 0000000..951e24a --- /dev/null +++ b/ielts_be/controllers/impl/training.py @@ -0,0 +1,17 @@ +from typing import Dict + +from ielts_be.controllers import ITrainingController +from ielts_be.services import ITrainingService +from ielts_be.dtos.training import FetchTipsDTO + + +class TrainingController(ITrainingController): + + def __init__(self, training_service: ITrainingService): + self._service = training_service + + async def fetch_tips(self, data: FetchTipsDTO): + return await self._service.fetch_tips(data.context, data.question, data.answer, data.correct_answer) + + async def get_training_content(self, data: Dict): + return await self._service.get_training_content(data) diff --git a/ielts_be/controllers/impl/user.py b/ielts_be/controllers/impl/user.py new file mode 100644 index 0000000..9802e5d --- /dev/null +++ b/ielts_be/controllers/impl/user.py @@ -0,0 +1,12 @@ +from ielts_be.controllers import IUserController +from ielts_be.services import IUserService +from ielts_be.dtos.user_batch import BatchUsersDTO + + +class UserController(IUserController): + + def __init__(self, user_service: IUserService): + self._service = user_service + + async def batch_import(self, batch: BatchUsersDTO): + return await self._service.batch_users(batch) diff --git a/ielts_be/dtos/__init__.py b/ielts_be/dtos/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/ielts_be/dtos/evaluation.py b/ielts_be/dtos/evaluation.py new file mode 100644 index 0000000..bfdc37d --- /dev/null +++ b/ielts_be/dtos/evaluation.py @@ -0,0 +1,18 @@ +from enum import Enum +from typing import Dict, Optional +from pydantic import BaseModel + + +class EvaluationType(str, Enum): + WRITING = "writing" + SPEAKING_INTERACTIVE = "speaking_interactive" + SPEAKING = "speaking" + +class EvaluationRecord(BaseModel): + id: str + session_id: str + exercise_id: str + type: EvaluationType + task: int + status: str = "pending" + result: Optional[Dict] = None diff --git a/ielts_be/dtos/exams/__init__.py b/ielts_be/dtos/exams/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/modules/upload_level/exam_dtos.py b/ielts_be/dtos/exams/level.py similarity index 85% rename from modules/upload_level/exam_dtos.py rename to ielts_be/dtos/exams/level.py index 656caa2..f5618cf 100644 --- a/modules/upload_level/exam_dtos.py +++ b/ielts_be/dtos/exams/level.py @@ -1,57 +1,60 @@ -from pydantic import BaseModel, Field -from typing import List, Dict, Union, Optional, Any -from uuid import uuid4, UUID - - -class Option(BaseModel): - id: str - text: str - - -class MultipleChoiceQuestion(BaseModel): - id: str - prompt: str - variant: str = "text" - solution: str - options: List[Option] - - -class MultipleChoiceExercise(BaseModel): - id: UUID = Field(default_factory=uuid4) - type: str = "multipleChoice" - prompt: str = "Select the appropriate option." - questions: List[MultipleChoiceQuestion] - userSolutions: List = Field(default_factory=list) - - -class FillBlanksWord(BaseModel): - id: str - options: Dict[str, str] - - -class FillBlanksSolution(BaseModel): - id: str - solution: str - - -class FillBlanksExercise(BaseModel): - id: UUID = Field(default_factory=uuid4) - type: str = "fillBlanks" - variant: str = "mc" - prompt: str = "Click a blank to select the appropriate word for it." - text: str - solutions: List[FillBlanksSolution] - words: List[FillBlanksWord] - userSolutions: List = Field(default_factory=list) - - -Exercise = Union[MultipleChoiceExercise, FillBlanksExercise] - - -class Part(BaseModel): - exercises: List[Exercise] - context: Optional[str] = Field(default=None) - - -class Exam(BaseModel): - parts: List[Part] +from pydantic import BaseModel, Field +from typing import List, Dict, Union, Optional +from uuid import uuid4, UUID + + +class Option(BaseModel): + id: str + text: str + + +class MultipleChoiceQuestion(BaseModel): + id: str + prompt: str + variant: str = "text" + solution: str + options: List[Option] + + +class MultipleChoiceExercise(BaseModel): + id: UUID = Field(default_factory=uuid4) + type: str = "multipleChoice" + prompt: str = "Select the appropriate option." + questions: List[MultipleChoiceQuestion] + userSolutions: List = Field(default_factory=list) + + +class FillBlanksWord(BaseModel): + id: str + options: Dict[str, str] + + +class FillBlanksSolution(BaseModel): + id: str + solution: str + + +class FillBlanksExercise(BaseModel): + id: UUID = Field(default_factory=uuid4) + type: str = "fillBlanks" + variant: str = "mc" + prompt: str = "Click a blank to select the appropriate word for it." + text: str + solutions: List[FillBlanksSolution] + words: List[FillBlanksWord] + userSolutions: List = Field(default_factory=list) + + +Exercise = Union[MultipleChoiceExercise, FillBlanksExercise] + +class Text(BaseModel): + content: str + title: str + +class Part(BaseModel): + exercises: List[Exercise] + text: Optional[Text] = Field(default=None) + + +class Exam(BaseModel): + parts: List[Part] diff --git a/ielts_be/dtos/exams/listening.py b/ielts_be/dtos/exams/listening.py new file mode 100644 index 0000000..c8464c2 --- /dev/null +++ b/ielts_be/dtos/exams/listening.py @@ -0,0 +1,92 @@ +from enum import Enum +from pydantic import BaseModel, Field +from typing import List, Union, Optional, Literal, Any +from uuid import uuid4, UUID + +from ielts_be.dtos.listening import Dialog + + +class ExerciseBase(BaseModel): + id: UUID = Field(default_factory=uuid4) + type: str + prompt: str + + +class TrueFalseSolution(str, Enum): + TRUE = "true" + FALSE = "false" + NOT_GIVEN = "not_given" + +class TrueFalseQuestions(BaseModel): + prompt: str + solution: TrueFalseSolution + id: str + + +class TrueFalseExercise(ExerciseBase): + type: Literal["trueFalse"] + questions: List[TrueFalseQuestions] + + +class MCOption(BaseModel): + id: str + text: str + + +class MCQuestion(BaseModel): + id: str + prompt: str + options: List[MCOption] + solution: str + variant: str = "text" + + +class MultipleChoiceExercise(ExerciseBase): + type: Literal["multipleChoice"] + questions: List[MCQuestion] + + +class WriteBlankQuestion(BaseModel): + id: str + prompt: str + solution: List[str] + +class WriteBlanksVariant(str, Enum): + QUESTIONS = "questions" + FILL = "fill" + FORM = "form" + +class WriteBlanksQuestionExercise(ExerciseBase): + type: Literal["writeBlanks"] + maxWords: int + questions: List[WriteBlankQuestion] + variant: WriteBlanksVariant + +class WriteBlankSolution(BaseModel): + id: str + solution: List[str] + +class WriteBlanksExercise(ExerciseBase): + type: Literal["writeBlanks"] + maxWords: int + solutions: List[WriteBlankSolution] + text: str + variant: Optional[WriteBlanksVariant] + + +ListeningExercise = Union[ + TrueFalseExercise, + MultipleChoiceExercise, + WriteBlanksExercise +] + + +class ListeningSection(BaseModel): + exercises: List[ListeningExercise] + script: Optional[Union[List[Any] | str]] = None + + +class ListeningExam(BaseModel): + module: str = "listening" + minTimer: Optional[int] + parts: List[ListeningSection] \ No newline at end of file diff --git a/ielts_be/dtos/exams/reading.py b/ielts_be/dtos/exams/reading.py new file mode 100644 index 0000000..1390b94 --- /dev/null +++ b/ielts_be/dtos/exams/reading.py @@ -0,0 +1,107 @@ +from enum import Enum + +from pydantic import BaseModel, Field +from typing import List, Union, Optional +from uuid import uuid4, UUID + + +class WriteBlanksSolution(BaseModel): + id: str + solution: List[str] + +class WriteBlanksExercise(BaseModel): + id: UUID = Field(default_factory=uuid4) + type: str = "writeBlanks" + maxWords: int + solutions: List[WriteBlanksSolution] + text: str + prompt: str + + +class MatchSentencesOption(BaseModel): + id: str + sentence: str + +class MatchSentencesSentence(MatchSentencesOption): + solution: str + +class MatchSentencesVariant(str, Enum): + HEADING = "heading" + IDEAMATCH = "ideaMatch" + +class MCOption(BaseModel): + id: str + text: str + +class MCQuestion(BaseModel): + id: str + prompt: str + options: List[MCOption] + solution: str + variant: Optional[str] = None + +class MultipleChoice(BaseModel): + questions: List[MCQuestion] + type: str + prompt: str + + +class MatchSentencesExercise(BaseModel): + options: List[MatchSentencesOption] + sentences: List[MatchSentencesSentence] + type: str = "matchSentences" + variant: MatchSentencesVariant + prompt: str + +class TrueFalseSolution(str, Enum): + TRUE = "true" + FALSE = "false" + NOT_GIVEN = "not_given" + +class TrueFalseQuestions(BaseModel): + prompt: str + solution: TrueFalseSolution + id: str + +class TrueFalseExercise(BaseModel): + id: UUID = Field(default_factory=uuid4) + questions: List[TrueFalseQuestions] + type: str = "trueFalse" + prompt: str = "Do the following statements agree with the information given in the Reading Passage?" + + + +class FillBlanksSolution(BaseModel): + id: str + solution: str + +class FillBlanksWord(BaseModel): + letter: str + word: str + +class FillBlanksExercise(BaseModel): + id: UUID = Field(default_factory=uuid4) + solutions: List[FillBlanksSolution] + text: str + type: str = "fillBlanks" + words: List[FillBlanksWord] + allowRepetition: bool = False + prompt: str + +Exercise = Union[FillBlanksExercise, TrueFalseExercise, MatchSentencesExercise, WriteBlanksExercise, MultipleChoice] + + +class Context(BaseModel): + title: str + content: str + +class Part(BaseModel): + exercises: List[Exercise] + text: Context + +class Exam(BaseModel): + id: UUID = Field(default_factory=uuid4) + module: str = "reading" + minTimer: int + isDiagnostic: bool = False + parts: List[Part] diff --git a/ielts_be/dtos/level.py b/ielts_be/dtos/level.py new file mode 100644 index 0000000..e95f843 --- /dev/null +++ b/ielts_be/dtos/level.py @@ -0,0 +1,18 @@ +from typing import List, Optional + +from pydantic import BaseModel + +from ielts_be.configs.constants import LevelExerciseType + + +class LevelExercises(BaseModel): + type: LevelExerciseType + quantity: int + text_size: Optional[int] = None + sa_qty: Optional[int] = None + mc_qty: Optional[int] = None + topic: Optional[str] = None + +class LevelExercisesDTO(BaseModel): + exercises: List[LevelExercises] + difficulty: Optional[str] = None diff --git a/ielts_be/dtos/listening.py b/ielts_be/dtos/listening.py new file mode 100644 index 0000000..8577d3f --- /dev/null +++ b/ielts_be/dtos/listening.py @@ -0,0 +1,34 @@ +import random +import uuid +from typing import List, Dict, Optional + +from pydantic import BaseModel, Field + +from ielts_be.configs.constants import MinTimers, EducationalContent, ListeningExerciseType + + +class SaveListeningDTO(BaseModel): + parts: List[Dict] + minTimer: int = MinTimers.LISTENING_MIN_TIMER_DEFAULT + difficulty: str = random.choice(EducationalContent.DIFFICULTIES) + id: str = str(uuid.uuid4()) + + +class ListeningExercises(BaseModel): + type: ListeningExerciseType + quantity: int + +class GenerateListeningExercises(BaseModel): + text: str + exercises: List[ListeningExercises] + difficulty: Optional[str] + +class ConversationPayload(BaseModel): + name: str + gender: str + text: str + voice: str + +class Dialog(BaseModel): + conversation: Optional[List[ConversationPayload]] = Field(default_factory=list) + monologue: Optional[str] = None diff --git a/ielts_be/dtos/reading.py b/ielts_be/dtos/reading.py new file mode 100644 index 0000000..2de9085 --- /dev/null +++ b/ielts_be/dtos/reading.py @@ -0,0 +1,17 @@ +import random +from typing import List, Optional + +from pydantic import BaseModel, Field + +from ielts_be.configs.constants import ReadingExerciseType, EducationalContent + +class ReadingExercise(BaseModel): + type: ReadingExerciseType + quantity: int + num_random_words: Optional[int] = Field(1) + max_words: Optional[int] = Field(3) + +class ReadingDTO(BaseModel): + text: str = Field(...) + exercises: List[ReadingExercise] = Field(...) + difficulty: str = Field(random.choice(EducationalContent.DIFFICULTIES)) diff --git a/modules/upload_level/sheet_dtos.py b/ielts_be/dtos/sheet.py similarity index 95% rename from modules/upload_level/sheet_dtos.py rename to ielts_be/dtos/sheet.py index 8efac82..68c3e16 100644 --- a/modules/upload_level/sheet_dtos.py +++ b/ielts_be/dtos/sheet.py @@ -1,29 +1,29 @@ -from pydantic import BaseModel -from typing import List, Dict, Union, Any, Optional - - -class Option(BaseModel): - id: str - text: str - - -class MultipleChoiceQuestion(BaseModel): - type: str = "multipleChoice" - id: str - prompt: str - variant: str = "text" - options: List[Option] - - -class FillBlanksWord(BaseModel): - type: str = "fillBlanks" - id: str - options: Dict[str, str] - - -Component = Union[MultipleChoiceQuestion, FillBlanksWord, Dict[str, Any]] - - -class Sheet(BaseModel): - batch: Optional[int] = None - components: List[Component] +from pydantic import BaseModel +from typing import List, Dict, Union, Any, Optional + + +class Option(BaseModel): + id: str + text: str + + +class MultipleChoiceQuestion(BaseModel): + type: str = "multipleChoice" + id: str + prompt: str + variant: str = "text" + options: List[Option] + + +class FillBlanksWord(BaseModel): + type: str = "fillBlanks" + id: str + options: Dict[str, str] + + +Component = Union[MultipleChoiceQuestion, FillBlanksWord, Dict[str, Any]] + + +class Sheet(BaseModel): + batch: Optional[int] = None + components: List[Component] diff --git a/ielts_be/dtos/speaking.py b/ielts_be/dtos/speaking.py new file mode 100644 index 0000000..d9c0906 --- /dev/null +++ b/ielts_be/dtos/speaking.py @@ -0,0 +1,11 @@ +from fastapi import UploadFile +from pydantic import BaseModel + + +class Video(BaseModel): + text: str + avatar: str + +class GradeSpeakingItem(BaseModel): + question: str + answer: UploadFile diff --git a/modules/training_content/dtos.py b/ielts_be/dtos/training.py similarity index 76% rename from modules/training_content/dtos.py rename to ielts_be/dtos/training.py index 2133f49..0b9c272 100644 --- a/modules/training_content/dtos.py +++ b/ielts_be/dtos/training.py @@ -1,29 +1,37 @@ -from pydantic import BaseModel -from typing import List - - -class QueryDTO(BaseModel): - category: str - text: str - - -class DetailsDTO(BaseModel): - exam_id: str - date: int - performance_comment: str - detailed_summary: str - - -class WeakAreaDTO(BaseModel): - area: str - comment: str - - -class TrainingContentDTO(BaseModel): - details: List[DetailsDTO] - weak_areas: List[WeakAreaDTO] - queries: List[QueryDTO] - - -class TipsDTO(BaseModel): - tip_ids: List[str] +from pydantic import BaseModel +from typing import List + + +class FetchTipsDTO(BaseModel): + context: str + question: str + answer: str + correct_answer: str + + +class QueryDTO(BaseModel): + category: str + text: str + + +class DetailsDTO(BaseModel): + exam_id: str + date: int + performance_comment: str + detailed_summary: str + + +class WeakAreaDTO(BaseModel): + area: str + comment: str + + +class TrainingContentDTO(BaseModel): + details: List[DetailsDTO] + weak_areas: List[WeakAreaDTO] + queries: List[QueryDTO] + + +class TipsDTO(BaseModel): + tip_ids: List[str] + diff --git a/ielts_be/dtos/user_batch.py b/ielts_be/dtos/user_batch.py new file mode 100644 index 0000000..2198f5f --- /dev/null +++ b/ielts_be/dtos/user_batch.py @@ -0,0 +1,35 @@ +import uuid +from typing import Optional + +from pydantic import BaseModel, Field + + +class DemographicInfo(BaseModel): + phone: str + passport_id: Optional[str] = None + country: Optional[str] = None + +class Entity(BaseModel): + id: str + role: str + + +class UserDTO(BaseModel): + id: uuid.UUID = Field(default_factory=uuid.uuid4) + email: str + name: str + type: str + passport_id: str + passwordHash: str + passwordSalt: str + groupName: Optional[str] = None + corporate: Optional[str] = None + studentID: Optional[str] = None + expiryDate: Optional[str] = None + demographicInformation: Optional[DemographicInfo] = None + entities: list[dict] = Field(default_factory=list) + + +class BatchUsersDTO(BaseModel): + makerID: str + users: list[UserDTO] diff --git a/ielts_be/dtos/video.py b/ielts_be/dtos/video.py new file mode 100644 index 0000000..af3c9af --- /dev/null +++ b/ielts_be/dtos/video.py @@ -0,0 +1,14 @@ +from enum import Enum +from typing import Optional + +from pydantic import BaseModel + +class TaskStatus(Enum): + STARTED = "STARTED" + IN_PROGRESS = "IN_PROGRESS" + COMPLETED = "COMPLETED" + ERROR = "ERROR" + +class Task(BaseModel): + status: TaskStatus + result: Optional[str] = None diff --git a/ielts_be/dtos/writing.py b/ielts_be/dtos/writing.py new file mode 100644 index 0000000..468820c --- /dev/null +++ b/ielts_be/dtos/writing.py @@ -0,0 +1,12 @@ +from typing import Optional + +from pydantic import BaseModel + + +class WritingGradeTaskDTO(BaseModel): + userId: str + sessionId: str + exerciseId: str + question: str + answer: str + attachment: Optional[str] = None diff --git a/ielts_be/exceptions/__init__.py b/ielts_be/exceptions/__init__.py new file mode 100644 index 0000000..c1305bb --- /dev/null +++ b/ielts_be/exceptions/__init__.py @@ -0,0 +1,6 @@ +from .exceptions import CustomException, UnauthorizedException + +__all__ = [ + "CustomException", + "UnauthorizedException" +] diff --git a/ielts_be/exceptions/exceptions.py b/ielts_be/exceptions/exceptions.py new file mode 100644 index 0000000..2141dd6 --- /dev/null +++ b/ielts_be/exceptions/exceptions.py @@ -0,0 +1,21 @@ +from http import HTTPStatus + + +class CustomException(Exception): + code = HTTPStatus.INTERNAL_SERVER_ERROR + error_code = HTTPStatus.INTERNAL_SERVER_ERROR + message = HTTPStatus.INTERNAL_SERVER_ERROR.description + + def __init__(self, message=None): + if message: + self.message = message + + +class UnauthorizedException(CustomException): + code = HTTPStatus.UNAUTHORIZED + error_code = HTTPStatus.UNAUTHORIZED + message = HTTPStatus.UNAUTHORIZED.description + +class TranscriptionException(CustomException): + code = HTTPStatus.INTERNAL_SERVER_ERROR + error_code = HTTPStatus.INTERNAL_SERVER_ERROR \ No newline at end of file diff --git a/ielts_be/helpers/__init__.py b/ielts_be/helpers/__init__.py new file mode 100644 index 0000000..e628b0d --- /dev/null +++ b/ielts_be/helpers/__init__.py @@ -0,0 +1,11 @@ +from .file import FileHelper +from .text import TextHelper +from .token_counter import count_tokens +from .exercises import ExercisesHelper + +__all__ = [ + "FileHelper", + "TextHelper", + "count_tokens", + "ExercisesHelper", +] diff --git a/ielts_be/helpers/exercises.py b/ielts_be/helpers/exercises.py new file mode 100644 index 0000000..662d960 --- /dev/null +++ b/ielts_be/helpers/exercises.py @@ -0,0 +1,249 @@ +import queue +import random +import re +import string +from wonderwords import RandomWord + +from .text import TextHelper + + +class ExercisesHelper: + + @staticmethod + def divide_number_into_parts(number, parts): + if number < parts: + return None + + part_size = number // parts + remaining = number % parts + + q = queue.Queue() + + for i in range(parts): + if i < remaining: + q.put(part_size + 1) + else: + q.put(part_size) + + return q + + @staticmethod + def fix_exercise_ids(exercise, start_id): + # Initialize the starting ID for the first exercise + current_id = start_id + + questions = exercise["questions"] + + # Iterate through questions and update the "id" value + for question in questions: + question["id"] = str(current_id) + current_id += 1 + + return exercise + + @staticmethod + def replace_first_occurrences_with_placeholders(text: str, words_to_replace: list, start_id): + for i, word in enumerate(words_to_replace, start=start_id): + # Create a case-insensitive regular expression pattern + pattern = re.compile(r'\b' + re.escape(word) + r'\b', re.IGNORECASE) + placeholder = '{{' + str(i) + '}}' + text = pattern.sub(placeholder, text, 1) + return text + + @staticmethod + def replace_first_occurrences_with_placeholders_notes(notes: list, words_to_replace: list, start_id): + replaced_notes = [] + for i, note in enumerate(notes, start=0): + word = words_to_replace[i] + pattern = re.compile(r'\b' + re.escape(word) + r'\b', re.IGNORECASE) + placeholder = '{{' + str(start_id + i) + '}}' + note = pattern.sub(placeholder, note, 1) + replaced_notes.append(note) + return replaced_notes + + @staticmethod + def add_random_words_and_shuffle(word_array, num_random_words): + r = RandomWord() + random_words_selected = r.random_words(num_random_words) + + combined_array = word_array + random_words_selected + + random.shuffle(combined_array) + + result = [] + for i, word in enumerate(combined_array): + letter = chr(65 + i) # chr(65) is 'A' + result.append({"letter": letter, "word": word}) + + return result + + @staticmethod + def fillblanks_build_solutions_array(words, start_id): + solutions = [] + for i, word in enumerate(words, start=start_id): + solutions.append( + { + "id": str(i), + "solution": word + } + ) + return solutions + + @staticmethod + def remove_excess_questions(questions: [], quantity): + count_true = 0 + result = [] + + for item in reversed(questions): + if item.get('solution') == 'true' and count_true < quantity: + count_true += 1 + else: + result.append(item) + + result.reverse() + return result + + @staticmethod + def build_write_blanks_text(questions: [], start_id): + result = "" + for i, q in enumerate(questions, start=start_id): + placeholder = '{{' + str(i) + '}}' + result = result + q["question"] + placeholder + "\\n" + return result + + @staticmethod + def build_write_blanks_text_form(form: [], start_id): + result = "" + replaced_words = [] + for i, entry in enumerate(form, start=start_id): + placeholder = '{{' + str(i) + '}}' + # Use regular expression to find the string after ':' + match = re.search(r'(?<=:)\s*(.*)', entry) + # Extract the matched string + original_string = match.group(1) + # Split the string into words + words = re.findall(r'\b\w+\b', original_string) + # Remove words with only one letter + filtered_words = [word for word in words if len(word) > 1] + # Choose a random word from the list of words + selected_word = random.choice(filtered_words) + pattern = re.compile(r'\b' + re.escape(selected_word) + r'\b', re.IGNORECASE) + + # Replace the chosen word with the placeholder + replaced_string = pattern.sub(placeholder, original_string, 1) + # Construct the final replaced string + replaced_string = entry.replace(original_string, replaced_string) + + result = result + replaced_string + "\\n" + # Save the replaced word or use it as needed + # For example, you can save it to a file or a list + replaced_words.append(selected_word) + return result, replaced_words + + @staticmethod + def build_write_blanks_solutions(questions: [], start_id): + solutions = [] + for i, q in enumerate(questions, start=start_id): + solution = [q["possible_answers"]] if isinstance(q["possible_answers"], str) else q["possible_answers"] + + solutions.append( + { + "id": str(i), + "solution": solution + } + ) + return solutions + + @staticmethod + def build_write_blanks_solutions_listening(words: [], start_id): + solutions = [] + for i, word in enumerate(words, start=start_id): + solution = [word] if isinstance(word, str) else word + + solutions.append( + { + "id": str(i), + "solution": solution + } + ) + return solutions + + @staticmethod + def answer_word_limit_ok(question): + # Check if any option in any solution has more than three words + return not any( + len(option.split()) > 3 + for solution in question["solutions"] + for option in solution["solution"] + ) + + @staticmethod + def assign_letters_to_paragraphs(paragraphs): + result = [] + letters = iter(string.ascii_uppercase) + for paragraph in paragraphs.split("\n\n"): + if TextHelper.has_x_words(paragraph, 10): + result.append({'paragraph': paragraph.strip(), 'letter': next(letters)}) + return result + + @staticmethod + def contains_empty_dict(arr): + return any(elem == {} for elem in arr) + + @staticmethod + def fix_writing_overall(overall: float, task_response: dict): + grades = [category["grade"] for category in task_response.values()] + + if overall > max(grades) or overall < min(grades): + total_sum = sum(grades) + average = total_sum / len(grades) + rounded_average = round(average, 0) + return rounded_average + + return overall + + @staticmethod + def build_options(ideas): + options = [] + letters = iter(string.ascii_uppercase) + for idea in ideas: + options.append({ + "id": next(letters), + "sentence": idea["from"] + }) + return options + + @staticmethod + def build_sentences(ideas, start_id): + sentences = [] + letters = iter(string.ascii_uppercase) + for idea in ideas: + sentences.append({ + "solution": next(letters), + "sentence": idea["idea"] + }) + + random.shuffle(sentences) + for i, sentence in enumerate(sentences, start=start_id): + sentence["id"] = i + return sentences + + @staticmethod + def randomize_mc_options_order(questions): + option_ids = ['A', 'B', 'C', 'D'] + + for question in questions: + # Store the original solution text + original_solution_text = next( + option['text'] for option in question['options'] if option['id'] == question['solution']) + + # Shuffle the options + random.shuffle(question['options']) + + # Update the option ids and find the new solution id + for idx, option in enumerate(question['options']): + option['id'] = option_ids[idx] + if option['text'] == original_solution_text: + question['solution'] = option['id'] + + return questions diff --git a/modules/helper/file_helper.py b/ielts_be/helpers/file.py similarity index 60% rename from modules/helper/file_helper.py rename to ielts_be/helpers/file.py index 2c97faa..40403b8 100644 --- a/modules/helper/file_helper.py +++ b/ielts_be/helpers/file.py @@ -1,97 +1,125 @@ -import base64 -import io -import os -import shutil -import subprocess -import uuid -from typing import Optional, Tuple - -import numpy as np -import pypandoc -from PIL import Image - - -class FileHelper: - - # Supposedly pandoc covers a wide range of file extensions only tested with docx - @staticmethod - def convert_file_to_pdf(input_path: str, output_path: str): - pypandoc.convert_file(input_path, 'pdf', outputfile=output_path, extra_args=[ - '-V', 'geometry:paperwidth=5.5in', - '-V', 'geometry:paperheight=8.5in', - '-V', 'geometry:margin=0.5in', - '-V', 'pagestyle=empty' - ]) - - @staticmethod - def convert_file_to_html(input_path: str, output_path: str): - pypandoc.convert_file(input_path, 'html', outputfile=output_path) - - @staticmethod - def pdf_to_png(path_id: str): - to_png = f"pdftoppm -png exercises.pdf page" - result = subprocess.run(to_png, shell=True, cwd=f'./tmp/{path_id}', capture_output=True, text=True) - if result.returncode != 0: - raise Exception( - f"Couldn't convert pdf to png. Failed to run command '{to_png}' -> ```cmd {result.stderr}```") - - @staticmethod - def is_page_blank(image_bytes: bytes, image_threshold=10) -> bool: - with Image.open(io.BytesIO(image_bytes)) as img: - img_gray = img.convert('L') - img_array = np.array(img_gray) - non_white_pixels = np.sum(img_array < 255) - - return non_white_pixels <= image_threshold - - @classmethod - def _encode_image(cls, image_path: str, image_threshold=10) -> Optional[str]: - with open(image_path, "rb") as image_file: - image_bytes = image_file.read() - - if cls.is_page_blank(image_bytes, image_threshold): - return None - - return base64.b64encode(image_bytes).decode('utf-8') - - @classmethod - def b64_pngs(cls, path_id: str, files: list[str]): - png_messages = [] - for filename in files: - b64_string = cls._encode_image(os.path.join(f'./tmp/{path_id}', filename)) - if b64_string: - png_messages.append({ - "type": "image_url", - "image_url": { - "url": f"data:image/png;base64,{b64_string}" - } - }) - return png_messages - - @staticmethod - def remove_directory(path): - try: - if os.path.exists(path): - if os.path.isdir(path): - shutil.rmtree(path) - except Exception as e: - print(f"An error occurred while trying to remove {path}: {str(e)}") - - @staticmethod - def remove_file(file_path): - try: - if os.path.exists(file_path): - if os.path.isfile(file_path): - os.remove(file_path) - except Exception as e: - print(f"An error occurred while trying to remove the file {file_path}: {str(e)}") - - @staticmethod - def save_upload(file) -> Tuple[str, str]: - ext = file.filename.split('.')[-1] - path_id = str(uuid.uuid4()) - os.makedirs(f'./tmp/{path_id}', exist_ok=True) - - tmp_filename = f'./tmp/{path_id}/uploaded.{ext}' - file.save(tmp_filename) - return ext, path_id +import base64 +import io +import os +import shutil +import subprocess +import uuid +import datetime +from pathlib import Path +from typing import Optional, Tuple + +import aiofiles +import numpy as np +import pypandoc +from PIL import Image +from fastapi import UploadFile + + +class FileHelper: + + @staticmethod + def delete_files_older_than_one_day(directory: str): + current_time = datetime.datetime.now() + + for entry in os.scandir(directory): + if entry.is_file(): + file_path = Path(entry) + file_name = file_path.name + file_modified_time = datetime.datetime.fromtimestamp(file_path.stat().st_mtime) + time_difference = current_time - file_modified_time + if time_difference.days > 1 and "placeholder" not in file_name: + file_path.unlink() + print(f"Deleted file: {file_path}") + + # Supposedly pandoc covers a wide range of file extensions only tested with docx + @staticmethod + def convert_file_to_pdf(input_path: str, output_path: str): + pypandoc.convert_file(input_path, 'pdf', outputfile=output_path, extra_args=[ + '-V', 'geometry:paperwidth=5.5in', + '-V', 'geometry:paperheight=8.5in', + '-V', 'geometry:margin=0.5in', + '-V', 'pagestyle=empty' + ]) + + @staticmethod + def convert_file_to_html(input_path: str, output_path: str): + pypandoc.convert_file(input_path, 'html', outputfile=output_path) + + @staticmethod + def pdf_to_png(path_id: str): + to_png = f"pdftoppm -png exercises.pdf page" + result = subprocess.run(to_png, shell=True, cwd=f'./tmp/{path_id}', capture_output=True, text=True) + if result.returncode != 0: + raise Exception( + f"Couldn't convert pdf to png. Failed to run command '{to_png}' -> ```cmd {result.stderr}```") + + @staticmethod + def is_page_blank(image_bytes: bytes, image_threshold=10) -> bool: + with Image.open(io.BytesIO(image_bytes)) as img: + img_gray = img.convert('L') + img_array = np.array(img_gray) + non_white_pixels = np.sum(img_array < 255) + + return non_white_pixels <= image_threshold + + @classmethod + async def _encode_image(cls, image_path: str, image_threshold=10) -> Optional[str]: + async with aiofiles.open(image_path, "rb") as image_file: + image_bytes = await image_file.read() + + if cls.is_page_blank(image_bytes, image_threshold): + return None + + return base64.b64encode(image_bytes).decode('utf-8') + + @classmethod + async def b64_pngs(cls, path_id: str, files: list[str]): + png_messages = [] + for filename in files: + b64_string = await cls._encode_image(os.path.join(f'./tmp/{path_id}', filename)) + if b64_string: + png_messages.append({ + "type": "image_url", + "image_url": { + "url": f"data:image/png;base64,{b64_string}" + } + }) + return png_messages + + @staticmethod + def remove_directory(path): + try: + if os.path.exists(path): + if os.path.isdir(path): + shutil.rmtree(path) + except Exception as e: + print(f"An error occurred while trying to remove {path}: {str(e)}") + + @staticmethod + def remove_file(file_path): + try: + if os.path.exists(file_path): + if os.path.isfile(file_path): + os.remove(file_path) + except Exception as e: + print(f"An error occurred while trying to remove the file {file_path}: {str(e)}") + + @staticmethod + async def save_upload(file: UploadFile, name: str = "upload", path_id: str = None) -> Tuple[str, str]: + ext = file.filename.split('.')[-1] + path_id = str(uuid.uuid4()) if path_id is None else path_id + os.makedirs(f'./tmp/{path_id}', exist_ok=True) + + tmp_filename = f'./tmp/{path_id}/{name}.{ext}' + file_bytes: bytes = await file.read() + + async with aiofiles.open(tmp_filename, 'wb') as file: + await file.write(file_bytes) + + return ext, path_id + + @staticmethod + async def encode_image(image_path: str) -> str: + async with aiofiles.open(image_path, "rb") as image_file: + img = await image_file.read() + return base64.b64encode(img).decode('utf-8') diff --git a/ielts_be/helpers/text.py b/ielts_be/helpers/text.py new file mode 100644 index 0000000..d945438 --- /dev/null +++ b/ielts_be/helpers/text.py @@ -0,0 +1,28 @@ +from nltk.corpus import words + + +class TextHelper: + + @classmethod + def has_words(cls, text: str): + if not cls._has_common_words(text): + return False + english_words = set(words.words()) + words_in_input = text.split() + return any(word.lower() in english_words for word in words_in_input) + + @classmethod + def has_x_words(cls, text: str, quantity): + if not cls._has_common_words(text): + return False + english_words = set(words.words()) + words_in_input = text.split() + english_word_count = sum(1 for word in words_in_input if word.lower() in english_words) + return english_word_count >= quantity + + @staticmethod + def _has_common_words(text: str): + english_words = {"the", "be", "to", "of", "and", "a", "in", "that", "have", "i"} + words_in_input = text.split() + english_word_count = sum(1 for word in words_in_input if word.lower() in english_words) + return english_word_count >= 10 diff --git a/helper/token_counter.py b/ielts_be/helpers/token_counter.py similarity index 93% rename from helper/token_counter.py rename to ielts_be/helpers/token_counter.py index 705e586..4eba977 100644 --- a/helper/token_counter.py +++ b/ielts_be/helpers/token_counter.py @@ -1,88 +1,89 @@ -# This is a work in progress. There are still bugs. Once it is production-ready this will become a full repo. - - -def count_tokens(text, model_name="gpt-3.5-turbo", debug=False): - """ - Count the number of tokens in a given text string without using the OpenAI API. - - This function tries three methods in the following order: - 1. tiktoken (preferred): Accurate token counting similar to the OpenAI API. - 2. nltk: Token counting using the Natural Language Toolkit library. - 3. split: Simple whitespace-based token counting as a fallback. - - Usage: - ------ - text = "Your text here" - result = count_tokens(text, model_name="gpt-3.5-turbo", debug=True) - print(result) - - Required libraries: - ------------------- - - tiktoken: Install with 'pip install tiktoken' - - nltk: Install with 'pip install nltk' - - Parameters: - ----------- - text : str - The text string for which you want to count tokens. - model_name : str, optional - The OpenAI model for which you want to count tokens (default: "gpt-3.5-turbo"). - debug : bool, optional - Set to True to print error messages (default: False). - - Returns: - -------- - result : dict - A dictionary containing the number of tokens and the method used for counting. - """ - - # Try using tiktoken - try: - import tiktoken - encoding = tiktoken.encoding_for_model(model_name) - num_tokens = len(encoding.encode(text)) - result = {"n_tokens": num_tokens, "method": "tiktoken"} - return result - except Exception as e: - if debug: - print(f"Error using tiktoken: {e}") - pass - - # Try using nltk - try: - import nltk - nltk.download("punkt") - tokens = nltk.word_tokenize(text) - result = {"n_tokens": len(tokens), "method": "nltk"} - return result - except Exception as e: - if debug: - print(f"Error using nltk: {e}") - pass - - # If nltk and tiktoken fail, use a simple split-based method - tokens = text.split() - result = {"n_tokens": len(tokens), "method": "split"} - return result - - -class TokenBuffer: - def __init__(self, max_tokens=2048): - self.max_tokens = max_tokens - self.buffer = "" - self.token_lengths = [] - self.token_count = 0 - - def update(self, text, model_name="gpt-3.5-turbo", debug=False): - new_tokens = count_tokens(text, model_name=model_name, debug=debug)["n_tokens"] - self.token_count += new_tokens - self.buffer += text - self.token_lengths.append(new_tokens) - - while self.token_count > self.max_tokens: - removed_tokens = self.token_lengths.pop(0) - self.token_count -= removed_tokens - self.buffer = self.buffer.split(" ", removed_tokens)[-1] - - def get_buffer(self): - return self.buffer +# This is a work in progress. There are still bugs. Once it is production-ready this will become a full repo. + +import tiktoken +import nltk + + +def count_tokens(text, model_name="gpt-3.5-turbo", debug=False): + """ + Count the number of tokens in a given text string without using the OpenAI API. + + This function tries three methods in the following order: + 1. tiktoken (preferred): Accurate token counting similar to the OpenAI API. + 2. nltk: Token counting using the Natural Language Toolkit library. + 3. split: Simple whitespace-based token counting as a fallback. + + Usage: + ------ + text = "Your text here" + result = count_tokens(text, model_name="gpt-3.5-turbo", debug=True) + print(result) + + Required libraries: + ------------------- + - tiktoken: Install with 'pip install tiktoken' + - nltk: Install with 'pip install nltk' + + Parameters: + ----------- + text : str + The text string for which you want to count tokens. + model_name : str, optional + The OpenAI model for which you want to count tokens (default: "gpt-3.5-turbo"). + debug : bool, optional + Set to True to print error messages (default: False). + + Returns: + -------- + result : dict + A dictionary containing the number of tokens and the method used for counting. + """ + + # Try using tiktoken + try: + encoding = tiktoken.encoding_for_model(model_name) + num_tokens = len(encoding.encode(text)) + result = {"n_tokens": num_tokens, "method": "tiktoken"} + return result + except Exception as e: + if debug: + print(f"Error using tiktoken: {e}") + pass + + # Try using nltk + try: + # Passed nltk.download("punkt") to server.py's @asynccontextmanager + tokens = nltk.word_tokenize(text) + result = {"n_tokens": len(tokens), "method": "nltk"} + return result + except Exception as e: + if debug: + print(f"Error using nltk: {e}") + pass + + # If nltk and tiktoken fail, use a simple split-based method + tokens = text.split() + result = {"n_tokens": len(tokens), "method": "split"} + return result + + +class TokenBuffer: + def __init__(self, max_tokens=2048): + self.max_tokens = max_tokens + self.buffer = "" + self.token_lengths = [] + self.token_count = 0 + + def update(self, text, model_name="gpt-3.5-turbo", debug=False): + new_tokens = count_tokens(text, model_name=model_name, debug=debug)["n_tokens"] + self.token_count += new_tokens + self.buffer += text + self.token_lengths.append(new_tokens) + + while self.token_count > self.max_tokens: + removed_tokens = self.token_lengths.pop(0) + self.token_count -= removed_tokens + self.buffer = self.buffer.split(" ", removed_tokens)[-1] + + def get_buffer(self): + return self.buffer diff --git a/ielts_be/mappers/__init__.py b/ielts_be/mappers/__init__.py new file mode 100644 index 0000000..bc693aa --- /dev/null +++ b/ielts_be/mappers/__init__.py @@ -0,0 +1,5 @@ +from .level import LevelMapper + +__all__ = [ + "LevelMapper" +] diff --git a/modules/upload_level/mapper.py b/ielts_be/mappers/level.py similarity index 75% rename from modules/upload_level/mapper.py rename to ielts_be/mappers/level.py index 6c39b0e..b54abcf 100644 --- a/modules/upload_level/mapper.py +++ b/ielts_be/mappers/level.py @@ -1,66 +1,71 @@ -from typing import Dict, Any - -from pydantic import ValidationError - -from modules.upload_level.exam_dtos import ( - MultipleChoiceExercise, - FillBlanksExercise, - Part, Exam -) -from modules.upload_level.sheet_dtos import Sheet, Option, MultipleChoiceQuestion, FillBlanksWord - - -class ExamMapper: - - @staticmethod - def map_to_exam_model(response: Dict[str, Any]) -> Exam: - parts = [] - for part in response['parts']: - part_exercises = part['exercises'] - context = part.get('context', None) - - exercises = [] - for exercise in part_exercises: - exercise_type = exercise['type'] - if exercise_type == 'multipleChoice': - exercise_model = MultipleChoiceExercise(**exercise) - elif exercise_type == 'fillBlanks': - exercise_model = FillBlanksExercise(**exercise) - else: - raise ValidationError(f"Unknown exercise type: {exercise_type}") - - exercises.append(exercise_model) - - part_kwargs = {"exercises": exercises} - if context is not None: - part_kwargs["context"] = context - - part_model = Part(**part_kwargs) - parts.append(part_model) - - return Exam(parts=parts) - - @staticmethod - def map_to_sheet(response: Dict[str, Any]) -> Sheet: - components = [] - - for item in response["components"]: - component_type = item["type"] - - if component_type == "multipleChoice": - options = [Option(id=opt["id"], text=opt["text"]) for opt in item["options"]] - components.append(MultipleChoiceQuestion( - id=item["id"], - prompt=item["prompt"], - variant=item.get("variant", "text"), - options=options - )) - elif component_type == "fillBlanks": - components.append(FillBlanksWord( - id=item["id"], - options=item["options"] - )) - else: - components.append(item) - - return Sheet(components=components) +from typing import Dict, Any + +from pydantic import ValidationError + +from ielts_be.dtos.exams.level import ( + MultipleChoiceExercise, + FillBlanksExercise, + Part, Exam, Text +) +from ielts_be.dtos.sheet import Sheet, Option, MultipleChoiceQuestion, FillBlanksWord + + +class LevelMapper: + + @staticmethod + def map_to_exam_model(response: Dict[str, Any]) -> Exam: + parts = [] + for part in response['parts']: + part_exercises = part['exercises'] + text = part.get('text', None) + + exercises = [] + for exercise in part_exercises: + exercise_type = exercise['type'] + if exercise_type == 'multipleChoice': + exercise_model = MultipleChoiceExercise(**exercise) + elif exercise_type == 'fillBlanks': + exercise_model = FillBlanksExercise(**exercise) + else: + raise ValidationError(f"Unknown exercise type: {exercise_type}") + + exercises.append(exercise_model) + + part_kwargs = {"exercises": exercises} + if text is not None and text.get('content', None): + title = text.get('title', 'Untitled') + if title == '': + title = 'Untitled' + part_kwargs["text"] = Text(title=title, content=text['content']) + else: + part_kwargs["text"] = None + + part_model = Part(**part_kwargs) + parts.append(part_model) + + return Exam(parts=parts) + + @staticmethod + def map_to_sheet(response: Dict[str, Any]) -> Sheet: + components = [] + + for item in response["components"]: + component_type = item["type"] + + if component_type == "multipleChoice": + options = [Option(id=opt["id"], text=opt["text"]) for opt in item["options"]] + components.append(MultipleChoiceQuestion( + id=item["id"], + prompt=item["prompt"], + variant=item.get("variant", "text"), + options=options + )) + elif component_type == "fillBlanks": + components.append(FillBlanksWord( + id=item["id"], + options=item["options"] + )) + else: + components.append(item) + + return Sheet(components=components) diff --git a/ielts_be/mappers/listening.py b/ielts_be/mappers/listening.py new file mode 100644 index 0000000..f0aec9d --- /dev/null +++ b/ielts_be/mappers/listening.py @@ -0,0 +1,182 @@ +from typing import Dict, Any, List, Union, Optional + +from pydantic import BaseModel + +from ielts_be.dtos.exams.listening import ( + TrueFalseExercise, + MultipleChoiceExercise, + WriteBlanksExercise, + ListeningExam, + ListeningSection, + WriteBlanksVariant, WriteBlankSolution, WriteBlanksQuestionExercise, WriteBlankQuestion, Dialog +) + +class ListeningQuestionSection(BaseModel): + exercises: List[Union[TrueFalseExercise, MultipleChoiceExercise, WriteBlanksQuestionExercise]] + +class ListeningQuestionExam(BaseModel): + parts: List[ListeningQuestionSection] + minTimer: Optional[int] + module: str = "listening" + +class WriteBlankProcessor: + @staticmethod + def to_question_model(exercise_data: Dict[str, Any]) -> WriteBlanksQuestionExercise: + questions = [ + WriteBlankQuestion( + id=q["id"], + prompt=q["prompt"], + solution=q["solution"] + ) + for q in exercise_data.get("questions", []) + ] + + return WriteBlanksQuestionExercise( + type="writeBlanks", + prompt=exercise_data.get("prompt"), + maxWords=exercise_data.get("maxWords"), + questions=questions, + variant=exercise_data.get("variant", "questions") + ) + + @staticmethod + def to_text_model(question_model: WriteBlanksQuestionExercise) -> WriteBlanksExercise: + if question_model.variant == WriteBlanksVariant.QUESTIONS: + text = '\\n'.join(f"{q.prompt} {{{{{q.id}}}}}" for q in question_model.questions) + elif question_model.variant == WriteBlanksVariant.FILL: + text = ' '.join(f"{q.prompt}" for q in question_model.questions) + elif question_model.variant == WriteBlanksVariant.FORM: + text = '\\n'.join(f"{q.prompt}" for q in question_model.questions) + else: + raise ValueError(f"Unknown variant: {question_model.variant}") + + solutions = [ + WriteBlankSolution(id=q.id, solution=q.solution) + for q in question_model.questions + ] + + return WriteBlanksExercise( + type="writeBlanks", + prompt=question_model.prompt, + maxWords=question_model.maxWords, + text=text, + solutions=solutions, + variant=question_model.variant + ) + + +class ListeningMapper: + @staticmethod + def map_to_test_model(response: Dict[str, Any]) -> ListeningExam: + question_parts = [] + for section in response.get('parts', []): + section_exercises = [] + + for exercise in section['exercises']: + exercise_type = exercise['type'] + + if exercise_type == 'trueFalse': + section_exercises.append(TrueFalseExercise(**exercise)) + elif exercise_type == 'multipleChoice': + section_exercises.append(MultipleChoiceExercise(**exercise)) + elif exercise_type == 'writeBlanks': + question_model = WriteBlankProcessor.to_question_model(exercise) + section_exercises.append(question_model) + else: + raise ValueError(f"Unknown exercise type: {exercise_type}") + + question_parts.append(ListeningQuestionSection(exercises=section_exercises)) + + question_exam = ListeningQuestionExam( + parts=question_parts, + minTimer=response.get('minTimer'), + module="listening" + ) + + final_parts = [] + for section in question_exam.parts: + final_exercises = [] + + for exercise in section.exercises: + if isinstance(exercise, WriteBlanksQuestionExercise): + final_exercises.append(WriteBlankProcessor.to_text_model(exercise)) + else: + final_exercises.append(exercise) + + final_parts.append(ListeningSection(exercises=final_exercises)) + + return ListeningExam( + parts=final_parts, + minTimer=response.get('minTimer'), + module="listening" + ) + + @staticmethod + def validate_speaker(participant: Dict[str, str]) -> None: + required_fields = ["name", "gender", "text"] + for field in required_fields: + if field not in participant: + raise ValueError(f"Missing required field '{field}' in speaker") + if not isinstance(participant[field], str): + raise ValueError(f"Field '{field}' must be a string") + + @classmethod + def validate_conversation(cls,conversation: List[Dict[str, str]]) -> None: + if not isinstance(conversation, list): + raise ValueError("Conversation must be a list") + if not conversation: + raise ValueError("Conversation cannot be empty") + for participant in conversation: + cls.validate_speaker(participant) + + @staticmethod + def validate_monologue(monologue: str) -> None: + if not isinstance(monologue, str): + raise ValueError("Monologue must be a string") + if not monologue.strip(): + raise ValueError("Monologue cannot be empty") + + @staticmethod + def extract_section_number(section_key: str) -> str: + return ''.join([char for char in section_key if char.isdigit()]) + + @classmethod + def map_to_dialog_model(cls, response: Dict[str, Any]) -> Dict[str, Optional[Union[List[Dict[str, str]], str]]]: + if not isinstance(response, dict): + raise ValueError("Response must be a dictionary") + + if "sections" not in response: + raise ValueError("Response must contain 'sections' key") + + if not isinstance(response["sections"], list): + raise ValueError("Sections must be a list") + + result = {} + + for section in response["sections"]: + if not isinstance(section, dict) or len(section) != 1: + raise ValueError("Each section must be a dictionary with exactly one key") + + section_key = next(iter(section)) + section_number = cls.extract_section_number(section_key) + section_content = section[section_key] + + if not isinstance(section_content, dict): + raise ValueError(f"Content for section {section_key} must be a dictionary") + + if not section_content: + result[section_number] = None + continue + + dialog_type = next(iter(section_content)) + if dialog_type not in ["conversation", "monologue"]: + raise ValueError(f"Invalid dialog type '{dialog_type}' in section {section_key}") + + if dialog_type == "conversation": + cls.validate_conversation(section_content["conversation"]) + result[section_number] = section_content["conversation"] + else: + cls.validate_monologue(section_content["monologue"]) + result[section_number] = section_content["monologue"] + + return result diff --git a/ielts_be/mappers/reading.py b/ielts_be/mappers/reading.py new file mode 100644 index 0000000..bf67e8e --- /dev/null +++ b/ielts_be/mappers/reading.py @@ -0,0 +1,44 @@ +from typing import Dict, Any + +from ielts_be.dtos.exams.reading import ( + Part, Exam, Context, FillBlanksExercise, + TrueFalseExercise, MatchSentencesExercise, + WriteBlanksExercise, MultipleChoice +) + + +class ReadingMapper: + + @staticmethod + def map_to_exam_model(response: Dict[str, Any]) -> Exam: + parts = [] + for part in response['parts']: + part_exercises = part['exercises'] + context = Context(**part['text']) + + model_map = { + 'fillBlanks': FillBlanksExercise, + 'trueFalse': TrueFalseExercise, + 'matchSentences': MatchSentencesExercise, + 'writeBlanks': WriteBlanksExercise, + 'multipleChoice': MultipleChoice, + } + + exercises = [] + for exercise in part_exercises: + exercise_type = exercise['type'] + if exercise_type in model_map: + model_class = model_map[exercise_type] + exercises.append(model_class(**exercise)) + else: + raise ValueError(f"Unknown exercise type: {exercise_type}") + + part_kwargs = { + "exercises": exercises, + "text": context + } + + part_model = Part(**part_kwargs) + parts.append(part_model) + + return Exam(parts=parts, minTimer=response["minTimer"]) diff --git a/ielts_be/middlewares/__init__.py b/ielts_be/middlewares/__init__.py new file mode 100644 index 0000000..93e83df --- /dev/null +++ b/ielts_be/middlewares/__init__.py @@ -0,0 +1,9 @@ +from .authentication import AuthBackend, AuthenticationMiddleware +from .authorization import Authorized, IsAuthenticatedViaBearerToken + +__all__ = [ + "AuthBackend", + "AuthenticationMiddleware", + "Authorized", + "IsAuthenticatedViaBearerToken" +] \ No newline at end of file diff --git a/ielts_be/middlewares/authentication.py b/ielts_be/middlewares/authentication.py new file mode 100644 index 0000000..1285ce6 --- /dev/null +++ b/ielts_be/middlewares/authentication.py @@ -0,0 +1,48 @@ +import os +from typing import Tuple + +import jwt +from jwt import InvalidTokenError +from pydantic import BaseModel, Field +from starlette.authentication import AuthenticationBackend +from starlette.middleware.authentication import ( + AuthenticationMiddleware as BaseAuthenticationMiddleware, +) +from starlette.requests import HTTPConnection + + +class Session(BaseModel): + authenticated: bool = Field(False, description="Is user authenticated?") + + +class AuthBackend(AuthenticationBackend): + async def authenticate( + self, conn: HTTPConnection + ) -> Tuple[bool, Session]: + session = Session() + authorization: str = conn.headers.get("Authorization") + if not authorization: + return False, session + + try: + scheme, token = authorization.split(" ") + if scheme.lower() != "bearer": + return False, session + except ValueError: + return False, session + + jwt_secret_key = os.getenv("JWT_SECRET_KEY") + if not jwt_secret_key: + return False, session + + try: + jwt.decode(token, jwt_secret_key, algorithms=["HS256"]) + except InvalidTokenError: + return False, session + + session.authenticated = True + return True, session + + +class AuthenticationMiddleware(BaseAuthenticationMiddleware): + pass diff --git a/ielts_be/middlewares/authorization.py b/ielts_be/middlewares/authorization.py new file mode 100644 index 0000000..1a6d949 --- /dev/null +++ b/ielts_be/middlewares/authorization.py @@ -0,0 +1,36 @@ +from abc import ABC, abstractmethod +from typing import List, Type + +from fastapi import Request +from fastapi.openapi.models import APIKey, APIKeyIn +from fastapi.security.base import SecurityBase + +from ielts_be.exceptions import CustomException, UnauthorizedException + + +class BaseAuthorization(ABC): + exception = CustomException + + @abstractmethod + async def has_permission(self, request: Request) -> bool: + pass + + +class IsAuthenticatedViaBearerToken(BaseAuthorization): + exception = UnauthorizedException + + async def has_permission(self, request: Request) -> bool: + return request.user.authenticated + + +class Authorized(SecurityBase): + def __init__(self, permissions: List[Type[BaseAuthorization]]): + self.permissions = permissions + self.model: APIKey = APIKey(**{"in": APIKeyIn.header}, name="Authorization") + self.scheme_name = self.__class__.__name__ + + async def __call__(self, request: Request): + for permission in self.permissions: + cls = permission() + if not await cls.has_permission(request=request): + raise cls.exception diff --git a/ielts_be/repositories/__init__.py b/ielts_be/repositories/__init__.py new file mode 100644 index 0000000..621885c --- /dev/null +++ b/ielts_be/repositories/__init__.py @@ -0,0 +1,3 @@ +from .abc import * + +__all__ = abc.__all__ diff --git a/ielts_be/repositories/abc/__init__.py b/ielts_be/repositories/abc/__init__.py new file mode 100644 index 0000000..bbce6fa --- /dev/null +++ b/ielts_be/repositories/abc/__init__.py @@ -0,0 +1,7 @@ +from .file_storage import IFileStorage +from .document_store import IDocumentStore + +__all__ = [ + "IFileStorage", + "IDocumentStore" +] \ No newline at end of file diff --git a/ielts_be/repositories/abc/document_store.py b/ielts_be/repositories/abc/document_store.py new file mode 100644 index 0000000..3443eea --- /dev/null +++ b/ielts_be/repositories/abc/document_store.py @@ -0,0 +1,18 @@ +from abc import ABC + +from typing import Dict, Optional, List + + +class IDocumentStore(ABC): + + async def save_to_db(self, collection: str, item: Dict, doc_id: Optional[str] = None) -> Optional[str]: + pass + + async def get_doc_by_id(self, collection: str, doc_id: str) -> Optional[Dict]: + pass + + async def find(self, collection: str, query: Optional[Dict]) -> List[Dict]: + pass + + async def update(self, collection: str, filter_query: Dict, update: Dict) -> Optional[str]: + pass diff --git a/ielts_be/repositories/abc/file_storage.py b/ielts_be/repositories/abc/file_storage.py new file mode 100644 index 0000000..ea34959 --- /dev/null +++ b/ielts_be/repositories/abc/file_storage.py @@ -0,0 +1,16 @@ +from abc import ABC, abstractmethod + + +class IFileStorage(ABC): + + @abstractmethod + async def download_firebase_file(self, source_blob_name, destination_file_name): + pass + + @abstractmethod + async def upload_file_firebase_get_url(self, destination_blob_name, source_file_name): + pass + + @abstractmethod + async def make_public(self, blob_name: str): + pass diff --git a/ielts_be/repositories/impl/__init__.py b/ielts_be/repositories/impl/__init__.py new file mode 100644 index 0000000..fee1e34 --- /dev/null +++ b/ielts_be/repositories/impl/__init__.py @@ -0,0 +1,6 @@ +from .document_stores import * +from .file_storage import * + +__all__ = [] +__all__.extend(document_stores.__all__) +__all__.extend(file_storage.__all__) diff --git a/ielts_be/repositories/impl/document_stores/__init__.py b/ielts_be/repositories/impl/document_stores/__init__.py new file mode 100644 index 0000000..abc32e3 --- /dev/null +++ b/ielts_be/repositories/impl/document_stores/__init__.py @@ -0,0 +1,7 @@ +from .firestore import Firestore +from .mongo import MongoDB + +__all__ = [ + "Firestore", + "MongoDB" +] diff --git a/ielts_be/repositories/impl/document_stores/firestore.py b/ielts_be/repositories/impl/document_stores/firestore.py new file mode 100644 index 0000000..e3d0a8a --- /dev/null +++ b/ielts_be/repositories/impl/document_stores/firestore.py @@ -0,0 +1,50 @@ +import logging +from typing import Optional, List, Dict + +from google.cloud.firestore_v1.async_client import AsyncClient +from google.cloud.firestore_v1.async_collection import AsyncCollectionReference +from google.cloud.firestore_v1.async_document import AsyncDocumentReference +from ielts_be.repositories import IDocumentStore + + +class Firestore(IDocumentStore): + def __init__(self, client: AsyncClient): + self._client = client + self._logger = logging.getLogger(__name__) + + async def save_to_db(self, collection: str, item, doc_id: Optional[str] = None) -> Optional[str]: + collection_ref: AsyncCollectionReference = self._client.collection(collection) + + if doc_id: + document_ref: AsyncDocumentReference = collection_ref.document(doc_id) + await document_ref.set(item) + doc_snapshot = await document_ref.get() + if doc_snapshot.exists: + self._logger.info(f"Document added with ID: {document_ref.id}") + return document_ref.id + else: + update_time, document_ref = await collection_ref.add(item) + if document_ref: + self._logger.info(f"Document added with ID: {document_ref.id}") + return document_ref.id + + return None + + async def find(self, collection: str, query: Optional[Dict] = None) -> List[Dict]: + collection_ref: AsyncCollectionReference = self._client.collection(collection) + docs = [] + async for doc in collection_ref.stream(): + docs.append(doc.to_dict()) + return docs + + async def get_doc_by_id(self, collection: str, doc_id: str) -> Optional[Dict]: + collection_ref: AsyncCollectionReference = self._client.collection(collection) + doc_ref: AsyncDocumentReference = collection_ref.document(doc_id) + doc = await doc_ref.get() + + if doc.exists: + return doc.to_dict() + return None + + async def update(self, collection: str, filter_query: Dict, update: Dict) -> Optional[str]: + raise NotImplemented() diff --git a/ielts_be/repositories/impl/document_stores/mongo.py b/ielts_be/repositories/impl/document_stores/mongo.py new file mode 100644 index 0000000..ecbec65 --- /dev/null +++ b/ielts_be/repositories/impl/document_stores/mongo.py @@ -0,0 +1,41 @@ +import logging +import uuid +from typing import Optional, List, Dict + +from motor.motor_asyncio import AsyncIOMotorDatabase + +from ielts_be.repositories import IDocumentStore + + +class MongoDB(IDocumentStore): + + def __init__(self, mongo_db: AsyncIOMotorDatabase): + self._mongo_db = mongo_db + self._logger = logging.getLogger(__name__) + + async def save_to_db(self, collection: str, item, doc_id: Optional[str] = None) -> Optional[str]: + collection_ref = self._mongo_db[collection] + + if doc_id is None: + doc_id = str(uuid.uuid4()) + + item['id'] = doc_id + + result = await collection_ref.insert_one(item) + if result.inserted_id: + # returning id instead of _id + self._logger.info(f"Document added with ID: {doc_id}") + return doc_id + + return None + + async def find(self, collection: str, query: Optional[Dict] = None) -> List[Dict]: + query = query if query else {} + cursor = self._mongo_db[collection].find(query) + return [document async for document in cursor] + + async def update(self, collection: str, filter_query: Dict, update: Dict) -> Optional[str]: + return (await self._mongo_db[collection].update_one(filter_query, update, upsert=True)).upserted_id + + async def get_doc_by_id(self, collection: str, doc_id: str) -> Optional[Dict]: + return await self._mongo_db[collection].find_one({"id": doc_id}) diff --git a/ielts_be/repositories/impl/file_storage/__init__.py b/ielts_be/repositories/impl/file_storage/__init__.py new file mode 100644 index 0000000..f1b6b00 --- /dev/null +++ b/ielts_be/repositories/impl/file_storage/__init__.py @@ -0,0 +1,5 @@ +from .firebase import FirebaseStorage + +__all__ = [ + "FirebaseStorage" +] diff --git a/ielts_be/repositories/impl/file_storage/firebase.py b/ielts_be/repositories/impl/file_storage/firebase.py new file mode 100644 index 0000000..9f087d0 --- /dev/null +++ b/ielts_be/repositories/impl/file_storage/firebase.py @@ -0,0 +1,84 @@ +import logging +from datetime import datetime +from typing import Optional + +import aiofiles +from httpx import AsyncClient + +from ielts_be.repositories import IFileStorage + + +class FirebaseStorage(IFileStorage): + + def __init__(self, client: AsyncClient, token: str, bucket: str): + self._httpx_client = client + self._token = token + self._storage_url = f'https://firebasestorage.googleapis.com/v0/b/{bucket}' + self._logger = logging.getLogger(__name__) + + async def download_firebase_file(self, source_blob_name: str, destination_file_name: str) -> Optional[str]: + source_blob_name = source_blob_name.replace('/', '%2F') + download_url = f"{self._storage_url}/o/{source_blob_name}?alt=media" + + response = await self._httpx_client.get( + download_url, + headers={'Authorization': f'Firebase {self._token}'} + ) + + if response.status_code == 200: + async with aiofiles.open(destination_file_name, 'wb') as file: + await file.write(response.content) + self._logger.info(f"File downloaded to {destination_file_name}") + return destination_file_name + else: + self._logger.error(f"Failed to download blob {source_blob_name}. {response.status_code} - {response.content}") + return None + + async def upload_file_firebase_get_url(self, destination_blob_name: str, source_file_name: str) -> Optional[str]: + destination_blob_name = destination_blob_name.replace('/', '%2F') + upload_url = f"{self._storage_url}/o/{destination_blob_name}" + + async with aiofiles.open(source_file_name, 'rb') as file: + file_bytes = await file.read() + + created = datetime.now().isoformat() + response = await self._httpx_client.post( + upload_url, + headers={ + 'Authorization': f'Firebase {self._token}', + "X-Goog-Upload-Protocol": "multipart" + }, + files={ + 'metadata': (None, '{"metadata":{"created":"'+ created + '"}}', 'application/json'), + 'file': file_bytes + } + ) + + if response.status_code == 200: + self._logger.info(f"File {source_file_name} uploaded to {self._storage_url}/o/{destination_blob_name}.") + + await self.make_public(destination_blob_name) + + file_url = f"{self._storage_url}/o/{destination_blob_name}" + return file_url + else: + self._logger.error(f"Failed to upload file {source_file_name}. Error: {response.status_code} - {str(response.content)}") + return None + + async def make_public(self, destination_blob_name: str): + acl_url = f"{self._storage_url}/o/{destination_blob_name}/acl" + acl = {'entity': 'allUsers', 'role': 'READER'} + + response = await self._httpx_client.post( + acl_url, + headers={ + 'Authorization': f'Firebase {self._token}', + 'Content-Type': 'application/json' + }, + json=acl + ) + + if response.status_code == 200: + self._logger.info(f"Blob {destination_blob_name} is now public.") + else: + self._logger.error(f"Failed to make blob {destination_blob_name} public. {response.status_code} - {response.content}") diff --git a/ielts_be/services/__init__.py b/ielts_be/services/__init__.py new file mode 100644 index 0000000..621885c --- /dev/null +++ b/ielts_be/services/__init__.py @@ -0,0 +1,3 @@ +from .abc import * + +__all__ = abc.__all__ diff --git a/ielts_be/services/abc/__init__.py b/ielts_be/services/abc/__init__.py new file mode 100644 index 0000000..ab7096b --- /dev/null +++ b/ielts_be/services/abc/__init__.py @@ -0,0 +1,13 @@ +from .third_parties import * +from .exam import * +from .training import * +from .user import IUserService +from .evaluation import IEvaluationService + +__all__ = [ + "IUserService", + "IEvaluationService" +] +__all__.extend(third_parties.__all__) +__all__.extend(exam.__all__) +__all__.extend(training.__all__) diff --git a/ielts_be/services/abc/evaluation.py b/ielts_be/services/abc/evaluation.py new file mode 100644 index 0000000..9dbb48a --- /dev/null +++ b/ielts_be/services/abc/evaluation.py @@ -0,0 +1,28 @@ +from abc import abstractmethod, ABC + +from fastapi import BackgroundTasks + +from ielts_be.dtos.evaluation import EvaluationType + +class IEvaluationService(ABC): + + @abstractmethod + async def create_evaluation( + self, + user_id: str, + session_id: str, + exercise_id: str, + eval_type: EvaluationType, + task: int + ): + pass + + @abstractmethod + async def begin_evaluation( + self, + user_id: str, session_id: str, task: int, + exercise_id: str, exercise_type: str, + solution: any, + background_tasks: BackgroundTasks + ): + pass diff --git a/ielts_be/services/abc/exam/__init__.py b/ielts_be/services/abc/exam/__init__.py new file mode 100644 index 0000000..c16bdac --- /dev/null +++ b/ielts_be/services/abc/exam/__init__.py @@ -0,0 +1,17 @@ +from .level import ILevelService +from .listening import IListeningService +from .writing import IWritingService +from .speaking import ISpeakingService +from .reading import IReadingService +from .grade import IGradeService +from .exercises import IExerciseService + +__all__ = [ + "ILevelService", + "IListeningService", + "IWritingService", + "ISpeakingService", + "IReadingService", + "IGradeService", + "IExerciseService" +] diff --git a/ielts_be/services/abc/exam/exercises.py b/ielts_be/services/abc/exam/exercises.py new file mode 100644 index 0000000..eb91ab3 --- /dev/null +++ b/ielts_be/services/abc/exam/exercises.py @@ -0,0 +1,33 @@ +from abc import ABC, abstractmethod +from typing import Dict, Any + + +class IExerciseService(ABC): + + @abstractmethod + async def generate_multiple_choice(self, args: Dict, exercise_id: int) -> Dict[str, Any]: + pass + + @abstractmethod + async def generate_blank_space_text(self, args: Dict, exercise_id: int) -> Dict[str, Any]: + pass + + @abstractmethod + async def generate_reading_passage_utas(self, args: Dict, exercise_id: int) -> Dict[str, Any]: + pass + + @abstractmethod + async def generate_writing_task(self, args: Dict, exercise_id: int) -> Dict[str, Any]: + pass + + @abstractmethod + async def generate_speaking_task(self, args: Dict, exercise_id: int) -> Dict[str, Any]: + pass + + @abstractmethod + async def generate_reading_task(self, args: Dict, exercise_id: int) -> Dict[str, Any]: + pass + + @abstractmethod + async def generate_listening_task(self, args: Dict, exercise_id: int) -> Dict[str, Any]: + pass diff --git a/ielts_be/services/abc/exam/grade.py b/ielts_be/services/abc/exam/grade.py new file mode 100644 index 0000000..e429419 --- /dev/null +++ b/ielts_be/services/abc/exam/grade.py @@ -0,0 +1,13 @@ +from abc import ABC, abstractmethod +from typing import Dict, List + + +class IGradeService(ABC): + + @abstractmethod + async def grade_short_answers(self, data: Dict): + pass + + @abstractmethod + async def calculate_grading_summary(self, extracted_sections: List): + pass diff --git a/ielts_be/services/abc/exam/level.py b/ielts_be/services/abc/exam/level.py new file mode 100644 index 0000000..c056b43 --- /dev/null +++ b/ielts_be/services/abc/exam/level.py @@ -0,0 +1,46 @@ +from abc import ABC, abstractmethod +from typing import Dict, Optional +from fastapi import UploadFile + + +class ILevelService(ABC): + + @abstractmethod + async def generate_exercises(self, dto): + pass + + @abstractmethod + async def get_level_exam( + self, number_of_exercises: int = 25, min_timer: int = 25, diagnostic: bool = False + ) -> Dict: + pass + + @abstractmethod + async def get_level_utas(self): + pass + + @abstractmethod + async def get_custom_level(self, data: Dict): + pass + + @abstractmethod + async def upload_level(self, upload: UploadFile, solutions: Optional[UploadFile] = None) -> Dict: + pass + + @abstractmethod + async def gen_multiple_choice( + self, mc_variant: str, quantity: int, start_id: int = 1 #, *, utas: bool = False, all_exams=None + ): + pass + + @abstractmethod + async def gen_blank_space_text_utas( + self, quantity: int, start_id: int, size: int, topic: str + ): + pass + + @abstractmethod + async def gen_reading_passage_utas( + self, start_id, mc_quantity: int, topic: Optional[str] #sa_quantity: int, + ): + pass diff --git a/ielts_be/services/abc/exam/listening.py b/ielts_be/services/abc/exam/listening.py new file mode 100644 index 0000000..85f3d57 --- /dev/null +++ b/ielts_be/services/abc/exam/listening.py @@ -0,0 +1,31 @@ +import queue +from abc import ABC, abstractmethod +from queue import Queue +from typing import Dict, List, Any + +from fastapi import UploadFile + + +class IListeningService(ABC): + + @abstractmethod + async def generate_listening_dialog( self, section_id: int, topic: str, difficulty: str): + pass + + @abstractmethod + async def get_listening_question(self, dto): + pass + + @abstractmethod + async def generate_mp3(self, dto) -> bytes: + pass + + @abstractmethod + async def import_exam( + self, exercises: UploadFile, solutions: UploadFile = None + ) -> Dict[str, Any] | None: + pass + + @abstractmethod + async def transcribe_dialog(self, audio: UploadFile): + pass diff --git a/ielts_be/services/abc/exam/reading.py b/ielts_be/services/abc/exam/reading.py new file mode 100644 index 0000000..b8bf805 --- /dev/null +++ b/ielts_be/services/abc/exam/reading.py @@ -0,0 +1,17 @@ +from abc import ABC, abstractmethod +from fastapi import UploadFile + + +class IReadingService(ABC): + + @abstractmethod + async def import_exam(self, exercises: UploadFile, solutions: UploadFile = None): + pass + + @abstractmethod + async def generate_reading_exercises(self, dto): + pass + + @abstractmethod + async def generate_reading_passage(self, part: int, topic: str, word_count: int = 800): + pass diff --git a/ielts_be/services/abc/exam/speaking.py b/ielts_be/services/abc/exam/speaking.py new file mode 100644 index 0000000..696cec9 --- /dev/null +++ b/ielts_be/services/abc/exam/speaking.py @@ -0,0 +1,16 @@ +from abc import ABC, abstractmethod +from typing import List, Dict, Optional + + +class ISpeakingService(ABC): + + @abstractmethod + async def get_speaking_part( + self, part: int, topic: str, second_topic: str, difficulty: str + ) -> Dict: + pass + + @abstractmethod + async def grade_speaking_task(self, task: int, items: any) -> Dict: + pass + diff --git a/ielts_be/services/abc/exam/writing.py b/ielts_be/services/abc/exam/writing.py new file mode 100644 index 0000000..94d223d --- /dev/null +++ b/ielts_be/services/abc/exam/writing.py @@ -0,0 +1,19 @@ +from abc import ABC, abstractmethod +from typing import Optional + +from fastapi import UploadFile + + +class IWritingService(ABC): + + @abstractmethod + async def get_writing_task_general_question(self, task: int, topic: str, difficulty: str): + pass + + @abstractmethod + async def get_writing_task_academic_question(self, task: int, attachment: UploadFile, difficulty: str): + pass + + @abstractmethod + async def grade_writing_task(self, task: int, question: str, answer: str, attachment: Optional[str]): + pass diff --git a/ielts_be/services/abc/third_parties/__init__.py b/ielts_be/services/abc/third_parties/__init__.py new file mode 100644 index 0000000..f69c71d --- /dev/null +++ b/ielts_be/services/abc/third_parties/__init__.py @@ -0,0 +1,13 @@ +from .stt import ISpeechToTextService +from .tts import ITextToSpeechService +from .llm import ILLMService +from .vid_gen import IVideoGeneratorService +from .ai_detector import IAIDetectorService + +__all__ = [ + "ISpeechToTextService", + "ITextToSpeechService", + "ILLMService", + "IVideoGeneratorService", + "IAIDetectorService" +] diff --git a/ielts_be/services/abc/third_parties/ai_detector.py b/ielts_be/services/abc/third_parties/ai_detector.py new file mode 100644 index 0000000..71939dd --- /dev/null +++ b/ielts_be/services/abc/third_parties/ai_detector.py @@ -0,0 +1,13 @@ +from abc import ABC, abstractmethod +from typing import Dict, Optional + + +class IAIDetectorService(ABC): + + @abstractmethod + async def run_detection(self, text: str): + pass + + @abstractmethod + def _parse_detection(self, response: Dict) -> Optional[Dict]: + pass diff --git a/ielts_be/services/abc/third_parties/llm.py b/ielts_be/services/abc/third_parties/llm.py new file mode 100644 index 0000000..4baf089 --- /dev/null +++ b/ielts_be/services/abc/third_parties/llm.py @@ -0,0 +1,38 @@ +from abc import ABC, abstractmethod +from typing import List, Optional, TypeVar, Callable + +from openai.types.chat import ChatCompletionMessageParam +from pydantic import BaseModel + +T = TypeVar('T', bound=BaseModel) + +class ILLMService(ABC): + + @abstractmethod + async def prediction( + self, + model: str, + messages: List, + fields_to_check: Optional[List[str]], + temperature: float, + check_blacklisted: bool = True, + token_count: int = -1 + ): + pass + + @abstractmethod + async def prediction_override(self, **kwargs): + pass + + @abstractmethod + async def pydantic_prediction( + self, + messages: List[ChatCompletionMessageParam], + map_to_model: Callable, + json_scheme: str, + *, + model: Optional[str] = None, + temperature: Optional[float] = None, + max_retries: int = 3 + ) -> List[T] | T | None: + pass diff --git a/ielts_be/services/abc/third_parties/stt.py b/ielts_be/services/abc/third_parties/stt.py new file mode 100644 index 0000000..96c089e --- /dev/null +++ b/ielts_be/services/abc/third_parties/stt.py @@ -0,0 +1,14 @@ +from abc import ABC, abstractmethod +from typing import List + + +class ISpeechToTextService(ABC): + + @abstractmethod + async def speech_to_text(self, file: str): + pass + + @staticmethod + @abstractmethod + async def fix_overlap(llm, segments: List[str]): + pass diff --git a/ielts_be/services/abc/third_parties/tts.py b/ielts_be/services/abc/third_parties/tts.py new file mode 100644 index 0000000..018cc26 --- /dev/null +++ b/ielts_be/services/abc/third_parties/tts.py @@ -0,0 +1,22 @@ +from abc import ABC, abstractmethod +from typing import Union + + +class ITextToSpeechService(ABC): + + @abstractmethod + async def synthesize_speech(self, text: str, voice: str, engine: str, output_format: str): + pass + + @abstractmethod + async def text_to_speech(self, dialog) -> bytes: + pass + + @abstractmethod + async def _conversation_to_speech(self, conversation: list): + pass + + @abstractmethod + async def _text_to_speech(self, text: str): + pass + diff --git a/ielts_be/services/abc/third_parties/vid_gen.py b/ielts_be/services/abc/third_parties/vid_gen.py new file mode 100644 index 0000000..e31f89b --- /dev/null +++ b/ielts_be/services/abc/third_parties/vid_gen.py @@ -0,0 +1,22 @@ +from abc import ABC, abstractmethod +from typing import Dict, List, Optional + + +class IVideoGeneratorService(ABC): + + def __init__(self, avatars: Dict): + self._avatars = avatars + + async def get_avatars(self) -> List[Dict]: + return [ + {"name": name, "gender": data["avatar_gender"]} + for name, data in self._avatars.items() + ] + + @abstractmethod + async def create_video(self, text: str, avatar: str): + pass + + @abstractmethod + async def poll_status(self, video_id: str): + pass diff --git a/ielts_be/services/abc/training/__init__.py b/ielts_be/services/abc/training/__init__.py new file mode 100644 index 0000000..e1f6408 --- /dev/null +++ b/ielts_be/services/abc/training/__init__.py @@ -0,0 +1,7 @@ +from .training import ITrainingService +from .kb import IKnowledgeBase + +__all__ = [ + "ITrainingService", + "IKnowledgeBase" +] diff --git a/ielts_be/services/abc/training/kb.py b/ielts_be/services/abc/training/kb.py new file mode 100644 index 0000000..b6c25ef --- /dev/null +++ b/ielts_be/services/abc/training/kb.py @@ -0,0 +1,10 @@ +from abc import ABC, abstractmethod + +from typing import List, Dict + + +class IKnowledgeBase(ABC): + + @abstractmethod + def query_knowledge_base(self, query: str, category: str, top_k: int = 5) -> List[Dict[str, str]]: + pass diff --git a/ielts_be/services/abc/training/training.py b/ielts_be/services/abc/training/training.py new file mode 100644 index 0000000..fdae679 --- /dev/null +++ b/ielts_be/services/abc/training/training.py @@ -0,0 +1,14 @@ +from abc import ABC, abstractmethod + +from typing import Dict + + +class ITrainingService(ABC): + + @abstractmethod + async def fetch_tips(self, context: str, question: str, answer: str, correct_answer: str): + pass + + @abstractmethod + async def get_training_content(self, training_content: Dict) -> Dict: + pass diff --git a/ielts_be/services/abc/user.py b/ielts_be/services/abc/user.py new file mode 100644 index 0000000..bd01a75 --- /dev/null +++ b/ielts_be/services/abc/user.py @@ -0,0 +1,10 @@ +from abc import ABC, abstractmethod + +from ielts_be.dtos.user_batch import BatchUsersDTO + + +class IUserService(ABC): + + @abstractmethod + async def batch_users(self, batch: BatchUsersDTO): + pass diff --git a/ielts_be/services/impl/__init__.py b/ielts_be/services/impl/__init__.py new file mode 100644 index 0000000..0b0d4c0 --- /dev/null +++ b/ielts_be/services/impl/__init__.py @@ -0,0 +1,11 @@ +from .user import UserService +from .training import * +from .third_parties import * +from .exam import * + +__all__ = [ + "UserService" +] +__all__.extend(third_parties.__all__) +__all__.extend(training.__all__) +__all__.extend(exam.__all__) diff --git a/ielts_be/services/impl/exam/__init__.py b/ielts_be/services/impl/exam/__init__.py new file mode 100644 index 0000000..5a0d654 --- /dev/null +++ b/ielts_be/services/impl/exam/__init__.py @@ -0,0 +1,18 @@ +from .level import LevelService +from .listening import ListeningService +from .reading import ReadingService +from .speaking import SpeakingService +from .writing import WritingService +from .grade import GradeService +from .evaluation import EvaluationService + + +__all__ = [ + "LevelService", + "ListeningService", + "ReadingService", + "SpeakingService", + "WritingService", + "GradeService", + "EvaluationService" +] diff --git a/ielts_be/services/impl/exam/evaluation.py b/ielts_be/services/impl/exam/evaluation.py new file mode 100644 index 0000000..013f252 --- /dev/null +++ b/ielts_be/services/impl/exam/evaluation.py @@ -0,0 +1,104 @@ +import logging +from typing import Union, List + +from fastapi import BackgroundTasks + +from ielts_be.dtos.evaluation import EvaluationType +from ielts_be.dtos.speaking import GradeSpeakingItem +from ielts_be.dtos.writing import WritingGradeTaskDTO +from ielts_be.repositories import IDocumentStore +from ielts_be.services import IWritingService, ISpeakingService, IEvaluationService + + +class EvaluationService(IEvaluationService): + + def __init__(self, db: IDocumentStore, writing_service: IWritingService, speaking_service: ISpeakingService): + self._db = db + self._writing_service = writing_service + self._speaking_service = speaking_service + self._logger = logging.getLogger(__name__) + + async def create_evaluation( + self, + user_id: str, + session_id: str, + exercise_id: str, + eval_type: EvaluationType, + task: int + ): + await self._db.save_to_db( + "evaluation", + { + "user": user_id, + "session_id": session_id, + "exercise_id": exercise_id, + "type": eval_type, + "task": task, + "status": "pending" + } + ) + + async def begin_evaluation( + self, + user_id: str, session_id: str, task: int, + exercise_id: str, exercise_type: str, + solution: Union[WritingGradeTaskDTO, List[GradeSpeakingItem]], + background_tasks: BackgroundTasks + ): + background_tasks.add_task( + self._begin_evaluation, + user_id, session_id, task, + exercise_id, exercise_type, + solution + ) + + async def _begin_evaluation( + self, user_id: str, session_id: str, task: int, + exercise_id: str, exercise_type: str, + solution: Union[WritingGradeTaskDTO, List[GradeSpeakingItem]] + ): + try: + if exercise_type == EvaluationType.WRITING: + result = await self._writing_service.grade_writing_task( + task, + solution.question, + solution.answer, + solution.attachment + ) + else: + result = await self._speaking_service.grade_speaking_task( + task, + solution + ) + + await self._db.update( + "evaluation", + { + "user": user_id, + "exercise_id": exercise_id, + "session_id": session_id, + }, + { + "$set": { + "status": "completed", + "result": result, + } + } + ) + + except Exception as e: + self._logger.error(f"Error processing evaluation {session_id} - {exercise_id}: {str(e)}") + await self._db.update( + "evaluation", + { + "user": user_id, + "exercise_id": exercise_id, + "session_id": session_id + }, + { + "$set": { + "status": "error", + "error": str(e), + } + } + ) diff --git a/ielts_be/services/impl/exam/grade.py b/ielts_be/services/impl/exam/grade.py new file mode 100644 index 0000000..6685f33 --- /dev/null +++ b/ielts_be/services/impl/exam/grade.py @@ -0,0 +1,200 @@ +import json +from typing import List, Dict + +from ielts_be.configs.constants import GPTModels, TemperatureSettings +from ielts_be.services import ILLMService, IGradeService + + +class GradeService(IGradeService): + + def __init__(self, llm: ILLMService): + self._llm = llm + + async def grade_short_answers(self, data: Dict): + json_format = { + "exercises": [ + { + "id": 1, + "correct": True, + "correct_answer": " correct answer if wrong" + } + ] + } + + messages = [ + { + "role": "system", + "content": f'You are a helpful assistant designed to output JSON on this format: {json_format}' + }, + { + "role": "user", + "content": ( + 'Grade these answers according to the text content and write a correct answer if they are ' + f'wrong. Text, questions and answers:\n {data}' + ) + } + ] + + return await self._llm.prediction( + GPTModels.GPT_4_O, + messages, + ["exercises"], + TemperatureSettings.GEN_QUESTION_TEMPERATURE + ) + + async def calculate_grading_summary(self, extracted_sections: List): + ret = [] + + for section in extracted_sections: + openai_response_dict = await self._calculate_section_grade_summary(section) + ret.append( + { + 'code': section['code'], + 'name': section['name'], + 'grade': section['grade'], + 'evaluation': openai_response_dict['evaluation'], + 'suggestions': openai_response_dict['suggestions'], + 'bullet_points': self._parse_bullet_points(openai_response_dict['bullet_points'], section['grade']) + } + ) + + return {'sections': ret} + + async def _calculate_section_grade_summary(self, section): + section_name = section['name'] + section_grade = section['grade'] + messages = [ + { + "role": "user", + "content": ( + 'You are a IELTS test section grade evaluator. You will receive a IELTS test section name and the ' + 'grade obtained in the section. You should offer a evaluation comment on this grade and separately ' + 'suggestions on how to possibly get a better grade.' + ) + }, + { + "role": "user", + "content": f'Section: {str(section_name)} Grade: {str(section_grade)}', + }, + { + "role": "user", + "content": "Speak in third person." + }, + { + "role": "user", + "content": "Don't offer suggestions in the evaluation comment. Only in the suggestions section." + }, + { + "role": "user", + "content": ( + "Your evaluation comment on the grade should enunciate the grade, be insightful, be speculative, " + "be one paragraph long." + ) + }, + { + "role": "user", + "content": "Please save the evaluation comment and suggestions generated." + }, + { + "role": "user", + "content": f"Offer bullet points to improve the english {str(section_name)} ability." + }, + ] + + if section['code'] == "level": + messages[2:2] = [{ + "role": "user", + "content": ( + "This section is comprised of multiple choice questions that measure the user's overall english " + "level. These multiple choice questions are about knowledge on vocabulary, syntax, grammar rules, " + "and contextual usage. The grade obtained measures the ability in these areas and english language " + "overall." + ) + }] + elif section['code'] == "speaking": + messages[2:2] = [{ + "role": "user", + "content": ( + "This section is s designed to assess the English language proficiency of individuals who want to " + "study or work in English-speaking countries. The speaking section evaluates a candidate's ability " + "to communicate effectively in spoken English." + ) + }] + + chat_config = {'max_tokens': 1000, 'temperature': 0.2} + tools = self.get_tools() + + res = await self._llm.prediction_override( + model="gpt-3.5-turbo", + max_tokens=chat_config['max_tokens'], + temperature=chat_config['temperature'], + tools=tools, + messages=messages + ) + + return self._parse_openai_response(res) + + @staticmethod + def _parse_openai_response(response): + if 'choices' in response and len(response['choices']) > 0 and 'message' in response['choices'][ + 0] and 'tool_calls' in response['choices'][0]['message'] and isinstance( + response['choices'][0]['message']['tool_calls'], list) and len( + response['choices'][0]['message']['tool_calls']) > 0 and \ + response['choices'][0]['message']['tool_calls'][0]['function']['arguments']: + return json.loads(response['choices'][0]['message']['tool_calls'][0]['function']['arguments']) + else: + return {'evaluation': "", 'suggestions': "", 'bullet_points': []} + + @staticmethod + def _parse_bullet_points(bullet_points_str, grade): + max_grade_for_suggestions = 9 + if isinstance(bullet_points_str, str) and grade < max_grade_for_suggestions: + # Split the string by '\n' + lines = bullet_points_str.split('\n') + + # Remove '-' and trim whitespace from each line + cleaned_lines = [line.replace('-', '').strip() for line in lines] + + # Add '.' to lines that don't end with it + return [line + '.' if line and not line.endswith('.') else line for line in cleaned_lines] + else: + return [] + + @staticmethod + def get_tools(): + return [ + { + "type": "function", + "function": { + "name": "save_evaluation_and_suggestions", + "description": "Saves the evaluation and suggestions requested by input.", + "parameters": { + "type": "object", + "properties": { + "evaluation": { + "type": "string", + "description": ( + "A comment on the IELTS section grade obtained in the specific section and what " + "it could mean without suggestions." + ), + }, + "suggestions": { + "type": "string", + "description": ( + "A small paragraph text with suggestions on how to possibly get a better grade " + "than the one obtained." + ), + }, + "bullet_points": { + "type": "string", + "description": ( + "Text with four bullet points to improve the english speaking ability. Only " + "include text for the bullet points separated by a paragraph." + ), + }, + }, + "required": ["evaluation", "suggestions"], + }, + } + } + ] diff --git a/ielts_be/services/impl/exam/level/__init__.py b/ielts_be/services/impl/exam/level/__init__.py new file mode 100644 index 0000000..6ff23cb --- /dev/null +++ b/ielts_be/services/impl/exam/level/__init__.py @@ -0,0 +1,210 @@ +from asyncio import gather +from typing import Dict, Optional +from uuid import uuid4 + +from fastapi import UploadFile + +import random + +from ielts_be.configs.constants import EducationalContent +from ielts_be.dtos.level import LevelExercisesDTO +from ielts_be.repositories import IDocumentStore +from ielts_be.services import ( + ILevelService, ILLMService, IReadingService, + IWritingService, IListeningService, ISpeakingService +) +from .exercises import MultipleChoice, BlankSpace, PassageUtas, FillBlanks +from .full_exams import CustomLevelModule, LevelUtas +from .upload import UploadLevelModule + + +class LevelService(ILevelService): + + def __init__( + self, + llm: ILLMService, + document_store: IDocumentStore, + mc_variants: Dict, + reading_service: IReadingService, + writing_service: IWritingService, + speaking_service: ISpeakingService, + listening_service: IListeningService + ): + self._llm = llm + self._document_store = document_store + self._reading_service = reading_service + self._upload_module = UploadLevelModule(llm) + self._mc_variants = mc_variants + + self._mc = MultipleChoice(llm, mc_variants) + self._blank_space = BlankSpace(llm, mc_variants) + self._passage_utas = PassageUtas(llm, reading_service, mc_variants) + self._fill_blanks = FillBlanks(llm) + + self._level_utas = LevelUtas(llm, self, mc_variants) + self._custom = CustomLevelModule( + llm, self, reading_service, listening_service, writing_service, speaking_service + ) + + + async def upload_level(self, upload: UploadFile, solutions: Optional[UploadFile] = None) -> Dict: + return await self._upload_module.generate_level_from_file(upload, solutions) + + async def _generate_exercise(self, req_exercise, start_id): + if req_exercise.type == "mcBlank": + questions = await self._mc.gen_multiple_choice("blank_space", req_exercise.quantity, start_id) + questions["variant"] = "mcBlank" + questions["type"] = "multipleChoice" + questions["prompt"] = "Choose the correct word or group of words that completes the sentences." + return questions + + elif req_exercise.type == "mcUnderline": + questions = await self._mc.gen_multiple_choice("underline", req_exercise.quantity, start_id) + questions["variant"] = "mcUnderline" + questions["type"] = "multipleChoice" + questions["prompt"] = "Choose the underlined word or group of words that is not correct." + return questions + + elif req_exercise.type == "passageUtas": + topic = req_exercise.topic if req_exercise.topic else random.choice(EducationalContent.TOPICS) + exercise = await self._passage_utas.gen_reading_passage_utas( + start_id, + req_exercise.quantity, + topic, + req_exercise.text_size + ) + exercise["prompt"] = "Read the text and answer the questions below." + + return exercise + + elif req_exercise.type == "fillBlanksMC": + exercise = await self._fill_blanks.gen_fill_blanks( + start_id, + req_exercise.quantity, + req_exercise.text_size, + req_exercise.topic + ) + exercise["prompt"] = "Read the text below and choose the correct word for each space." + return exercise + + async def generate_exercises(self, dto: LevelExercisesDTO): + start_ids = [] + current_id = 1 + for req_exercise in dto.exercises: + start_ids.append(current_id) + current_id += req_exercise.quantity + + tasks = [ + self._generate_exercise(req_exercise, start_id) + for req_exercise, start_id in zip(dto.exercises, start_ids) + ] + questions = await gather(*tasks) + questions = [{'id': str(uuid4()), **exercise} for exercise in questions] + + return {"exercises": questions} + + # Just here to support other modules that I don't know if they are supposed to still be used + async def gen_multiple_choice(self, mc_variant: str, quantity: int, start_id: int = 1): + return await self._mc.gen_multiple_choice(mc_variant, quantity, start_id) + + async def gen_reading_passage_utas(self, start_id, mc_quantity: int, topic=Optional[str]): # sa_quantity: int, + return await self._passage_utas.gen_reading_passage_utas(start_id, mc_quantity, topic) + + async def gen_blank_space_text_utas(self, quantity: int, start_id: int, size: int, topic: str): + return await self._blank_space.gen_blank_space_text_utas(quantity, start_id, size, topic) + + async def get_level_exam( + self, number_of_exercises: int = 25, min_timer: int = 25, diagnostic: bool = False + ) -> Dict: + pass + + async def get_level_utas(self): + return await self._level_utas.get_level_utas() + + async def get_custom_level(self, data: Dict): + return await self._custom.get_custom_level(data) +""" + async def _generate_single_multiple_choice(self, mc_variant: str = "normal"): + mc_template = self._mc_variants[mc_variant]["questions"][0] + blank_mod = " blank space " if mc_variant == "blank_space" else " " + + messages = [ + { + "role": "system", + "content": ( + f'You are a helpful assistant designed to output JSON on this format: {mc_template}' + ) + }, + { + "role": "user", + "content": ( + f'Generate 1 multiple choice {blank_mod} question of 4 options for an english level exam, ' + f'it can be easy, intermediate or advanced.' + ) + + } + ] + + if mc_variant == "underline": + messages.append({ + "role": "user", + "content": ( + 'The type of multiple choice in the prompt has wrong words or group of words and the options ' + 'are to find the wrong word or group of words that are underlined in the prompt. \nExample:\n' + 'Prompt: "I complain about my boss all the time, but my colleagues thinks ' + 'the boss is nice."\n' + 'Options:\na: "complain"\nb: "all the time"\nc: "thinks"\nd: "is"' + ) + }) + + question = await self._llm.prediction( + GPTModels.GPT_4_O, messages, ["options"], TemperatureSettings.GEN_QUESTION_TEMPERATURE + ) + + return question +""" +""" + async def _replace_exercise_if_exists( + self, all_exams, current_exercise, current_exam, seen_keys, mc_variant: str, utas: bool = False + ): + # Extracting relevant fields for comparison + key = (current_exercise['prompt'], tuple(sorted(option['text'] for option in current_exercise['options']))) + # Check if the key is in the set + if key in seen_keys: + return await self._replace_exercise_if_exists( + all_exams, await self._generate_single_multiple_choice(mc_variant), current_exam, seen_keys, + mc_variant, utas + ) + else: + seen_keys.add(key) + + if not utas: + for exam in all_exams: + exam_dict = exam.to_dict() + if len(exam_dict.get("parts", [])) > 0: + exercise_dict = exam_dict.get("parts", [])[0] + if len(exercise_dict.get("exercises", [])) > 0: + if any( + exercise["prompt"] == current_exercise["prompt"] and + any(exercise["options"][0]["text"] == current_option["text"] for current_option in + current_exercise["options"]) + for exercise in exercise_dict.get("exercises", [])[0]["questions"] + ): + return await self._replace_exercise_if_exists( + all_exams, await self._generate_single_multiple_choice(mc_variant), current_exam, + seen_keys, mc_variant, utas + ) + else: + for exam in all_exams: + if any( + exercise["prompt"] == current_exercise["prompt"] and + any(exercise["options"][0]["text"] == current_option["text"] for current_option in + current_exercise["options"]) + for exercise in exam.get("questions", []) + ): + return await self._replace_exercise_if_exists( + all_exams, await self._generate_single_multiple_choice(mc_variant), current_exam, + seen_keys, mc_variant, utas + ) + return current_exercise, seen_keys +""" diff --git a/ielts_be/services/impl/exam/level/exercises/__init__.py b/ielts_be/services/impl/exam/level/exercises/__init__.py new file mode 100644 index 0000000..a7778ec --- /dev/null +++ b/ielts_be/services/impl/exam/level/exercises/__init__.py @@ -0,0 +1,11 @@ +from .multiple_choice import MultipleChoice +from .blank_space import BlankSpace +from .passage_utas import PassageUtas +from .fill_blanks import FillBlanks + +__all__ = [ + "MultipleChoice", + "BlankSpace", + "PassageUtas", + "FillBlanks" +] diff --git a/ielts_be/services/impl/exam/level/exercises/blank_space.py b/ielts_be/services/impl/exam/level/exercises/blank_space.py new file mode 100644 index 0000000..fe39fc7 --- /dev/null +++ b/ielts_be/services/impl/exam/level/exercises/blank_space.py @@ -0,0 +1,44 @@ +import random + +from ielts_be.configs.constants import EducationalContent, GPTModels, TemperatureSettings +from ielts_be.services import ILLMService + + +class BlankSpace: + + def __init__(self, llm: ILLMService, mc_variants: dict): + self._llm = llm + self._mc_variants = mc_variants + + async def gen_blank_space_text_utas( + self, quantity: int, start_id: int, size: int, topic=None + ): + if not topic: + topic = random.choice(EducationalContent.MTI_TOPICS) + + json_template = self._mc_variants["blank_space_text"] + messages = [ + { + "role": "system", + "content": f'You are a helpful assistant designed to output JSON on this format: {json_template}' + }, + { + "role": "user", + "content": f'Generate a text of at least {size} words about the topic {topic}.' + }, + { + "role": "user", + "content": ( + f'From the generated text choose {quantity} words (cannot be sequential words) to replace ' + 'once with {{id}} where id starts on ' + str(start_id) + ' and is incremented for each word. ' + 'The ids must be ordered throughout the text and the words must be replaced only once. ' + 'Put the removed words and respective ids on the words array of the json in the correct order.' + ) + } + ] + + question = await self._llm.prediction( + GPTModels.GPT_4_O, messages, ["question"], TemperatureSettings.GEN_QUESTION_TEMPERATURE + ) + + return question["question"] diff --git a/ielts_be/services/impl/exam/level/exercises/fill_blanks.py b/ielts_be/services/impl/exam/level/exercises/fill_blanks.py new file mode 100644 index 0000000..976aa56 --- /dev/null +++ b/ielts_be/services/impl/exam/level/exercises/fill_blanks.py @@ -0,0 +1,73 @@ +import random + +from ielts_be.configs.constants import GPTModels, TemperatureSettings, EducationalContent +from ielts_be.services import ILLMService + + +class FillBlanks: + + def __init__(self, llm: ILLMService): + self._llm = llm + + + async def gen_fill_blanks( + self, start_id: int, quantity: int, size: int = 300, topic=None + ): + if not topic: + topic = random.choice(EducationalContent.MTI_TOPICS) + print(quantity) + print(start_id) + messages = [ + { + "role": "system", + "content": f'You are a helpful assistant designed to output JSON on this format: {self._fill_blanks_mc_template()}' + }, + { + "role": "user", + "content": f'Generate a text of at least {size} words about the topic {topic}.' + }, + { + "role": "user", + "content": ( + f'From the generated text choose exactly {quantity} words (cannot be sequential words) replace ' + 'each with {{id}} (starting from ' + str(start_id) + ' and incrementing), then generate a ' + 'JSON object containing: the modified text, a solutions array with each word\'s correct ' + 'letter (A-D), and a words array containing each id with four options where one is ' + 'the original word (matching the solution) and three are plausible but incorrect ' + 'alternatives that maintain grammatical consistency. ' + 'You cannot use repeated words!' #TODO: Solve this after + ) + } + ] + question = await self._llm.prediction( + GPTModels.GPT_4_O, messages, [], TemperatureSettings.GEN_QUESTION_TEMPERATURE + ) + return { + **question, + "type": "fillBlanks", + "variant": "mc", + "prompt": "Click a blank to select the appropriate word for it.", + } + + @staticmethod + def _fill_blanks_mc_template(): + return { + "text": "", + "solutions": [ + { + "id": "", + "solution": "" + } + ], + "words": [ + { + "id": "", + "options": { + "A": "", + "B": "", + "C": "", + "D": "" + } + } + ] + } \ No newline at end of file diff --git a/ielts_be/services/impl/exam/level/exercises/multiple_choice.py b/ielts_be/services/impl/exam/level/exercises/multiple_choice.py new file mode 100644 index 0000000..ea4e129 --- /dev/null +++ b/ielts_be/services/impl/exam/level/exercises/multiple_choice.py @@ -0,0 +1,84 @@ +from ielts_be.configs.constants import GPTModels, TemperatureSettings +from ielts_be.helpers import ExercisesHelper +from ielts_be.services import ILLMService + + +class MultipleChoice: + + def __init__(self, llm: ILLMService, mc_variants: dict): + self._llm = llm + self._mc_variants = mc_variants + + async def gen_multiple_choice( + self, mc_variant: str, quantity: int, start_id: int = 1 + ): + mc_template = self._mc_variants[mc_variant] + blank_mod = " blank space " if mc_variant == "blank_space" else " " + + gen_multiple_choice_for_text: str = ( + 'Generate {quantity} multiple choice{blank}questions of 4 options for an english level exam, some easy ' + 'questions, some intermediate questions and some advanced questions. Ensure that the questions cover ' + 'a range of topics such as verb tense, subject-verb agreement, pronoun usage, sentence structure, and ' + 'punctuation. Make sure every question only has 1 correct answer.' + ) + + messages = [ + { + "role": "system", + "content": ( + f'You are a helpful assistant designed to output JSON on this format: {mc_template}' + ) + }, + { + "role": "user", + "content": gen_multiple_choice_for_text.format(quantity=str(quantity), blank=blank_mod) + } + ] + + if mc_variant == "underline": + messages.append({ + "role": "user", + "content": ( + 'The type of multiple choice in the prompt has wrong words or group of words and the options ' + 'are to find the wrong word or group of words that are underlined in the prompt. \nExample:\n' + 'Prompt: "I complain about my boss all the time, but my colleagues thinks ' + 'the boss is nice."\n' + 'Options:\na: "complain"\nb: "all the time"\nc: "thinks"\nd: "is"' + ) + }) + + questions = await self._llm.prediction( + GPTModels.GPT_4_O, messages, ["questions"], TemperatureSettings.GEN_QUESTION_TEMPERATURE + ) + return ExercisesHelper.fix_exercise_ids(questions, start_id) + +""" + if len(question["questions"]) != quantity: + return await self.gen_multiple_choice(mc_variant, quantity, start_id, utas=utas, all_exams=all_exams) + else: + if not utas: + all_exams = await self._document_store.get_all("level") + seen_keys = set() + for i in range(len(question["questions"])): + question["questions"][i], seen_keys = await self._replace_exercise_if_exists( + all_exams, question["questions"][i], question, seen_keys, mc_variant, utas + ) + return { + "id": str(uuid.uuid4()), + "prompt": "Select the appropriate option.", + "questions": ExercisesHelper.fix_exercise_ids(question, start_id)["questions"], + "type": "multipleChoice", + } + else: + if all_exams is not None: + seen_keys = set() + for i in range(len(question["questions"])): + question["questions"][i], seen_keys = await self._replace_exercise_if_exists( + all_exams, question["questions"][i], question, seen_keys, mc_variant, utas + ) + response = ExercisesHelper.fix_exercise_ids(question, start_id) + response["questions"] = ExercisesHelper.randomize_mc_options_order(response["questions"]) + return response + """ + + diff --git a/ielts_be/services/impl/exam/level/exercises/passage_utas.py b/ielts_be/services/impl/exam/level/exercises/passage_utas.py new file mode 100644 index 0000000..683cee4 --- /dev/null +++ b/ielts_be/services/impl/exam/level/exercises/passage_utas.py @@ -0,0 +1,91 @@ +from typing import Optional + +from ielts_be.configs.constants import GPTModels, TemperatureSettings +from ielts_be.helpers import ExercisesHelper +from ielts_be.services import ILLMService, IReadingService + + +class PassageUtas: + + def __init__(self, llm: ILLMService, reading_service: IReadingService, mc_variants: dict): + self._llm = llm + self._reading_service = reading_service + self._mc_variants = mc_variants + + async def gen_reading_passage_utas( + self, start_id, mc_quantity: int, topic: Optional[str], word_size: Optional[int] # sa_quantity: int, + ): + + passage = await self._reading_service.generate_reading_passage(1, topic, word_size) + mc_exercises = await self._gen_text_multiple_choice_utas(passage["text"], start_id, mc_quantity) + mc_exercises["type"] = "multipleChoice" + """ + exercises: { + "shortAnswer": short_answer, + "multipleChoice": mc_exercises, + }, + """ + return { + **mc_exercises, + "passage": { + "content": passage["text"], + "title": passage["title"] + }, + "mcVariant": "passageUtas" + } + + async def _gen_short_answer_utas(self, text: str, start_id: int, sa_quantity: int): + json_format = {"questions": [{"id": 1, "question": "question", "possible_answers": ["answer_1", "answer_2"]}]} + + messages = [ + { + "role": "system", + "content": f'You are a helpful assistant designed to output JSON on this format: {json_format}' + }, + { + "role": "user", + "content": ( + f'Generate {sa_quantity} short answer questions, and the possible answers, must have ' + f'maximum 3 words per answer, about this text:\n"{text}"' + ) + }, + { + "role": "user", + "content": f'The id starts at {start_id}.' + } + ] + + question = await self._llm.prediction( + GPTModels.GPT_4_O, messages, ["questions"], TemperatureSettings.GEN_QUESTION_TEMPERATURE + ) + + return question["questions"] + + async def _gen_text_multiple_choice_utas(self, text: str, start_id: int, mc_quantity: int): + json_template = self._mc_variants["text_mc_utas"] + + messages = [ + { + "role": "system", + "content": f'You are a helpful assistant designed to output JSON on this format: {json_template}' + }, + { + "role": "user", + "content": f'Generate {mc_quantity} multiple choice questions of 4 options for this text:\n{text}' + }, + { + "role": "user", + "content": 'Make sure every question only has 1 correct answer.' + } + ] + + question = await self._llm.prediction( + GPTModels.GPT_4_O, messages, ["questions"], TemperatureSettings.GEN_QUESTION_TEMPERATURE + ) + + if len(question["questions"]) != mc_quantity: + return await self._gen_text_multiple_choice_utas(text, mc_quantity, start_id) + else: + response = ExercisesHelper.fix_exercise_ids(question, start_id) + response["questions"] = ExercisesHelper.randomize_mc_options_order(response["questions"]) + return response \ No newline at end of file diff --git a/ielts_be/services/impl/exam/level/full_exams/__init__.py b/ielts_be/services/impl/exam/level/full_exams/__init__.py new file mode 100644 index 0000000..433a6e2 --- /dev/null +++ b/ielts_be/services/impl/exam/level/full_exams/__init__.py @@ -0,0 +1,7 @@ +from .custom import CustomLevelModule +from .level_utas import LevelUtas + +__all__ = [ + "CustomLevelModule", + "LevelUtas" +] diff --git a/ielts_be/services/impl/exam/level/full_exams/custom.py b/ielts_be/services/impl/exam/level/full_exams/custom.py new file mode 100644 index 0000000..1b1492d --- /dev/null +++ b/ielts_be/services/impl/exam/level/full_exams/custom.py @@ -0,0 +1,335 @@ +import queue +import random + +from typing import Dict + +from ielts_be.configs.constants import CustomLevelExerciseTypes, EducationalContent +from ielts_be.services import ( + ILLMService, ILevelService, IReadingService, + IWritingService, IListeningService, ISpeakingService +) + + +class CustomLevelModule: + + def __init__( + self, + llm: ILLMService, + level: ILevelService, + reading: IReadingService, + listening: IListeningService, + writing: IWritingService, + speaking: ISpeakingService + ): + self._llm = llm + self._level = level + self._reading = reading + self._listening = listening + self._writing = writing + self._speaking = speaking + + # TODO: I've changed this to retrieve the args from the body request and not request query args + async def get_custom_level(self, data: Dict): + nr_exercises = int(data.get('nr_exercises')) + + exercise_id = 1 + response = { + "exercises": {}, + "module": "level" + } + for i in range(1, nr_exercises + 1, 1): + exercise_type = data.get(f'exercise_{i}_type') + exercise_difficulty = data.get(f'exercise_{i}_difficulty', random.choice(['easy', 'medium', 'hard'])) + exercise_qty = int(data.get(f'exercise_{i}_qty', -1)) + exercise_topic = data.get(f'exercise_{i}_topic', random.choice(EducationalContent.TOPICS)) + exercise_topic_2 = data.get(f'exercise_{i}_topic_2', random.choice(EducationalContent.TOPICS)) + exercise_text_size = int(data.get(f'exercise_{i}_text_size', 700)) + exercise_sa_qty = int(data.get(f'exercise_{i}_sa_qty', -1)) + exercise_mc_qty = int(data.get(f'exercise_{i}_mc_qty', -1)) + exercise_mc3_qty = int(data.get(f'exercise_{i}_mc3_qty', -1)) + exercise_fillblanks_qty = int(data.get(f'exercise_{i}_fillblanks_qty', -1)) + exercise_writeblanks_qty = int(data.get(f'exercise_{i}_writeblanks_qty', -1)) + exercise_writeblanksquestions_qty = int(data.get(f'exercise_{i}_writeblanksquestions_qty', -1)) + exercise_writeblanksfill_qty = int(data.get(f'exercise_{i}_writeblanksfill_qty', -1)) + exercise_writeblanksform_qty = int(data.get(f'exercise_{i}_writeblanksform_qty', -1)) + exercise_truefalse_qty = int(data.get(f'exercise_{i}_truefalse_qty', -1)) + exercise_paragraphmatch_qty = int(data.get(f'exercise_{i}_paragraphmatch_qty', -1)) + exercise_ideamatch_qty = int(data.get(f'exercise_{i}_ideamatch_qty', -1)) + + if exercise_type == CustomLevelExerciseTypes.MULTIPLE_CHOICE_4.value: + response["exercises"][f"exercise_{i}"] = {} + response["exercises"][f"exercise_{i}"]["questions"] = [] + response["exercises"][f"exercise_{i}"]["type"] = "multipleChoice" + while exercise_qty > 0: + if exercise_qty - 15 > 0: + qty = 15 + else: + qty = exercise_qty + + mc_response = await self._level.gen_multiple_choice( + "normal", qty, exercise_id, utas=True, + all_exams=response["exercises"][f"exercise_{i}"]["questions"] + ) + response["exercises"][f"exercise_{i}"]["questions"].extend(mc_response["questions"]) + exercise_id = exercise_id + qty + exercise_qty = exercise_qty - qty + + elif exercise_type == CustomLevelExerciseTypes.MULTIPLE_CHOICE_BLANK_SPACE.value: + response["exercises"][f"exercise_{i}"] = {} + response["exercises"][f"exercise_{i}"]["questions"] = [] + response["exercises"][f"exercise_{i}"]["type"] = "multipleChoice" + while exercise_qty > 0: + if exercise_qty - 15 > 0: + qty = 15 + else: + qty = exercise_qty + + mc_response = await self._level.gen_multiple_choice( + "blank_space", qty, exercise_id, utas=True, + all_exams=response["exercises"][f"exercise_{i}"]["questions"] + ) + response["exercises"][f"exercise_{i}"]["questions"].extend(mc_response["questions"]) + + exercise_id = exercise_id + qty + exercise_qty = exercise_qty - qty + + elif exercise_type == CustomLevelExerciseTypes.MULTIPLE_CHOICE_UNDERLINED.value: + response["exercises"][f"exercise_{i}"] = {} + response["exercises"][f"exercise_{i}"]["questions"] = [] + response["exercises"][f"exercise_{i}"]["type"] = "multipleChoice" + while exercise_qty > 0: + if exercise_qty - 15 > 0: + qty = 15 + else: + qty = exercise_qty + + mc_response = await self._level.gen_multiple_choice( + "underline", qty, exercise_id, utas=True, + all_exams=response["exercises"][f"exercise_{i}"]["questions"] + ) + response["exercises"][f"exercise_{i}"]["questions"].extend(mc_response["questions"]) + + exercise_id = exercise_id + qty + exercise_qty = exercise_qty - qty + + elif exercise_type == CustomLevelExerciseTypes.BLANK_SPACE_TEXT.value: + response["exercises"][f"exercise_{i}"] = await self._level.gen_blank_space_text_utas( + exercise_qty, exercise_id, exercise_text_size + ) + response["exercises"][f"exercise_{i}"]["type"] = "blankSpaceText" + exercise_id = exercise_id + exercise_qty + elif exercise_type == CustomLevelExerciseTypes.READING_PASSAGE_UTAS.value: + response["exercises"][f"exercise_{i}"] = await self._level.gen_reading_passage_utas( + exercise_id, exercise_sa_qty, exercise_mc_qty, exercise_topic + ) + response["exercises"][f"exercise_{i}"]["type"] = "readingExercises" + exercise_id = exercise_id + exercise_qty + elif exercise_type == CustomLevelExerciseTypes.WRITING_LETTER.value: + response["exercises"][f"exercise_{i}"] = await self._writing.get_writing_task_general_question( + 1, exercise_topic, exercise_difficulty + ) + response["exercises"][f"exercise_{i}"]["type"] = "writing" + exercise_id = exercise_id + 1 + elif exercise_type == CustomLevelExerciseTypes.WRITING_2.value: + response["exercises"][f"exercise_{i}"] = await self._writing.get_writing_task_general_question( + 2, exercise_topic, exercise_difficulty + ) + response["exercises"][f"exercise_{i}"]["type"] = "writing" + exercise_id = exercise_id + 1 + elif exercise_type == CustomLevelExerciseTypes.SPEAKING_1.value: + response["exercises"][f"exercise_{i}"] = await self._speaking.get_speaking_part( + 1, exercise_topic, exercise_difficulty, exercise_topic_2 + ) + response["exercises"][f"exercise_{i}"]["type"] = "interactiveSpeaking" + exercise_id = exercise_id + 1 + elif exercise_type == CustomLevelExerciseTypes.SPEAKING_2.value: + response["exercises"][f"exercise_{i}"] = await self._speaking.get_speaking_part( + 2, exercise_topic, exercise_difficulty + ) + response["exercises"][f"exercise_{i}"]["type"] = "speaking" + exercise_id = exercise_id + 1 + elif exercise_type == CustomLevelExerciseTypes.SPEAKING_3.value: + response["exercises"][f"exercise_{i}"] = await self._speaking.get_speaking_part( + 3, exercise_topic, exercise_difficulty + ) + response["exercises"][f"exercise_{i}"]["type"] = "interactiveSpeaking" + exercise_id = exercise_id + 1 + elif exercise_type == CustomLevelExerciseTypes.READING_1.value: + exercises = [] + exercise_qty_q = queue.Queue() + total_qty = 0 + if exercise_fillblanks_qty != -1: + exercises.append('fillBlanks') + exercise_qty_q.put(exercise_fillblanks_qty) + total_qty = total_qty + exercise_fillblanks_qty + if exercise_writeblanks_qty != -1: + exercises.append('writeBlanks') + exercise_qty_q.put(exercise_writeblanks_qty) + total_qty = total_qty + exercise_writeblanks_qty + if exercise_truefalse_qty != -1: + exercises.append('trueFalse') + exercise_qty_q.put(exercise_truefalse_qty) + total_qty = total_qty + exercise_truefalse_qty + if exercise_paragraphmatch_qty != -1: + exercises.append('paragraphMatch') + exercise_qty_q.put(exercise_paragraphmatch_qty) + total_qty = total_qty + exercise_paragraphmatch_qty + + response["exercises"][f"exercise_{i}"] = await self._reading.gen_reading_passage( + 1, exercise_topic, exercises, exercise_qty_q, exercise_difficulty, exercise_id + ) + response["exercises"][f"exercise_{i}"]["type"] = "reading" + + exercise_id = exercise_id + total_qty + elif exercise_type == CustomLevelExerciseTypes.READING_2.value: + exercises = [] + exercise_qty_q = queue.Queue() + total_qty = 0 + if exercise_fillblanks_qty != -1: + exercises.append('fillBlanks') + exercise_qty_q.put(exercise_fillblanks_qty) + total_qty = total_qty + exercise_fillblanks_qty + if exercise_writeblanks_qty != -1: + exercises.append('writeBlanks') + exercise_qty_q.put(exercise_writeblanks_qty) + total_qty = total_qty + exercise_writeblanks_qty + if exercise_truefalse_qty != -1: + exercises.append('trueFalse') + exercise_qty_q.put(exercise_truefalse_qty) + total_qty = total_qty + exercise_truefalse_qty + if exercise_paragraphmatch_qty != -1: + exercises.append('paragraphMatch') + exercise_qty_q.put(exercise_paragraphmatch_qty) + total_qty = total_qty + exercise_paragraphmatch_qty + + response["exercises"][f"exercise_{i}"] = await self._reading.gen_reading_passage( + 2, exercise_topic, exercises, exercise_qty_q, exercise_difficulty, exercise_id + ) + response["exercises"][f"exercise_{i}"]["type"] = "reading" + + exercise_id = exercise_id + total_qty + elif exercise_type == CustomLevelExerciseTypes.READING_3.value: + exercises = [] + exercise_qty_q = queue.Queue() + total_qty = 0 + if exercise_fillblanks_qty != -1: + exercises.append('fillBlanks') + exercise_qty_q.put(exercise_fillblanks_qty) + total_qty = total_qty + exercise_fillblanks_qty + if exercise_writeblanks_qty != -1: + exercises.append('writeBlanks') + exercise_qty_q.put(exercise_writeblanks_qty) + total_qty = total_qty + exercise_writeblanks_qty + if exercise_truefalse_qty != -1: + exercises.append('trueFalse') + exercise_qty_q.put(exercise_truefalse_qty) + total_qty = total_qty + exercise_truefalse_qty + if exercise_paragraphmatch_qty != -1: + exercises.append('paragraphMatch') + exercise_qty_q.put(exercise_paragraphmatch_qty) + total_qty = total_qty + exercise_paragraphmatch_qty + if exercise_ideamatch_qty != -1: + exercises.append('ideaMatch') + exercise_qty_q.put(exercise_ideamatch_qty) + total_qty = total_qty + exercise_ideamatch_qty + + response["exercises"][f"exercise_{i}"] = await self._reading.gen_reading_passage( + 3, exercise_topic, exercises, exercise_qty_q, exercise_id, exercise_difficulty + ) + response["exercises"][f"exercise_{i}"]["type"] = "reading" + + exercise_id = exercise_id + total_qty + elif exercise_type == CustomLevelExerciseTypes.LISTENING_1.value: + exercises = [] + exercise_qty_q = queue.Queue() + total_qty = 0 + if exercise_mc_qty != -1: + exercises.append('multipleChoice') + exercise_qty_q.put(exercise_mc_qty) + total_qty = total_qty + exercise_mc_qty + if exercise_writeblanksquestions_qty != -1: + exercises.append('writeBlanksQuestions') + exercise_qty_q.put(exercise_writeblanksquestions_qty) + total_qty = total_qty + exercise_writeblanksquestions_qty + if exercise_writeblanksfill_qty != -1: + exercises.append('writeBlanksFill') + exercise_qty_q.put(exercise_writeblanksfill_qty) + total_qty = total_qty + exercise_writeblanksfill_qty + if exercise_writeblanksform_qty != -1: + exercises.append('writeBlanksForm') + exercise_qty_q.put(exercise_writeblanksform_qty) + total_qty = total_qty + exercise_writeblanksform_qty + + response["exercises"][f"exercise_{i}"] = await self._listening.get_listening_question( + 1, exercise_topic, exercises, exercise_difficulty, exercise_qty_q, exercise_id + ) + response["exercises"][f"exercise_{i}"]["type"] = "listening" + + exercise_id = exercise_id + total_qty + elif exercise_type == CustomLevelExerciseTypes.LISTENING_2.value: + exercises = [] + exercise_qty_q = queue.Queue() + total_qty = 0 + if exercise_mc_qty != -1: + exercises.append('multipleChoice') + exercise_qty_q.put(exercise_mc_qty) + total_qty = total_qty + exercise_mc_qty + if exercise_writeblanksquestions_qty != -1: + exercises.append('writeBlanksQuestions') + exercise_qty_q.put(exercise_writeblanksquestions_qty) + total_qty = total_qty + exercise_writeblanksquestions_qty + + response["exercises"][f"exercise_{i}"] = await self._listening.get_listening_question( + 2, exercise_topic, exercises, exercise_difficulty, exercise_qty_q, exercise_id + ) + response["exercises"][f"exercise_{i}"]["type"] = "listening" + + exercise_id = exercise_id + total_qty + elif exercise_type == CustomLevelExerciseTypes.LISTENING_3.value: + exercises = [] + exercise_qty_q = queue.Queue() + total_qty = 0 + if exercise_mc3_qty != -1: + exercises.append('multipleChoice3Options') + exercise_qty_q.put(exercise_mc3_qty) + total_qty = total_qty + exercise_mc3_qty + if exercise_writeblanksquestions_qty != -1: + exercises.append('writeBlanksQuestions') + exercise_qty_q.put(exercise_writeblanksquestions_qty) + total_qty = total_qty + exercise_writeblanksquestions_qty + + response["exercises"][f"exercise_{i}"] = await self._listening.get_listening_question( + 3, exercise_topic, exercises, exercise_difficulty, exercise_qty_q, exercise_id + ) + response["exercises"][f"exercise_{i}"]["type"] = "listening" + + exercise_id = exercise_id + total_qty + elif exercise_type == CustomLevelExerciseTypes.LISTENING_4.value: + exercises = [] + exercise_qty_q = queue.Queue() + total_qty = 0 + if exercise_mc_qty != -1: + exercises.append('multipleChoice') + exercise_qty_q.put(exercise_mc_qty) + total_qty = total_qty + exercise_mc_qty + if exercise_writeblanksquestions_qty != -1: + exercises.append('writeBlanksQuestions') + exercise_qty_q.put(exercise_writeblanksquestions_qty) + total_qty = total_qty + exercise_writeblanksquestions_qty + if exercise_writeblanksfill_qty != -1: + exercises.append('writeBlanksFill') + exercise_qty_q.put(exercise_writeblanksfill_qty) + total_qty = total_qty + exercise_writeblanksfill_qty + if exercise_writeblanksform_qty != -1: + exercises.append('writeBlanksForm') + exercise_qty_q.put(exercise_writeblanksform_qty) + total_qty = total_qty + exercise_writeblanksform_qty + + response["exercises"][f"exercise_{i}"] = await self._listening.get_listening_question( + 4, exercise_topic, exercises, exercise_difficulty, exercise_qty_q, exercise_id + ) + response["exercises"][f"exercise_{i}"]["type"] = "listening" + + exercise_id = exercise_id + total_qty + + return response \ No newline at end of file diff --git a/ielts_be/services/impl/exam/level/full_exams/level_utas.py b/ielts_be/services/impl/exam/level/full_exams/level_utas.py new file mode 100644 index 0000000..6234524 --- /dev/null +++ b/ielts_be/services/impl/exam/level/full_exams/level_utas.py @@ -0,0 +1,119 @@ +import json +import uuid + +from ielts_be.services import ILLMService + + +class LevelUtas: + + + def __init__(self, llm: ILLMService, level_service, mc_variants: dict): + self._llm = llm + self._mc_variants = mc_variants + self._level_service = level_service + + + async def get_level_utas(self, diagnostic: bool = False, min_timer: int = 25): + # Formats + mc = { + "id": str(uuid.uuid4()), + "prompt": "Choose the correct word or group of words that completes the sentences.", + "questions": None, + "type": "multipleChoice", + "part": 1 + } + + umc = { + "id": str(uuid.uuid4()), + "prompt": "Choose the underlined word or group of words that is not correct.", + "questions": None, + "type": "multipleChoice", + "part": 2 + } + + bs_1 = { + "id": str(uuid.uuid4()), + "prompt": "Read the text and write the correct word for each space.", + "questions": None, + "type": "blankSpaceText", + "part": 3 + } + + bs_2 = { + "id": str(uuid.uuid4()), + "prompt": "Read the text and write the correct word for each space.", + "questions": None, + "type": "blankSpaceText", + "part": 4 + } + + reading = { + "id": str(uuid.uuid4()), + "prompt": "Read the text and answer the questions below.", + "questions": None, + "type": "readingExercises", + "part": 5 + } + + all_mc_questions = [] + + # PART 1 + # await self._gen_multiple_choice("normal", number_of_exercises, utas=False) + mc_exercises1 = await self._level_service.gen_multiple_choice( + "blank_space", 15, 1, utas=True, all_exams=all_mc_questions + ) + print(json.dumps(mc_exercises1, indent=4)) + all_mc_questions.append(mc_exercises1) + + # PART 2 + mc_exercises2 = await self._level_service.gen_multiple_choice( + "blank_space", 15, 16, utas=True, all_exams=all_mc_questions + ) + print(json.dumps(mc_exercises2, indent=4)) + all_mc_questions.append(mc_exercises2) + + # PART 3 + mc_exercises3 = await self._level_service.gen_multiple_choice( + "blank_space", 15, 31, utas=True, all_exams=all_mc_questions + ) + print(json.dumps(mc_exercises3, indent=4)) + all_mc_questions.append(mc_exercises3) + + mc_exercises = mc_exercises1['questions'] + mc_exercises2['questions'] + mc_exercises3['questions'] + print(json.dumps(mc_exercises, indent=4)) + mc["questions"] = mc_exercises + + # Underlined mc + underlined_mc = await self._level_service.gen_multiple_choice( + "underline", 15, 46, utas=True, all_exams=all_mc_questions + ) + print(json.dumps(underlined_mc, indent=4)) + umc["questions"] = underlined_mc + + # Blank Space text 1 + blank_space_text_1 = await self._level_service.gen_blank_space_text_utas(12, 61, 250) + print(json.dumps(blank_space_text_1, indent=4)) + bs_1["questions"] = blank_space_text_1 + + # Blank Space text 2 + blank_space_text_2 = await self._level_service.gen_blank_space_text_utas(14, 73, 350) + print(json.dumps(blank_space_text_2, indent=4)) + bs_2["questions"] = blank_space_text_2 + + # Reading text + reading_text = await self._level_service.gen_reading_passage_utas(87, 10, 4) + print(json.dumps(reading_text, indent=4)) + reading["questions"] = reading_text + + return { + "exercises": { + "blankSpaceMultipleChoice": mc, + "underlinedMultipleChoice": umc, + "blankSpaceText1": bs_1, + "blankSpaceText2": bs_2, + "readingExercises": reading, + }, + "isDiagnostic": diagnostic, + "minTimer": min_timer, + "module": "level" + } \ No newline at end of file diff --git a/ielts_be/services/impl/exam/level/mc_variants.json b/ielts_be/services/impl/exam/level/mc_variants.json new file mode 100644 index 0000000..699ae00 --- /dev/null +++ b/ielts_be/services/impl/exam/level/mc_variants.json @@ -0,0 +1,137 @@ +{ + "normal": { + "questions": [ + { + "id": "9", + "options": [ + { + "id": "A", + "text": "And" + }, + { + "id": "B", + "text": "Cat" + }, + { + "id": "C", + "text": "Happy" + }, + { + "id": "D", + "text": "Jump" + } + ], + "prompt": "Which of the following is a conjunction?", + "solution": "A", + "variant": "text" + } + ] + }, + "blank_space": { + "questions": [ + { + "id": "9", + "options": [ + { + "id": "A", + "text": "This" + }, + { + "id": "B", + "text": "Those" + }, + { + "id": "C", + "text": "These" + }, + { + "id": "D", + "text": "That" + } + ], + "prompt": "_____ man there is very kind.", + "solution": "A", + "variant": "text" + } + ] + }, + "underline": { + "questions": [ + { + "id": "9", + "options": [ + { + "id": "A", + "text": "was" + }, + { + "id": "B", + "text": "for work" + }, + { + "id": "C", + "text": "because" + }, + { + "id": "D", + "text": "could" + } + ], + "prompt": "I was late for work yesterday because I could start my car.", + "solution": "D", + "variant": "text" + } + ] + }, + "blank_space_text": { + "question": { + "words": [ + { + "id": "1", + "text": "a" + }, + { + "id": "2", + "text": "b" + }, + { + "id": "3", + "text": "c" + }, + { + "id": "4", + "text": "d" + } + ], + "text": "text" + } + }, + "text_mc_utas": { + "questions": [ + { + "id": "9", + "options": [ + { + "id": "A", + "text": "a" + }, + { + "id": "B", + "text": "b" + }, + { + "id": "C", + "text": "c" + }, + { + "id": "D", + "text": "d" + } + ], + "prompt": "prompt", + "solution": "A", + "variant": "text" + } + ] + } +} \ No newline at end of file diff --git a/modules/upload_level/service.py b/ielts_be/services/impl/exam/level/upload.py similarity index 56% rename from modules/upload_level/service.py rename to ielts_be/services/impl/exam/level/upload.py index 6a493b9..7b4004b 100644 --- a/modules/upload_level/service.py +++ b/ielts_be/services/impl/exam/level/upload.py @@ -1,385 +1,338 @@ -import json -import os -import uuid -from logging import getLogger - -from typing import Dict, Any, Tuple, Callable - -import pdfplumber - -from modules import GPT -from modules.helper.file_helper import FileHelper -from modules.helper import LoggerHelper -from modules.upload_level.exam_dtos import Exam -from modules.upload_level.mapper import ExamMapper -from modules.upload_level.sheet_dtos import Sheet - - -class UploadLevelService: - def __init__(self, openai: GPT): - self._logger = getLogger(__name__) - self._llm = openai - - def generate_level_from_file(self, file) -> Dict[str, Any] | None: - ext, path_id = FileHelper.save_upload(file) - FileHelper.convert_file_to_pdf( - f'./tmp/{path_id}/uploaded.{ext}', f'./tmp/{path_id}/exercises.pdf' - ) - file_has_images = self._check_pdf_for_images(f'./tmp/{path_id}/exercises.pdf') - - if not file_has_images: - FileHelper.convert_file_to_html(f'./tmp/{path_id}/uploaded.{ext}', f'./tmp/{path_id}/exercises.html') - - completion: Callable[[str], Exam] = self._png_completion if file_has_images else self._html_completion - response = completion(path_id) - - FileHelper.remove_directory(f'./tmp/{path_id}') - - if response: - return self.fix_ids(response.dict(exclude_none=True)) - return None - - @staticmethod - @LoggerHelper.suppress_loggers() - def _check_pdf_for_images(pdf_path: str) -> bool: - with pdfplumber.open(pdf_path) as pdf: - for page in pdf.pages: - if page.images: - return True - return False - - def _level_json_schema(self): - return { - "parts": [ - { - "context": "", - "exercises": [ - self._multiple_choice_html(), - self._passage_blank_space_html() - ] - } - ] - } - - def _html_completion(self, path_id: str) -> Exam: - with open(f'./tmp/{path_id}/exercises.html', 'r', encoding='utf-8') as f: - html = f.read() - - return self._llm.prediction( - [self._gpt_instructions_html(), - { - "role": "user", - "content": html - } - ], - ExamMapper.map_to_exam_model, - str(self._level_json_schema()) - ) - - def _gpt_instructions_html(self): - return { - "role": "system", - "content": ( - 'You are GPT Scraper and your job is to clean dirty html into clean usable JSON formatted data.' - 'Your current task is to scrape html english questions sheets.\n\n' - - 'In the question sheet you will only see 4 types of question:\n' - '- blank space multiple choice\n' - '- underline multiple choice\n' - '- reading passage blank space multiple choice\n' - '- reading passage multiple choice\n\n' - - 'For the first two types of questions the template is the same but the question prompts differ, ' - 'whilst in the blank space multiple choice you must include in the prompt the blank spaces with ' - 'multiple "_", in the underline you must include in the prompt the to ' - 'indicate the underline and the options a, b, c, d must be the ordered underlines in the prompt.\n\n' - - 'For the reading passage exercise you must handle the formatting of the passages. If it is a ' - 'reading passage with blank spaces you will see blanks represented with (question id) followed by a ' - 'line and your job is to replace the brackets with the question id and line with "{{question id}}" ' - 'with 2 newlines between paragraphs. For the reading passages without blanks you must remove ' - 'any numbers that may be there to specify paragraph numbers or line numbers, and place 2 newlines ' - 'between paragraphs.\n\n' - - 'IMPORTANT: Note that for the reading passages, the html might not reflect the actual paragraph ' - 'structure, don\'t format the reading passages paragraphs only by the

tags, try to figure ' - 'out the best paragraph separation possible.' - - 'You will place all the information in a single JSON: {"parts": [{"exercises": [{...}], "context": ""}]}\n ' - 'Where {...} are the exercises templates for each part of a question sheet and the optional field ' - 'context.' - - 'IMPORTANT: The question sheet may be divided by sections but you need to only consider the parts, ' - 'so that you can group the exercises by the parts that are in the html, this is crucial since only ' - 'reading passage multiple choice require context and if the context is included in parts where it ' - 'is not required the UI will be messed up. Some make sure to correctly group the exercises by parts.\n' - - 'The templates for the exercises are the following:\n' - '- blank space multiple choice, underline multiple choice and reading passage multiple choice: ' - f'{self._multiple_choice_html()}\n' - f'- reading passage blank space multiple choice: {self._passage_blank_space_html()}\n' - - 'IMPORTANT: For the reading passage multiple choice the context field must be set with the reading ' - 'passages without paragraphs or line numbers, with 2 newlines between paragraphs, for the other ' - 'exercises exclude the context field.' - ) - } - - @staticmethod - def _multiple_choice_html(): - return { - "type": "multipleChoice", - "prompt": "Select the appropriate option.", - "questions": [ - { - "id": "", - "prompt": "", - "solution": "", - "options": [ - { - "id": "A", - "text": "" - }, - { - "id": "B", - "text": "" - }, - { - "id": "C", - "text": "" - }, - { - "id": "D", - "text": "" - } - ] - } - ] - } - - @staticmethod - def _passage_blank_space_html(): - return { - "type": "fillBlanks", - "variant": "mc", - "prompt": "Click a blank to select the appropriate word for it.", - "text": ( - "}} with 2 newlines between paragraphs>" - ), - "solutions": [ - { - "id": "", - "solution": "" - } - ], - "words": [ - { - "id": "", - "options": { - "A": "
", - "B": "", - "C": "", - "D": "" - } - } - ] - } - - def _png_completion(self, path_id: str) -> Exam: - FileHelper.pdf_to_png(path_id) - - tmp_files = os.listdir(f'./tmp/{path_id}') - pages = [f for f in tmp_files if f.startswith('page-') and f.endswith('.png')] - pages.sort(key=lambda f: int(f.split('-')[1].split('.')[0])) - - json_schema = { - "components": [ - {"type": "part", "part": ""}, - self._multiple_choice_png(), - {"type": "blanksPassage", "text": ( - "}} with 2 newlines between paragraphs>" - )}, - {"type": "passage", "context": ( - "" - )}, - self._passage_blank_space_png() - ] - } - - components = [] - - for i in range(len(pages)): - current_page = pages[i] - next_page = pages[i + 1] if i + 1 < len(pages) else None - batch = [current_page, next_page] if next_page else [current_page] - - sheet = self._png_batch(path_id, batch, json_schema) - sheet.batch = i + 1 - components.append(sheet.dict()) - - batches = {"batches": components} - with open('output.json', 'w') as json_file: - json.dump(batches, json_file, indent=4) - - return self._batches_to_exam_completion(batches) - - def _png_batch(self, path_id: str, files: list[str], json_schema) -> Sheet: - return self._llm.prediction( - [self._gpt_instructions_png(), - { - "role": "user", - "content": [ - *FileHelper.b64_pngs(path_id, files) - ] - } - ], - ExamMapper.map_to_sheet, - str(json_schema) - ) - - def _gpt_instructions_png(self): - return { - "role": "system", - "content": ( - 'You are GPT OCR and your job is to scan image text data and format it to JSON format.' - 'Your current task is to scan english questions sheets.\n\n' - - 'You will place all the information in a single JSON: {"components": [{...}]} where {...} is a set of ' - 'sheet components you will retrieve from the images, the components and their corresponding JSON ' - 'templates are as follows:\n' - - '- Part, a standalone part or part of a section of the question sheet: ' - '{"type": "part", "part": ""}\n' - - '- Multiple Choice Question, there are three types of multiple choice questions that differ on ' - 'the prompt field of the template: blanks, underlines and normal. ' - - 'In the blanks prompt you must leave 5 underscores to represent the blank space. ' - 'In the underlines questions the objective is to pick the words that are incorrect in the given ' - 'sentence, for these questions you must wrap the answer to the question with the html tag , ' - 'choose 3 other words to wrap in , place them in the prompt field and use the underlined words ' - 'in the order they appear in the question for the options A to D, disreguard options that might be ' - 'included underneath the underlines question and use the ones you wrapped in .' - 'In normal you just leave the question as is. ' - - f'The template for multiple choice questions is the following: {self._multiple_choice_png()}.\n' - - '- Reading Passages, there are two types of reading passages. Reading passages where you will see ' - 'blanks represented by a (question id) followed by a line, you must format these types of reading ' - 'passages to be only the text with the brackets that have the question id and line replaced with ' - '"{{question id}}", also place 2 newlines between paragraphs. For the reading passages without blanks ' - 'you must remove any numbers that may be there to specify paragraph numbers or line numbers, ' - 'and place 2 newlines between paragraphs. ' - - 'For the reading passages with blanks the template is: {"type": "blanksPassage", ' - '"text": "}} also place 2 newlines between paragraphs>"}. ' - - 'For the reading passage without blanks is: {"type": "passage", "context": ""}\n' - - '- Blanks Options, options for a blanks reading passage exercise, this type of component is a group of ' - 'options with the question id and the options from a to d. The template is: ' - f'{self._passage_blank_space_png()}\n' - - 'IMPORTANT: You must place the components in the order that they were given to you. If an exercise or ' - 'reading passages are cut off don\'t include them in the JSON.' - ) - } - - def _multiple_choice_png(self): - multiple_choice = self._multiple_choice_html()["questions"][0] - multiple_choice["type"] = "multipleChoice" - multiple_choice.pop("solution") - return multiple_choice - - def _passage_blank_space_png(self): - passage_blank_space = self._passage_blank_space_html()["words"][0] - passage_blank_space["type"] = "fillBlanks" - return passage_blank_space - - def _batches_to_exam_completion(self, batches: Dict[str, Any]) -> Exam: - return self._llm.prediction( - [self._gpt_instructions_html(), - { - "role": "user", - "content": str(batches) - } - ], - ExamMapper.map_to_exam_model, - str(self._level_json_schema()) - ) - - def _gpt_instructions_batches(self): - return { - "role": "system", - "content": ( - 'You are helpfull assistant. Your task is to merge multiple batches of english question sheet ' - 'components and solve the questions. Each batch may contain overlapping content with the previous ' - 'batch, or close enough content which needs to be excluded. The components are as follows:' - - '- Part, a standalone part or part of a section of the question sheet: ' - '{"type": "part", "part": ""}\n' - - '- Multiple Choice Question, there are three types of multiple choice questions that differ on ' - 'the prompt field of the template: blanks, underlines and normal. ' - - 'In a blanks question, the prompt has underscores to represent the blank space, you must select the ' - 'appropriate option to solve it.' - - 'In a underlines question, the prompt has 4 underlines represented by the html tags , you must ' - 'select the option that makes the prompt incorrect to solve it. If the options order doesn\'t reflect ' - 'the order in which the underlines appear in the prompt you will need to fix it.' - - 'In a normal question there isn\'t either blanks or underlines in the prompt, you should just ' - 'select the appropriate solution.' - - f'The template for these questions is the same: {self._multiple_choice_png()}\n' - - '- Reading Passages, there are two types of reading passages with different templates. The one with ' - 'type "blanksPassage" where the text field holds the passage and a blank is represented by ' - '{{}} and the other one with type "passage" that has the context field with just ' - 'reading passages. For both of these components you will have to remove any additional data that might ' - 'be related to a question description and also remove some "()" and "_" from blanksPassage' - ' if there are any. These components are used in conjunction with other ones.' - - '- Blanks Options, options for a blanks reading passage exercise, this type of component is a group of ' - 'options with the question id and the options from a to d. The template is: ' - f'{self._passage_blank_space_png()}\n\n' - - 'Now that you know the possible components here\'s what I want you to do:\n' - '1. Remove duplicates. A batch will have duplicates of other batches and the components of ' - 'the next batch should always take precedence over the previous one batch, what I mean by this is that ' - 'if batch 1 has, for example, multiple choice question with id 10 and the next one also has id 10, ' - 'you pick the next one.\n' - '2. Solve the exercises. There are 4 types of exercises, the 3 multipleChoice variants + a fill blanks ' - 'exercise. For the multiple choice question follow the previous instruction to solve them and place ' - f'them in this format: {self._multiple_choice_html()}. For the fill blanks exercises you need to match ' - 'the correct blanksPassage to the correct fillBlanks options and then pick the correct option. Here is ' - f'the template for this exercise: {self._passage_blank_space_html()}.\n' - f'3. Restructure the JSON to match this template: {self._level_json_schema()}. You must group the exercises by ' - 'the parts in the order they appear in the batches components. The context field of a part is the ' - 'context of a passage component that has text relevant to normal multiple choice questions.\n' - - 'Do your utmost to fullfill the requisites, make sure you include all non-duplicate questions' - 'in your response and correctly structure the JSON.' - ) - } - - @staticmethod - def fix_ids(response): - counter = 1 - for part in response["parts"]: - for exercise in part["exercises"]: - if exercise["type"] == "multipleChoice": - for question in exercise["questions"]: - question["id"] = counter - counter += 1 - if exercise["type"] == "fillBlanks": - for i in range(len(exercise["words"])): - exercise["words"][i]["id"] = counter - exercise["solutions"][i]["id"] = counter - counter += 1 - return response +from uuid import uuid4 + +import aiofiles +import os +from logging import getLogger + +from typing import Dict, Any, Optional + +import pdfplumber +from fastapi import UploadFile + +from ielts_be.services import ILLMService +from ielts_be.helpers import FileHelper +from ielts_be.mappers import LevelMapper + +from ielts_be.dtos.exams.level import Exam +from ielts_be.dtos.sheet import Sheet +from ielts_be.utils import suppress_loggers + + +class UploadLevelModule: + def __init__(self, openai: ILLMService): + self._logger = getLogger(__name__) + self._llm = openai + + async def generate_level_from_file(self, exercises: UploadFile, solutions: Optional[UploadFile]) -> Dict[str, Any] | None: + path_id = str(uuid4()) + ext, _ = await FileHelper.save_upload(exercises, "exercises", path_id) + FileHelper.convert_file_to_html(f'./tmp/{path_id}/exercises.{ext}', f'./tmp/{path_id}/exercises.html') + + if solutions: + ext, _ = await FileHelper.save_upload(solutions, "solutions", path_id) + FileHelper.convert_file_to_html(f'./tmp/{path_id}/solutions.{ext}', f'./tmp/{path_id}/solutions.html') + + #completion: Coroutine[Any, Any, Exam] = ( + # self._png_completion(path_id) if file_has_images else self._html_completion(path_id) + #) + response = await self._html_completion(path_id, solutions is not None) + + FileHelper.remove_directory(f'./tmp/{path_id}') + + if response: + return self.fix_ids(response.model_dump(exclude_none=True)) + return None + + + @staticmethod + @suppress_loggers() + def _check_pdf_for_images(pdf_path: str) -> bool: + with pdfplumber.open(pdf_path) as pdf: + for page in pdf.pages: + if page.images: + return True + return False + + def _level_json_schema(self): + return { + "parts": [ + { + "text": { + "content": "", + "title": "", + }, + "exercises": [ + self._multiple_choice_html(), + self._passage_blank_space_html() + ] + } + ] + } + + async def _html_completion(self, path_id: str, solutions_provided: bool) -> Exam: + async with aiofiles.open(f'./tmp/{path_id}/exercises.html', 'r', encoding='utf-8') as f: + html = await f.read() + + solutions = [] + if solutions_provided: + async with aiofiles.open(f'./tmp/{path_id}/solutions.html', 'r', encoding='utf-8') as f: + solutions_html = await f.read() + solutions.append({ + "role": "user", + "content": f'The solutions to the question sheet are the following:\n\n{solutions_html}' + }) + + return await self._llm.pydantic_prediction( + [self._gpt_instructions_html(), + { + "role": "user", + "content": html + }, + *solutions + ], + LevelMapper.map_to_exam_model, + str(self._level_json_schema()) + ) + + def _gpt_instructions_html(self): + return { + "role": "system", + "content": ( + 'You are GPT Scraper and your job is to clean dirty html into clean usable JSON formatted data.' + 'Your current task is to scrape html english questions sheets and structure them into parts NOT sections.\n\n' + + 'In the question sheet you will only see 4 types of question:\n' + '- blank space multiple choice\n' + '- underline multiple choice\n' + '- reading passage blank space multiple choice\n' + '- reading passage multiple choice\n\n' + + 'For the first two types of questions the template is the same but the question prompts differ, ' + 'whilst in the blank space multiple choice you must include in the prompt the blank spaces with ' + 'multiple "_", in the underline you must include in the prompt the to ' + 'indicate the underline and the options a, b, c, d must be the ordered underlines in the prompt.\n\n' + + 'For the reading passage exercise you must handle the formatting of the passages. If it is a ' + 'reading passage with blank spaces you will see blanks represented with (question id) followed by a ' + 'line and your job is to replace the brackets with the question id and line with "{{question id}}" ' + 'with 2 newlines between paragraphs. For the reading passages without blanks you must remove ' + 'any numbers that may be there to specify paragraph numbers or line numbers, and place 2 newlines ' + 'between paragraphs.\n\n' + + 'IMPORTANT: Note that for the reading passages, the html might not reflect the actual paragraph ' + 'structure, don\'t format the reading passages paragraphs only by the

tags, try to figure ' + 'out the best paragraph separation possible.' + + 'You will place all the information in a single JSON: ' + '{"parts": [{"exercises": [{...}], "text": {"title": "", "content": ""} ]}\n ' + 'Where {...} are the exercises templates for each part of a question sheet and the optional field ' + 'text, which contains the reading passages that are required in order to solve the part questions, ' + '(if there are passages) place them in text.content and if there is a title place it in text.title ' + 'else omit the title field.\n' + + 'IMPORTANT: As stated earlier your job is to structure the questions into PARTS not SECTION, this means ' + 'that if there is for example: Section 1, Part 1 and Part 2, Section 2, Part 1 and Part 2, you MUST ' + 'place in the parts array 4 parts NOT 2 parts with the exercises of both parts! If there are no sections ' + 'and only Parts then group them by parts, and when I say parts I mean it in the fucking literal sense of the' + ' word Part x which is in the html. ' + 'You must strictly adhere to this instruction, do not mistake sections for parts!\n' + + 'The templates for the exercises are the following:\n' + '- blank space multiple choice, underline multiple choice and reading passage multiple choice: ' + f'{self._multiple_choice_html()}\n' + f'- reading passage blank space multiple choice: {self._passage_blank_space_html()}\n' + + 'IMPORTANT: The text.content field must be set with the reading passages of a part (if there is one)' + 'without paragraphs or line numbers, with 2 newlines between paragraphs.' + ) + } + + @staticmethod + def _multiple_choice_html(): + return { + "type": "multipleChoice", + "prompt": "", + "questions": [ + { + "id": "", + "prompt": "", + "options": [ + { + "id": "
", + "text": "", + "B": "", + "C": "", + "D": "" + } + } + ] + } + + async def _png_completion(self, path_id: str) -> Exam: + FileHelper.pdf_to_png(path_id) + + tmp_files = os.listdir(f'./tmp/{path_id}') + pages = [f for f in tmp_files if f.startswith('page-') and f.endswith('.png')] + pages.sort(key=lambda f: int(f.split('-')[1].split('.')[0])) + + json_schema = { + "components": [ + {"type": "part", "part": ""}, + self._multiple_choice_png(), + {"type": "blanksPassage", "text": ( + "}} with 2 newlines between paragraphs>" + )}, + {"type": "passage", "context": ( + "" + )}, + self._passage_blank_space_png() + ] + } + + components = [] + + for i in range(len(pages)): + current_page = pages[i] + next_page = pages[i + 1] if i + 1 < len(pages) else None + batch = [current_page, next_page] if next_page else [current_page] + + sheet = await self._png_batch(path_id, batch, json_schema) + sheet.batch = i + 1 + components.append(sheet.model_dump()) + + batches = {"batches": components} + + return await self._batches_to_exam_completion(batches) + + async def _png_batch(self, path_id: str, files: list[str], json_schema) -> Sheet: + return await self._llm.pydantic_prediction( + [self._gpt_instructions_png(), + { + "role": "user", + "content": [ + *FileHelper.b64_pngs(path_id, files) + ] + } + ], + LevelMapper.map_to_sheet, + str(json_schema) + ) + + def _gpt_instructions_png(self): + return { + "role": "system", + "content": ( + 'You are GPT OCR and your job is to scan image text data and format it to JSON format.' + 'Your current task is to scan english questions sheets.\n\n' + + 'You will place all the information in a single JSON: {"components": [{...}]} where {...} is a set of ' + 'sheet components you will retrieve from the images, the components and their corresponding JSON ' + 'templates are as follows:\n' + + '- Part, a standalone part or part of a section of the question sheet: ' + '{"type": "part", "part": ""}\n' + + '- Multiple Choice Question, there are three types of multiple choice questions that differ on ' + 'the prompt field of the template: blanks, underlines and normal. ' + + 'In the blanks prompt you must leave 5 underscores to represent the blank space. ' + 'In the underlines questions the objective is to pick the words that are incorrect in the given ' + 'sentence, for these questions you must wrap the answer to the question with the html tag , ' + 'choose 3 other words to wrap in , place them in the prompt field and use the underlined words ' + 'in the order they appear in the question for the options A to D, disreguard options that might be ' + 'included underneath the underlines question and use the ones you wrapped in .' + 'In normal you just leave the question as is. ' + + f'The template for multiple choice questions is the following: {self._multiple_choice_png()}.\n' + + '- Reading Passages, there are two types of reading passages. Reading passages where you will see ' + 'blanks represented by a (question id) followed by a line, you must format these types of reading ' + 'passages to be only the text with the brackets that have the question id and line replaced with ' + '"{{question id}}", also place 2 newlines between paragraphs. For the reading passages without blanks ' + 'you must remove any numbers that may be there to specify paragraph numbers or line numbers, ' + 'and place 2 newlines between paragraphs. ' + + 'For the reading passages with blanks the template is: {"type": "blanksPassage", ' + '"text": "}} also place 2 newlines between paragraphs>"}. ' + + 'For the reading passage without blanks is: {"type": "passage", "context": ""}\n' + + '- Blanks Options, options for a blanks reading passage exercise, this type of component is a group of ' + 'options with the question id and the options from a to d. The template is: ' + f'{self._passage_blank_space_png()}\n' + + 'IMPORTANT: You must place the components in the order that they were given to you. If an exercise or ' + 'reading passages are cut off don\'t include them in the JSON.' + ) + } + + def _multiple_choice_png(self): + multiple_choice = self._multiple_choice_html()["questions"][0] + multiple_choice["type"] = "multipleChoice" + multiple_choice.pop("solution") + return multiple_choice + + def _passage_blank_space_png(self): + passage_blank_space = self._passage_blank_space_html()["words"][0] + passage_blank_space["type"] = "fillBlanks" + return passage_blank_space + + async def _batches_to_exam_completion(self, batches: Dict[str, Any]) -> Exam: + return await self._llm.pydantic_prediction( + [self._gpt_instructions_html(), + { + "role": "user", + "content": str(batches) + } + ], + LevelMapper.map_to_exam_model, + str(self._level_json_schema()) + ) + + @staticmethod + def fix_ids(response): + counter = 1 + for part in response["parts"]: + for exercise in part["exercises"]: + if exercise["type"] == "multipleChoice": + for question in exercise["questions"]: + question["id"] = counter + counter += 1 + if exercise["type"] == "fillBlanks": + for i in range(len(exercise["words"])): + exercise["words"][i]["id"] = counter + exercise["solutions"][i]["id"] = counter + counter += 1 + return response diff --git a/ielts_be/services/impl/exam/listening/__init__.py b/ielts_be/services/impl/exam/listening/__init__.py new file mode 100644 index 0000000..876a3a0 --- /dev/null +++ b/ielts_be/services/impl/exam/listening/__init__.py @@ -0,0 +1,301 @@ +import asyncio +from logging import getLogger +import random +from typing import Dict, Any + +import aiofiles +from starlette.datastructures import UploadFile + +from ielts_be.dtos.listening import GenerateListeningExercises, Dialog, ListeningExercises +from ielts_be.exceptions.exceptions import TranscriptionException +from ielts_be.repositories import IFileStorage, IDocumentStore +from ielts_be.services import IListeningService, ILLMService, ITextToSpeechService, ISpeechToTextService +from ielts_be.configs.constants import ( + NeuralVoices, GPTModels, TemperatureSettings, EducationalContent, + FieldsAndExercises +) +from ielts_be.helpers import FileHelper +from .audio_to_dialog import AudioToDialog +from .import_listening import ImportListeningModule +from .write_blank_forms import WriteBlankForms +from .write_blanks import WriteBlanks +from .write_blank_notes import WriteBlankNotes +from ..shared import TrueFalse, MultipleChoice + + +class ListeningService(IListeningService): + + CONVERSATION_TAIL = ( + "Please include random names and genders for the characters in your dialogue. " + "Make sure that the generated conversation does not contain forbidden subjects in muslim countries." + ) + + MONOLOGUE_TAIL = ( + "Make sure that the generated monologue does not contain forbidden subjects in muslim countries." + ) + + def __init__( + self, llm: ILLMService, + tts: ITextToSpeechService, + stt: ISpeechToTextService, + file_storage: IFileStorage, + document_store: IDocumentStore + ): + self._llm = llm + self._tts = tts + self._stt = stt + self._file_storage = file_storage + self._document_store = document_store + self._logger = getLogger(__name__) + self._multiple_choice = MultipleChoice(llm) + self._write_blanks = WriteBlanks(llm) + self._write_blanks_forms = WriteBlankForms(llm) + self._write_blanks_notes = WriteBlankNotes(llm) + self._import = ImportListeningModule(llm) + self._true_false = TrueFalse(llm) + self._audio_to_dialog = AudioToDialog(llm) + self._sections = { + "section_1": { + "topic": EducationalContent.TWO_PEOPLE_SCENARIOS, + "exercise_types": FieldsAndExercises.LISTENING_1_EXERCISE_TYPES, + "exercise_sample_size": 1, + "total_exercises": FieldsAndExercises.TOTAL_LISTENING_SECTION_1_EXERCISES, + "generate_dialogue": self._generate_listening_conversation, + "type": "conversation", + }, + "section_2": { + "topic": EducationalContent.SOCIAL_MONOLOGUE_CONTEXTS, + "exercise_types": FieldsAndExercises.LISTENING_2_EXERCISE_TYPES, + "exercise_sample_size": 2, + "total_exercises": FieldsAndExercises.TOTAL_LISTENING_SECTION_2_EXERCISES, + "generate_dialogue": self._generate_listening_monologue, + "type": "monologue", + }, + "section_3": { + "topic": EducationalContent.FOUR_PEOPLE_SCENARIOS, + "exercise_types": FieldsAndExercises.LISTENING_3_EXERCISE_TYPES, + "exercise_sample_size": 1, + "total_exercises": FieldsAndExercises.TOTAL_LISTENING_SECTION_3_EXERCISES, + "generate_dialogue": self._generate_listening_conversation, + "type": "conversation", + }, + "section_4": { + "topic": EducationalContent.ACADEMIC_SUBJECTS, + "exercise_types": FieldsAndExercises.LISTENING_EXERCISE_TYPES, + "exercise_sample_size": 2, + "total_exercises": FieldsAndExercises.TOTAL_LISTENING_SECTION_4_EXERCISES, + "generate_dialogue": self._generate_listening_monologue, + "type": "monologue" + } + } + + async def import_exam( + self, exercises: UploadFile, solutions: UploadFile = None + ) -> Dict[str, Any] | None: + return await self._import.import_from_file(exercises, solutions) + + + async def generate_listening_dialog(self, section: int, topic: str, difficulty: str): + return await self._sections[f'section_{section}']["generate_dialogue"](section, topic) + + async def transcribe_dialog(self, audio: UploadFile): + ext, path_id = await FileHelper.save_upload(audio) + try: + transcription_segments = await self._stt.speech_to_text(f'./tmp/{path_id}/upload.{ext}') + transcription = await self._stt.fix_overlap(self._llm, transcription_segments) + dialog = await self._audio_to_dialog.get_dialog(transcription) + except TranscriptionException as e: + self._logger.error(str(e)) + return None + + FileHelper.remove_directory(f'./tmp/{path_id}') + return dialog + + async def generate_mp3(self, dto: Dialog) -> bytes: + return await self._tts.text_to_speech(dto) + + async def get_listening_question(self, dto: GenerateListeningExercises): + start_id = 1 + exercise_tasks = [] + + for req_exercise in dto.exercises: + exercise_tasks.append( + self._generate_exercise( + req_exercise, + "dialog or monologue", + dto.text, + start_id, + dto.difficulty + ) + ) + start_id += req_exercise.quantity + + return {"exercises": await asyncio.gather(*exercise_tasks) } + + async def _generate_exercise( + self, req_exercise: ListeningExercises, dialog_type: str, text: str, start_id: int, difficulty: str + ): + if req_exercise.type == "multipleChoice" or req_exercise.type == "multipleChoice3Options": + n_options = 4 if req_exercise.type == "multipleChoice" else 3 + question = await self._multiple_choice.gen_multiple_choice( + text, req_exercise.quantity, start_id, difficulty, n_options + ) + self._logger.info(f"Added multiple choice: {question}") + return question + + elif req_exercise.type == "writeBlanksQuestions": + question = await self._write_blanks.gen_write_blanks_questions( + dialog_type, text, req_exercise.quantity, start_id, difficulty + ) + question["variant"] = "questions" + self._logger.info(f"Added write blanks questions: {question}") + return question + + elif req_exercise.type == "writeBlanksFill": + question = await self._write_blanks_notes.gen_write_blanks_notes( + dialog_type, text, req_exercise.quantity, start_id, difficulty + ) + question["variant"] = "fill" + self._logger.info(f"Added write blanks notes: {question}") + return question + + elif req_exercise.type == "writeBlanksForm": + question = await self._write_blanks_forms.gen_write_blanks_form( + dialog_type, text, req_exercise.quantity, start_id, difficulty + ) + question["variant"] = "form" + self._logger.info(f"Added write blanks form: {question}") + return question + elif req_exercise.type == "trueFalse": + question = await self._true_false.gen_true_false_not_given_exercise( + text, req_exercise.quantity, start_id, difficulty, "listening" + ) + self._logger.info(f"Added trueFalse: {question}") + return question + + + # ================================================================================================================== + # generate_listening_question helpers + # ================================================================================================================== + + async def _generate_listening_conversation(self, section: int, topic: str) -> Dict: + head = ( + 'Compose an authentic conversation between two individuals in the everyday social context of "' + if section == 1 else + 'Compose an authentic and elaborate conversation between up to four individuals in the everyday ' + 'social context of "' + ) + + messages = [ + { + "role": "system", + "content": ( + 'You are a helpful assistant designed to output JSON on this format: ' + '{"conversation": [{"name": "name", "gender": "gender", "text": "text"}]}') + }, + { + "role": "user", + "content": ( + f'{head}{topic}". {self.CONVERSATION_TAIL}' + ) + } + ] + + if section == 1: + messages.extend([ + { + "role": "user", + "content": 'Try to have misleading discourse (refer multiple dates, multiple colors and etc).' + + }, + { + "role": "user", + "content": 'Try to have spelling of names (cities, people, etc)' + + } + ]) + + response = await self._llm.prediction( + GPTModels.GPT_4_O, + messages, + ["conversation"], + TemperatureSettings.GEN_QUESTION_TEMPERATURE + ) + conversation = self._get_conversation_voices(response, True) + return {"dialog": conversation["conversation"]} + + + async def _generate_listening_monologue(self, section: int, topic: str) -> Dict: + head = ( + 'Generate a comprehensive monologue set in the social context of' + if section == 2 else + 'Generate a comprehensive and complex monologue on the academic subject of' + ) + + messages = [ + { + "role": "system", + "content": ( + 'You are a helpful assistant designed to output JSON on this format: ' + '{"monologue": "monologue"}') + }, + { + "role": "user", + "content": ( + f'{head}: "{topic}". {self.MONOLOGUE_TAIL}' + ) + } + ] + + response = await self._llm.prediction( + GPTModels.GPT_4_O, + messages, + ["monologue"], + TemperatureSettings.GEN_QUESTION_TEMPERATURE + ) + return {"dialog": response["monologue"]} + + def _get_conversation_voices(self, response: Dict, unique_voices_across_segments: bool): + chosen_voices = [] + name_to_voice = {} + for segment in response['conversation']: + if 'voice' not in segment: + name = segment['name'] + if name in name_to_voice: + voice = name_to_voice[name] + else: + voice = None + # section 1 + if unique_voices_across_segments: + while voice is None: + chosen_voice = self._get_random_voice(segment['gender']) + if chosen_voice not in chosen_voices: + voice = chosen_voice + chosen_voices.append(voice) + # section 3 + else: + voice = self._get_random_voice(segment['gender']) + name_to_voice[name] = voice + segment['voice'] = voice + return response + + @staticmethod + def _get_random_voice(gender: str): + if gender.lower() == 'male': + available_voices = NeuralVoices.MALE_NEURAL_VOICES + else: + available_voices = NeuralVoices.FEMALE_NEURAL_VOICES + + return random.choice(available_voices)['Id'] + + @staticmethod + def parse_conversation(conversation_data): + conversation_list = conversation_data.get('conversation', []) + readable_text = [] + + for message in conversation_list: + name = message.get('name', 'Unknown') + text = message.get('text', '') + readable_text.append(f"{name}: {text}") + + return "\n".join(readable_text) \ No newline at end of file diff --git a/ielts_be/services/impl/exam/listening/audio_to_dialog.py b/ielts_be/services/impl/exam/listening/audio_to_dialog.py new file mode 100644 index 0000000..7341857 --- /dev/null +++ b/ielts_be/services/impl/exam/listening/audio_to_dialog.py @@ -0,0 +1,37 @@ +from logging import getLogger + +from ielts_be.configs.constants import TemperatureSettings, GPTModels +from ielts_be.services import ILLMService + + +class AudioToDialog: + def __init__(self, llm_service: ILLMService): + self._logger = getLogger(__name__) + self._llm = llm_service + + async def get_dialog(self, transcription: str): + messages = [ + { + "role": "system", + "content": ( + 'You are a helpful assistant designed to output JSON on either one of these formats:\n' + '1 - {"dialog": [{"name": "name", "gender": "gender", "text": "text"}]}\n' + '2 - {"dialog": "text"}\n\n' + 'A transcription of an audio file will be provided to you. Based on that transcription you will' + 'need to determine whether the transcription is a conversation or a monologue. If the transcription ' + 'is a dialog you will have to determine the interlocutors names and genders and place each excerpt of ' + 'dialog in a sequential manner using the json array structure previously given (1). In the case of being ' + 'a monologue just place all the text in the field "dialog" (2). If the transcription is a conversation ' + 'and you can\'t ascertain the names of the interlocutors from the transcription give a single common name ' + 'to each interlocutor. Also gender must be male or female, if you can\'t ascertain then use male.' + ) + }, + { + "role": "user", + "content": f"Transcription: {transcription}" + } + ] + + return await self._llm.prediction( + GPTModels.GPT_4_O, messages, ["dialog"], TemperatureSettings.GEN_QUESTION_TEMPERATURE + ) diff --git a/ielts_be/services/impl/exam/listening/import_listening.py b/ielts_be/services/impl/exam/listening/import_listening.py new file mode 100644 index 0000000..f34c2aa --- /dev/null +++ b/ielts_be/services/impl/exam/listening/import_listening.py @@ -0,0 +1,236 @@ +import asyncio +from logging import getLogger +from typing import Dict, Any +from uuid import uuid4 +import aiofiles +from fastapi import UploadFile + +from ielts_be.dtos.exams.listening import ListeningExam +from ielts_be.helpers import FileHelper +from ielts_be.mappers.listening import ListeningMapper +from ielts_be.services import ILLMService + + +class ImportListeningModule: + def __init__(self, llm_service: ILLMService): + self._logger = getLogger(__name__) + self._llm = llm_service + + async def import_from_file( + self, + exercises: UploadFile, + solutions: UploadFile = None + ) -> Dict[str, Any] | None: + path_id = str(uuid4()) + + ext, _ = await FileHelper.save_upload(exercises, "exercises", path_id) + FileHelper.convert_file_to_html( + f'./tmp/{path_id}/exercises.{ext}', + f'./tmp/{path_id}/exercises.html' + ) + + if solutions: + ext, _ = await FileHelper.save_upload(solutions, "solutions", path_id) + FileHelper.convert_file_to_html( + f'./tmp/{path_id}/solutions.{ext}', + f'./tmp/{path_id}/solutions.html' + ) + + async with aiofiles.open( + f'./tmp/{path_id}/exercises.html', 'r', encoding='utf-8' + ) as f: + exercises_html = await f.read() + + dialog_promise = self._llm.pydantic_prediction( + [ + self._dialog_instructions(), + { + "role": "user", + "content": f"Listening exercise sheet:\n\n{exercises_html}" + } + ], + ListeningMapper.map_to_dialog_model, + str(self._dialog_schema()) + ) + response_promise = self._get_listening_sections(path_id, exercises_html, solutions is not None) + + tasks = await asyncio.gather(dialog_promise, response_promise) + dialog: Dict = tasks[0] + response = tasks[1] + + FileHelper.remove_directory(f'./tmp/{path_id}') + if response: + response = response.model_dump(exclude_none=True) + for i in range(len(response["parts"])): + response["parts"][i]["script"] = dialog[str(i + 1)] + return response + return None + + async def _get_listening_sections( + self, + path_id: str, + html: str, + has_solutions: bool = False + ) -> ListeningExam: + messages = [ + self._instructions(has_solutions), + { + "role": "user", + "content": f"Listening exercise sheet:\n\n{html}" + } + ] + + if has_solutions: + async with aiofiles.open( + f'./tmp/{path_id}/solutions.html', 'r', encoding='utf-8' + ) as f: + solutions_html = await f.read() + messages.append({ + "role": "user", + "content": f"Solutions:\n\n{solutions_html}" + }) + + return await self._llm.pydantic_prediction( + messages, + ListeningMapper.map_to_test_model, + str(self._listening_json_schema()) + ) + + @staticmethod + def _multiple_choice_template() -> dict: + return { + "type": "multipleChoice", + "prompt": "", + "questions": [ + { + "id": "", + "prompt": "", + "options": [ + { + "id": "", + "text": "