cancel
Showing results for 
Search instead for 
Did you mean: 
rampprakash

How to Convert Speech to Text from Canvas PowerApps (Part III Microsoft Flow)

Lets see this in 3 Different Blogs, Here we start with Microsoft Azure

 

Pre-Requisites :

 

 

1. Navigate to https://make.powerautomate.com

 

2. Select New --> Select Instant Cloud Flow

 

3. Add Step --> Initialize Variable

 

rampprakash_0-1679038194550.png

 

Add Value as ASK FROM POWERAPPS

4. Add Another Variable

 

rampprakash_1-1679038220574.png

 

replace(variables('Data'),'data:audio/webm;base64,','')

 

5. Add Compose to Convert to JSON

 

rampprakash_2-1679038268441.png

 

json(variables('ReplaceValues'))

 

6. Now Add Parse JSON and Pass input from COMPSE

 

rampprakash_3-1679038308430.png

 

 

{
    "type": "object",
    "properties": {
        "Url": {
            "type": "string"
        }
    }
}

 

7. Get the Value from JSON and Pass value as URL

 

rampprakash_4-1679038361172.png

 

8. Trigger a HTTP Request to Function app (URL : Function APP URL)

 

rampprakash_5-1679038428381.png

 

9. Trigger HTTP Request for Cognitive Service with KEY and Content Type

 

rampprakash_6-1679038496948.png

 

Here the URL will be Your Cognitive URL and Key as Cognitive Key

 

10. Parse JSON and the Input from Point 9

 

rampprakash_7-1679038558575.png

 

 

{
    "type": "object",
    "properties": {
        "RecognitionStatus": {
            "type": "string"
        },
        "Offset": {
            "type": "integer"
        },
        "Duration": {
            "type": "integer"
        },
        "NBest": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "Confidence": {
                        "type": "number"
                    },
                    "Lexical": {
                        "type": "string"
                    },
                    "ITN": {
                        "type": "string"
                    },
                    "MaskedITN": {
                        "type": "string"
                    },
                    "Display": {
                        "type": "string"
                    }
                },
                "required": [
                    "Confidence",
                    "Lexical",
                    "ITN",
                    "MaskedITN",
                    "Display"
                ]
            }
        },
        "DisplayText": {
            "type": "string"
        }
    }
}

 

10. At last Respond to PowerApps

 

rampprakash_8-1679038591429.png

 

 

That's it 🙂

 

Comments

Hi @rampprakash ,

This article helped me to understand nicely. But how could we test this can you please help me on the testing part!

 

Thanks,

Vijay_Raju

Hi Once you done this, you can speak directly in Canvas App with Micro Phone and click Submit it will redirect to Flow and it will provide a response

@rampprakash for step 7, what type for "set value from json" variable?

When I built flow, skip step 7, add url into http action directly.

fishscience_2_0-1689585899581.png

However get error for HTTP action

fishscience_2_1-1689585957352.png

Here is the detailed error message:

{"title":"ffmpeg version 6.0-full_build-www.gyan.dev Copyright (c) 2000-2023 the FFmpeg developers\r\n built with gcc 12.2.0 (Rev10, Built by MSYS2 project)\r\n configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libaribb24 --enable-libdav1d --enable-libdavs2 --enable-libuavs3d --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libaom --enable-libjxl --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-liblensfun --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-libshaderc --enable-vulkan --enable-libplacebo --enable-opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint\r\n libavutil 58. 2.100 / 58. 2.100\r\n libavcodec 60. 3.100 / 60. 3.100\r\n libavformat 60. 3.100 / 60. 3.100\r\n libavdevice 60. 1.100 / 60. 1.100\r\n libavfilter 9. 3.100 / 9. 3.100\r\n libswscale 7. 1.100 / 7. 1.100\r\n libswresample 4. 10.100 / 4. 10.100\r\n libpostproc 57. 1.100 / 57. 1.100\r\n[matroska,webm @ 000001ad56ea1000] Format matroska,webm detected only with low score of 1, misdetection possible!\r\n[matroska,webm @ 000001ad56ea1000] EBML header parsing failed\r\nC:\\local\\Temp\\1v420kse.gva.webm: Invalid data found when processing input\r\n","status":400}

 

Can you suggest? Really appreciate your help!

I build flow as shown below. Skip step7, and add uri from Parse JSON into HTTP directly

fishscience_2_0-1689586296522.png

However get error as shown below:

fishscience_2_1-1689586422375.png

Can suggest? Really appreciate your answer

Here is the detailed error message:

{"title":"ffmpeg version 6.0-full_build-www.gyan.dev Copyright (c) 2000-2023 the FFmpeg developers\r\n built with gcc 12.2.0 (Rev10, Built by MSYS2 project)\r\n configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libaribb24 --enable-libdav1d --enable-libdavs2 --enable-libuavs3d --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libaom --enable-libjxl --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-liblensfun --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-libshaderc --enable-vulkan --enable-libplacebo --enable-opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint\r\n libavutil 58. 2.100 / 58. 2.100\r\n libavcodec 60. 3.100 / 60. 3.100\r\n libavformat 60. 3.100 / 60. 3.100\r\n libavdevice 60. 1.100 / 60. 1.100\r\n libavfilter 9. 3.100 / 9. 3.100\r\n libswscale 7. 1.100 / 7. 1.100\r\n libswresample 4. 10.100 / 4. 10.100\r\n libpostproc 57. 1.100 / 57. 1.100\r\n[matroska,webm @ 000001ad56ea1000] Format matroska,webm detected only with low score of 1, misdetection possible!\r\n[matroska,webm @ 000001ad56ea1000] EBML header parsing failed\r\nC:\\local\\Temp\\1v420kse.gva.webm: Invalid data found when processing input\r\n","status":400}

The issue is figured out. You can ignore my question above. Thank you!

Hi @rampprakash , 

getting the same error as @fishscience_2 except its in the first http request any solutions or ideas would be greatly appreciated, thank you.

 

{"title":"ffmpeg version 6.0-full_build-www.gyan.dev Copyright (c) 2000-2023 the FFmpeg developers\r\n built with gcc 12.2.0 (Rev10, Built by MSYS2 project)\r\n configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libaribb24 --enable-libdav1d --enable-libdavs2 --enable-libuavs3d --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libaom --enable-libjxl --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-liblensfun --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-libshaderc --enable-vulkan --enable-libplacebo --enable-opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint\r\n libavutil 58. 2.100 / 58. 2.100\r\n libavcodec 60. 3.100 / 60. 3.100\r\n libavformat 60. 3.100 / 60. 3.100\r\n libavdevice 60. 1.100 / 60. 1.100\r\n libavfilter 9. 3.100 / 9. 3.100\r\n libswscale 7. 1.100 / 7. 1.100\r\n libswresample 4. 10.100 / 4. 10.100\r\n libpostproc 57. 1.100 / 57. 1.100\r\n[matroska,webm @ 000001706cbc0b80] Format matroska,webm detected only with low score of 1, misdetection possible!\r\n[matroska,webm @ 000001706cbc0b80] EBML header parsing failed\r\nC:\\local\\Temp\\hckwpyxh.szk.webm: Invalid data found when processing input\r\n","status":400}

@NeilMayo in step 7, try value replace url. It works for me.

@fishscience_2  thank you for your response although unfortunately ive already tried that same error 

Hi All, 

@fishscience_2  , @rampprakash , @Vijay_Raju , @NeilMayo 

Where do you get the function app URL in step 8?

I have a speech service on cognitive services but no function app?