﻿{"id":5920,"date":"2026-07-09T11:05:47","date_gmt":"2026-07-09T05:35:47","guid":{"rendered":"https:\/\/blogs.infosys.com\/emerging-technology-solutions\/?p=5920"},"modified":"2026-07-09T11:05:47","modified_gmt":"2026-07-09T05:35:47","slug":"building-talking-human-videos-using-azure-video-avatars","status":"publish","type":"post","link":"https:\/\/blogs.infosys.com\/emerging-technology-solutions\/digital-experience\/building-talking-human-videos-using-azure-video-avatars.html","title":{"rendered":"Building Talking Human Videos Using Azure Video Avatars"},"content":{"rendered":"<p>Have you ever wanted to turn a simple piece of text into a professional-looking video presenter without hiring actors, recording videos, or using complex animation software?<\/p>\n<p>With Azure AI Video Avatars, that&#8217;s now possible.<\/p>\n<p>In this blog, we&#8217;ll walk through how Azure can transform plain text into a realistic talking avatar video, and how you can build a simple application that automates the entire process.<\/p>\n<h3><strong>From Text to a Talking Video<\/strong><\/h3>\n<p>At a high level, the process is remarkably simple:<\/p>\n<p><strong>Text \u2192 Azure AI \u2192 Human-like Avatar MP4 Video<\/strong><\/p>\n<p>All you need is a script. Azure handles everything else:<\/p>\n<ul>\n<li>Converting text into natural speech<\/li>\n<li>Synchronizing lip movements<\/li>\n<li>Animating facial expressions<\/li>\n<li>Rendering the avatar<\/li>\n<li>Generating a downloadable MP4 video<\/li>\n<\/ul>\n<p>The result is a realistic presenter video that can be used for training, onboarding, marketing, education, and more.<\/p>\n<h3><strong>How Azure Creates the Video<\/strong><\/h3>\n<p>Although it looks like a single API call from the outside, Azure performs several AI-powered steps behind the scenes:<\/p>\n<p>1. Text Processing<\/p>\n<ul>\n<li>Analyzes the input text<\/li>\n<li>Handles punctuation and pauses<\/li>\n<li>Neural Text-to-Speech<\/li>\n<\/ul>\n<p>2. Converts text into natural-sounding speech<\/p>\n<ul>\n<li>Lip-Sync Generation<\/li>\n<li>Maps spoken sounds to mouth movements<\/li>\n<\/ul>\n<p>3. Avatar Rendering<\/p>\n<ul>\n<li>Animates facial expressions and head movements<\/li>\n<\/ul>\n<p>4. Video Encoding<\/p>\n<ul>\n<li>Produces a final MP4 video ready for viewing or download<\/li>\n<\/ul>\n<p>The beauty of this approach is that developers don&#8217;t need expertise in animation, video editing, or character modeling. Azure takes care of the complexity.<\/p>\n<h3><strong>What You Need to Get Started<\/strong><\/h3>\n<p>To build your own text-to-avatar application, you&#8217;ll need:<\/p>\n<ul>\n<li>An Azure subscription<\/li>\n<li>An Azure AI Speech resource with Avatar capability enabled<\/li>\n<li>Azure API Key and Region (currently East US)<\/li>\n<li>A lightweight Python backend<\/li>\n<li>A simple HTML\/JavaScript frontend<\/li>\n<\/ul>\n<p>That&#8217;s all it takes to get started.<\/p>\n<h3><strong>Solution Architecture<\/strong><\/h3>\n<p>The application uses the Azure Batch Avatar Synthesis API.<\/p>\n<p>The workflow looks like this:<\/p>\n<ol>\n<li>The user enters text in a web page.<\/li>\n<li>The request is sent to a Python backend.<\/li>\n<li>The backend submits a rendering job to Azure.<\/li>\n<li>Azure processes the request asynchronously.<\/li>\n<li>The frontend polls for completion.<\/li>\n<li>Once finished, Azure returns an MP4 video URL.<\/li>\n<li>The video is played directly in the browser or downloaded locally.<\/li>\n<\/ol>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-6004\" src=\"https:\/\/blogs.infosys.com\/emerging-technology-solutions\/wp-content\/uploads\/2026\/07\/TextToAvatarSpeechRender-1.jpg\" alt=\"\" width=\"1255\" height=\"637\" \/><\/p>\n<p><strong>Step 1: Create an Azure AI Speech Resource<\/strong><\/p>\n<p>Start by creating an Azure AI Speech resource in the Azure portal.<\/p>\n<p>Make sure the resource is created in the East US region because Azure Video Avatars are currently available there.<\/p>\n<p>After creation, note down:<\/p>\n<ul>\n<li>Speech API Key<\/li>\n<li>Region Name<\/li>\n<\/ul>\n<p>These credentials will be used for both speech generation and avatar rendering.<\/p>\n<p><strong>Step 2: Choose an Avatar and Voice<\/strong><\/p>\n<p>Azure provides several prebuilt avatar characters and styles.<\/p>\n<p>For example:<\/p>\n<p>Avatar Character: Lisa<\/p>\n<p><strong>Available Styles:<\/strong><\/p>\n<ol>\n<li>Casual Sitting<\/li>\n<li>Graceful Sitting<\/li>\n<li>Technical Standing<\/li>\n<\/ol>\n<p><strong>Popular Voices:<\/strong><\/p>\n<ol>\n<li>en-US-AvaMultilingualNeural<\/li>\n<li>en-US-JennyNeural<\/li>\n<\/ol>\n<p>You can mix and match avatars, styles, and voices to create different presentation experiences.<\/p>\n<p><strong>Step 3: Prepare the Script<\/strong><\/p>\n<p>The simplest approach is to provide plain text:<\/p>\n<p><em>Hello! Welcome to our AI platform.<\/em><br \/>\n<em>Azure automatically converts the text into speech and animates the avatar.<\/em><\/p>\n<p>For advanced scenarios, you can use SSML (Speech Synthesis Markup Language) to control:<\/p>\n<ol>\n<li>Pauses<\/li>\n<li>Speaking rate<\/li>\n<li>Emphasis Pronunciation<\/li>\n<\/ol>\n<p>For most business applications, plain text is more than sufficient.<\/p>\n<p><strong>Step 4: Submit the Rendering Job<\/strong><\/p>\n<p>Azure Batch Avatar Synthesis works asynchronously.<\/p>\n<p>When a user clicks Generate AI Video, the application:<\/p>\n<ol>\n<li>Creates a unique job ID.<\/li>\n<li>Sends the text, avatar selection, and voice configuration to Azure.<\/li>\n<li>Azure queues the rendering request.<\/li>\n<li>Azure returns a job status indicating that processing has started.<\/li>\n<li>The rendering happens entirely in Azure while the user continues interacting with the application.<\/li>\n<\/ol>\n<p><strong>Step 5: Monitor the Job Status<\/strong><br \/>\nVideo generation takes time because Azure needs to synthesize speech, animate the avatar, and render the video.<\/p>\n<p>The frontend periodically checks the job status:<\/p>\n<ol>\n<li>NotStarted \u2013 Job is queued<\/li>\n<li>Running \u2013 Rendering in progress<\/li>\n<li>Succeeded \u2013 Video is ready<\/li>\n<li>Failed \u2013 Rendering encountered an issue<\/li>\n<\/ol>\n<p>Once the status becomes Succeeded, Azure provides a secure URL to the generated MP4 file.<\/p>\n<p><strong>Step 6: View or Download the Video<\/strong><br \/>\nWhen rendering is complete:<\/p>\n<ol>\n<li>The video can be played directly in the browser.<\/li>\n<li>Users can download the MP4 for offline use.<\/li>\n<li>The output is a standard H.264 MP4 file compatible with modern browsers and media players.<\/li>\n<\/ol>\n<h3><strong>What We Observed<\/strong><\/h3>\n<p>After testing the solution with multiple scripts, a few observations stood out:<\/p>\n<p>What Works Well<\/p>\n<ul>\n<li>Very simple setup<\/li>\n<li>High-quality video output<\/li>\n<li>Accurate lip synchronization<\/li>\n<li>Professional-looking avatars<\/li>\n<li>No animation expertise required<\/li>\n<\/ul>\n<h3><strong>Performance<\/strong><\/h3>\n<p>Typical rendering times were:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-6005\" src=\"https:\/\/blogs.infosys.com\/emerging-technology-solutions\/wp-content\/uploads\/2026\/07\/Designer-12-1.png\" alt=\"\" width=\"1024\" height=\"1024\" data-wp-editing=\"1\" \/><\/p>\n<p>Rendering time increases as the script becomes longer.<\/p>\n<h3><strong>Current Limitations<\/strong><\/h3>\n<p>While the service is impressive, there are some limitations:<\/p>\n<ol>\n<li>Batch processing only (not real-time)<\/li>\n<li>Rendering requires a waiting period<\/li>\n<li>Output is 2D video only<\/li>\n<li>Limited facial-expression customization<\/li>\n<li>Limited background customization<\/li>\n<li>Usage costs increase with volume<\/li>\n<\/ol>\n<p>For real-time conversations and streaming avatars, Azure provides a separate WebRTC-based solution.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Have you ever wanted to turn a simple piece of text into a professional-looking [&hellip;]<\/p>\n","protected":false},"author":231,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[7],"tags":[78,155,431],"coauthors":[94,1008],"class_list":["post-5920","post","type-post","status-publish","format-standard","hentry","category-digital-experience","tag-ai","tag-azure","tag-digital-avatars"],"acf":[],"_links":{"self":[{"href":"https:\/\/blogs.infosys.com\/emerging-technology-solutions\/wp-json\/wp\/v2\/posts\/5920","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.infosys.com\/emerging-technology-solutions\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.infosys.com\/emerging-technology-solutions\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.infosys.com\/emerging-technology-solutions\/wp-json\/wp\/v2\/users\/231"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.infosys.com\/emerging-technology-solutions\/wp-json\/wp\/v2\/comments?post=5920"}],"version-history":[{"count":10,"href":"https:\/\/blogs.infosys.com\/emerging-technology-solutions\/wp-json\/wp\/v2\/posts\/5920\/revisions"}],"predecessor-version":[{"id":6007,"href":"https:\/\/blogs.infosys.com\/emerging-technology-solutions\/wp-json\/wp\/v2\/posts\/5920\/revisions\/6007"}],"wp:attachment":[{"href":"https:\/\/blogs.infosys.com\/emerging-technology-solutions\/wp-json\/wp\/v2\/media?parent=5920"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.infosys.com\/emerging-technology-solutions\/wp-json\/wp\/v2\/categories?post=5920"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.infosys.com\/emerging-technology-solutions\/wp-json\/wp\/v2\/tags?post=5920"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/blogs.infosys.com\/emerging-technology-solutions\/wp-json\/wp\/v2\/coauthors?post=5920"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}