{"id":739,"date":"2026-10-12T14:28:38","date_gmt":"2026-10-12T04:28:38","guid":{"rendered":"https:\/\/www.cloudproinc.com.au\/?p=739"},"modified":"2026-10-12T14:28:38","modified_gmt":"2026-10-12T04:28:38","slug":"creating-a-text-to-speech-power-app-using-openai-whisper","status":"publish","type":"post","link":"https:\/\/www.cloudproinc.com.au\/index.php\/2026\/10\/12\/creating-a-text-to-speech-power-app-using-openai-whisper\/","title":{"rendered":"Creating a Text-to-Speech Power App Using OpenAI Whisper"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">In this post on OpenAI and Microsoft Power Apps, we will create a Text-to-Speech Power App using OpenAI Whisper.<\/p>\n\n\n\n<!--more-->\n\n\n\n<div class=\"wp-block-yoast-seo-table-of-contents yoast-table-of-contents\"><h2>Table of contents<\/h2><ul><li><a href=\"#h-creating-a-text-to-speech-power-app-using-openai-whisper\" data-level=\"2\">Creating a Text-to-Speech Power App Using OpenAI Whisper<\/a><\/li><li><a href=\"#h-get-an-api-key-from-openai\" data-level=\"2\">Get an API Key from OpenAI<\/a><\/li><li><a href=\"#h-creating-a-text-to-speech-power-app\" data-level=\"2\">Creating a Text-to-Speech Power App<\/a><\/li><li><a href=\"#h-create-power-automate-flow\" data-level=\"2\">Create Power Automate Flow<\/a><\/li><li><a href=\"#h-related-articles\" data-level=\"2\">Related Articles<\/a><\/li><\/ul><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">OpenAI whisper is OpenAI&#8217;s Text-to-Speech service, offering human-like natural voice (5 options to choose from) and the ability to convert to audio.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The Power App integrates with Power Automate and makes HTTP calls to OpenAI using REST API. For this to work, you will need a paid OpenAI account with credit to call the API.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-creating-a-text-to-speech-power-app-using-openai-whisper\">Creating a Text-to-Speech Power App Using OpenAI Whisper<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The following screenshot shows what the application looks like. The design uses the Microsoft Teams theme that is available in Power Apps.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"506\" height=\"811\" data-src=\"\/wp-content\/uploads\/2024\/10\/image.png\" alt=\"\" class=\"wp-image-740 lazyload\" data-srcset=\"\/wp-content\/uploads\/2024\/10\/image.png 506w, \/wp-content\/uploads\/2024\/10\/image-187x300.png 187w, \/wp-content\/uploads\/2024\/10\/image-480x769.png 480w\" data-sizes=\"(max-width: 506px) 100vw, 506px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 506px; --smush-placeholder-aspect-ratio: 506\/811;\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-get-an-api-key-from-openai\">Get an API Key from OpenAI<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The first step in the process is to get an API Key from OpenAI. The API Key allows us to programmatically access the OpenAI service. To get a key, log in to OpenAI.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Click on Your Profile link<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Select Use API Keys (Note, OpenAI switched to Project API Keys)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Create an API Key and save it for later.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1024\" height=\"218\" data-src=\"\/wp-content\/uploads\/2024\/10\/image-1.png\" alt=\"\" class=\"wp-image-741 lazyload\" data-srcset=\"\/wp-content\/uploads\/2024\/10\/image-1.png 1024w, \/wp-content\/uploads\/2024\/10\/image-1-300x64.png 300w, \/wp-content\/uploads\/2024\/10\/image-1-768x164.png 768w, \/wp-content\/uploads\/2024\/10\/image-1-980x209.png 980w, \/wp-content\/uploads\/2024\/10\/image-1-480x102.png 480w\" data-sizes=\"(max-width: 1024px) 100vw, 1024px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/218;\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">After creating the key, we need to create a Power App and a Power Automate flow that sends a POST HTTP request to OpenAI with a text the Power App will provide. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-creating-a-text-to-speech-power-app\">Creating a Text-to-Speech Power App<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">From the Power Apps portal, create a new Tablet or Mobile application. In our case, we selected a Mobile application with three controllers.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>TextInput Canvas (Multilines)<\/li>\n\n\n\n<li>Button Canvas  <\/li>\n\n\n\n<li>Audio Player<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"425\" height=\"721\" data-src=\"\/wp-content\/uploads\/2024\/10\/image-2.png\" alt=\"\" class=\"wp-image-742 lazyload\" data-srcset=\"\/wp-content\/uploads\/2024\/10\/image-2.png 425w, \/wp-content\/uploads\/2024\/10\/image-2-177x300.png 177w\" data-sizes=\"(max-width: 425px) 100vw, 425px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 425px; --smush-placeholder-aspect-ratio: 425\/721;\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-create-power-automate-flow\">Create Power Automate Flow<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">We need to create a Power Automate flow for the Power App to call OpenAI Whisper and pass in the text to convert to audio. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Click on Power Automate from the Power App and create a new flow.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"334\" height=\"350\" data-src=\"\/wp-content\/uploads\/2024\/10\/image-3.png\" alt=\"\" class=\"wp-image-743 lazyload\" data-srcset=\"\/wp-content\/uploads\/2024\/10\/image-3.png 334w, \/wp-content\/uploads\/2024\/10\/image-3-286x300.png 286w\" data-sizes=\"(max-width: 334px) 100vw, 334px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 334px; --smush-placeholder-aspect-ratio: 334\/350;\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-related-articles\">Related Articles<\/h2>\n\n\n\n<ul class=\"wp-block-yoast-seo-related-links yoast-seo-related-links\">\n<li><a href=\"https:\/\/www.cloudproinc.com.au\/index.php\/2024\/10\/07\/deploy-azure-openai-resource-using-bicep\/\">Deploy Azure OpenAI Resource Using Bicep<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.cloudproinc.com.au\/index.php\/2024\/08\/28\/deploy-azure-resources-with-logic-apps\/\">Deploy Azure Resources With Logic Apps<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/cloudproinc.com.au\/index.php\/2024\/07\/25\/deploy-azure-openai-gpt-4o-resource-and-model-using-bicep\/\">Deploy Azure OpenAI GPT-4o Resource and Model using Bicep<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/cloudproinc.azurewebsites.net\/index.php\/2024\/08\/01\/automating-access-to-microsoft-graph-api-using-azure-pipelines\/\" target=\"_blank\" rel=\"noopener\">Automating Access to Microsoft Graph API Using Azure Pipelines<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.cloudproinc.com.au\/index.php\/2024\/07\/29\/setting-up-email-to-case-in-dynamics-365\/\">Setting Up Email to Case in Dynamics 365<\/a><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this post on OpenAI and Microsoft Power Apps, we will create a Text-to-Speech Power App using OpenAI Whisper.<\/p>\n","protected":false},"author":1,"featured_media":744,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"off","_et_pb_old_content":"","_et_gb_content_width":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[24,26,13,52],"tags":[],"class_list":["post-739","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ai","category-azure-ai-services","category-blog","category-power-apps"],"jetpack-related-posts":[{"id":53614,"url":"https:\/\/www.cloudproinc.com.au\/index.php\/2026\/10\/12\/turn-wordpress-posts-into-voice-blogs-with-python-openai-tts\/","url_meta":{"origin":739,"position":0},"title":"Turn WordPress Posts into \u201cVoice Blogs\u201d with Python + OpenAI TTS","author":"CPI Staff","date":"October 12, 2026","format":false,"excerpt":"This blog post, \"Turn WordPress Posts into \u201cVoice Blogs\u201d with Python + OpenAI TTS\" will show you how to pull posts from a WordPress site via the REST API, converts the article content to speech using OpenAI\u2019s Text-to-Speech (TTS), saves an MP3, and (optionally) uploads the file back to your\u2026","rel":"","context":"In &quot;AI&quot;","block_context":{"text":"AI","link":"https:\/\/www.cloudproinc.com.au\/index.php\/category\/ai\/"},"img":{"alt_text":"","src":"\/wp-content\/uploads\/2025\/08\/turn-wordpress-posts-into-voice-blogs-with-python-openai-tts-1.png","width":350,"height":200,"srcset":"\/wp-content\/uploads\/2025\/08\/turn-wordpress-posts-into-voice-blogs-with-python-openai-tts-1.png 1x, \/wp-content\/uploads\/2025\/08\/turn-wordpress-posts-into-voice-blogs-with-python-openai-tts-1.png 1.5x, \/wp-content\/uploads\/2025\/08\/turn-wordpress-posts-into-voice-blogs-with-python-openai-tts-1.png 2x, \/wp-content\/uploads\/2025\/08\/turn-wordpress-posts-into-voice-blogs-with-python-openai-tts-1.png 3x, \/wp-content\/uploads\/2025\/08\/turn-wordpress-posts-into-voice-blogs-with-python-openai-tts-1.png 4x"},"classes":[]},{"id":53311,"url":"https:\/\/www.cloudproinc.com.au\/index.php\/2026\/10\/12\/how-to-protect-your-openai-net-apps-from-prompt-injection-attacks-with-azure-ai-foundry\/","url_meta":{"origin":739,"position":1},"title":"Protect Your OpenAI .NET Apps from Prompt Injection Attacks","author":"CPI Staff","date":"October 12, 2026","format":false,"excerpt":"In this OpenAI and Azure blog post, we will show you how to Protect Your OpenAI .NET Apps from Prompt Injection Attacks effectively. Table of contentsWhy Prompt Injection MattersSetting Up the ProtectionInstall Required PackagesThe Full Protection WorkflowExample C# CodeKey PointsConclusionMore Posts Prompt injection attacks are becoming a serious security concern\u2026","rel":"","context":"In &quot;.NET&quot;","block_context":{"text":".NET","link":"https:\/\/www.cloudproinc.com.au\/index.php\/category\/net\/"},"img":{"alt_text":"","src":"\/wp-content\/uploads\/2025\/04\/AI_Prompt_protection.png","width":350,"height":200,"srcset":"\/wp-content\/uploads\/2025\/04\/AI_Prompt_protection.png 1x, \/wp-content\/uploads\/2025\/04\/AI_Prompt_protection.png 1.5x, \/wp-content\/uploads\/2025\/04\/AI_Prompt_protection.png 2x, \/wp-content\/uploads\/2025\/04\/AI_Prompt_protection.png 3x, \/wp-content\/uploads\/2025\/04\/AI_Prompt_protection.png 4x"},"classes":[]},{"id":53341,"url":"https:\/\/www.cloudproinc.com.au\/index.php\/2026\/10\/12\/building-a-blazor-net-app-that-recognizes-images-with-openai\/","url_meta":{"origin":739,"position":2},"title":"Building a Blazor .NET App that Recognizes Images with OpenAI","author":"CPI Staff","date":"October 12, 2026","format":false,"excerpt":"In this blog post, we\u2019ll show you how to Build a Blazor .NET App that Recognizes Images with OpenAI. You\u2019ll see how we securely upload image files, send them to OpenAI\u2019s API, and return a natural-language response\u2014seamlessly integrated into a modern web interface. This example highlights how CPI Consulting applies\u2026","rel":"","context":"In &quot;.NET&quot;","block_context":{"text":".NET","link":"https:\/\/www.cloudproinc.com.au\/index.php\/category\/net\/"},"img":{"alt_text":"","src":"\/wp-content\/uploads\/2025\/05\/Building-a-Blazor-NET-App-that-Recognizes-Images-with-OpenAI-e1746073555343.png","width":350,"height":200,"srcset":"\/wp-content\/uploads\/2025\/05\/Building-a-Blazor-NET-App-that-Recognizes-Images-with-OpenAI-e1746073555343.png 1x, \/wp-content\/uploads\/2025\/05\/Building-a-Blazor-NET-App-that-Recognizes-Images-with-OpenAI-e1746073555343.png 1.5x, \/wp-content\/uploads\/2025\/05\/Building-a-Blazor-NET-App-that-Recognizes-Images-with-OpenAI-e1746073555343.png 2x"},"classes":[]},{"id":735,"url":"https:\/\/www.cloudproinc.com.au\/index.php\/2026\/10\/12\/deploy-azure-openai-resource-using-bicep\/","url_meta":{"origin":739,"position":3},"title":"Deploy Azure OpenAI Resource Using Bicep","author":"CPI Staff","date":"October 12, 2026","format":false,"excerpt":"In this Microsoft Azure OpenAI blog post, we will deploy an Azure OpenAI resource and an OpenAI GPT4 model using Bicep. Azure OpenAI is an enterprise-grade AI service that provides access to all the OpenAI AI models, including GPT,\u00a0DALL-E,\u00a0Whisper, and more. With Azure OpenAI, we can deploy the services using\u2026","rel":"","context":"In &quot;AI&quot;","block_context":{"text":"AI","link":"https:\/\/www.cloudproinc.com.au\/index.php\/category\/ai\/"},"img":{"alt_text":"","src":"\/wp-content\/uploads\/2024\/09\/Block-copy-paste-from-ios-devices.webp","width":350,"height":200,"srcset":"\/wp-content\/uploads\/2024\/09\/Block-copy-paste-from-ios-devices.webp 1x, \/wp-content\/uploads\/2024\/09\/Block-copy-paste-from-ios-devices.webp 1.5x, \/wp-content\/uploads\/2024\/09\/Block-copy-paste-from-ios-devices.webp 2x"},"classes":[]},{"id":56780,"url":"https:\/\/www.cloudproinc.com.au\/index.php\/2026\/10\/12\/security-best-practices-for-azure-ai-services\/","url_meta":{"origin":739,"position":4},"title":"Security Best Practices for Azure AI Services","author":"CPI Staff","date":"October 12, 2026","format":false,"excerpt":"Practical, step-by-step guidance to secure Azure AI services end to end\u2014identity, networks, data, prompts, and monitoring\u2014so your teams can innovate confidently without exposing your organisation.","rel":"","context":"In &quot;Azure AI Services&quot;","block_context":{"text":"Azure AI Services","link":"https:\/\/www.cloudproinc.com.au\/index.php\/category\/azure-ai-services\/"},"img":{"alt_text":"","src":"\/wp-content\/uploads\/2025\/11\/security-best-practices-for-azure-ai-services-in-practice.png","width":350,"height":200,"srcset":"\/wp-content\/uploads\/2025\/11\/security-best-practices-for-azure-ai-services-in-practice.png 1x, \/wp-content\/uploads\/2025\/11\/security-best-practices-for-azure-ai-services-in-practice.png 1.5x, \/wp-content\/uploads\/2025\/11\/security-best-practices-for-azure-ai-services-in-practice.png 2x, \/wp-content\/uploads\/2025\/11\/security-best-practices-for-azure-ai-services-in-practice.png 3x, \/wp-content\/uploads\/2025\/11\/security-best-practices-for-azure-ai-services-in-practice.png 4x"},"classes":[]},{"id":53555,"url":"https:\/\/www.cloudproinc.com.au\/index.php\/2026\/10\/12\/counting-tokens-using-the-openai-python-sdk\/","url_meta":{"origin":739,"position":5},"title":"Counting Tokens Using the OpenAI Python SDK","author":"CPI Staff","date":"October 12, 2026","format":false,"excerpt":"This post provides a comprehensive guide on counting tokens using the OpenAI Python SDK, covering Python virtual environments, managing your OpenAI API key securely, and the role of the requirements.txt file. In the world of Large Language Models (LLMs) and Artificial Intelligence (AI), the term \"token\" frequently arises. Tokens are\u2026","rel":"","context":"In &quot;AI&quot;","block_context":{"text":"AI","link":"https:\/\/www.cloudproinc.com.au\/index.php\/category\/ai\/"},"img":{"alt_text":"","src":"\/wp-content\/uploads\/2025\/07\/image-23.png","width":350,"height":200,"srcset":"\/wp-content\/uploads\/2025\/07\/image-23.png 1x, \/wp-content\/uploads\/2025\/07\/image-23.png 1.5x, \/wp-content\/uploads\/2025\/07\/image-23.png 2x"},"classes":[]}],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"\/wp-content\/uploads\/2024\/10\/Creating-a-Text-to-Speech-Power-App-Using-OpenAI-Whisper.webp","_links":{"self":[{"href":"https:\/\/www.cloudproinc.com.au\/index.php\/wp-json\/wp\/v2\/posts\/739","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.cloudproinc.com.au\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.cloudproinc.com.au\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.cloudproinc.com.au\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.cloudproinc.com.au\/index.php\/wp-json\/wp\/v2\/comments?post=739"}],"version-history":[{"count":1,"href":"https:\/\/www.cloudproinc.com.au\/index.php\/wp-json\/wp\/v2\/posts\/739\/revisions"}],"predecessor-version":[{"id":745,"href":"https:\/\/www.cloudproinc.com.au\/index.php\/wp-json\/wp\/v2\/posts\/739\/revisions\/745"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.cloudproinc.com.au\/index.php\/wp-json\/wp\/v2\/media\/744"}],"wp:attachment":[{"href":"https:\/\/www.cloudproinc.com.au\/index.php\/wp-json\/wp\/v2\/media?parent=739"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.cloudproinc.com.au\/index.php\/wp-json\/wp\/v2\/categories?post=739"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.cloudproinc.com.au\/index.php\/wp-json\/wp\/v2\/tags?post=739"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}