Table of Contents

aws fun

aws transcribe

(from #gcu 28/8/2020)

Le service AWS Transcribe permet de realiser la transcription de contenu audio, c'est à dire l'extraction de texte à partir d'une source audio. Ce service utilise du deep learning.

Mise en oeuvre

Afin d'utiliser ce service en ligne de commande, il est nécessaire de disposer d'un compte AWS de type “Programmatic”, c'est à dire de disposer d'une aws_access_key et d'une aws_secret_access_key.

Il est nécessaire de disposer d'un droit d'accès AWS S3 Full Access pour uploader les vidéos sur le bucket S3 et d'un AWS Transcribe FullAccess pour lancer des taches de transcription.

Il faut disposer d'un accès à un bucket s3 qui servira d'espace de stockage pour les documents à transcrire.

Le traitement se réalise en trois étapes.

Configuration d'un profil pour l'accès à l'API via awscli

aws configure --profile s3wtfake

Téléchargement de la vidéo à transcrire vers un bucket S3

aws --profile s3wtfake s3 cp _YPTuniqid_5f4297c4aa6946.62176812_SD.mp4 s3://wtfake-transcribe/

Lancement d'une tache de transcription

aws --profile s3wtfake transcribe start-transcription-job --language-code fr-FR --transcription-job-name CDLXX4 --media MediaFileUri=s3://wtfake-transcribe/_YPTuniqid_5f4297c4aa6946.62176812_SD.mp4

Lister les taches de transcription en cours

aws --profile s3wtfake transcribe list-transcription-jobs

Le retour de la commande sera sous cette forme :

{
    "TranscriptionJobSummaries": [
        {
            "TranscriptionJobName": "CDL49",
            "CreationTime": 1598560456.056,
            "StartTime": 1598560456.076,
            "LanguageCode": "fr-FR",
            "TranscriptionJobStatus": "IN_PROGRESS",
            "OutputLocationType": "SERVICE_BUCKET"
        },
        {
            "TranscriptionJobName": "CDLXX1",
            "CreationTime": 1598560519.323,
            "StartTime": 1598560519.342,
            "CompletionTime": 1598561094.367,
            "LanguageCode": "fr-FR",
            "TranscriptionJobStatus": "COMPLETED",
            "OutputLocationType": "SERVICE_BUCKET"
        },

Récupération de l'état de la transcription

aws --profile s3wtfake transcribe   get-transcription-job --transcription-job-name CDL49
{
    "TranscriptionJob": {
        "TranscriptionJobName": "CDL49",
        "TranscriptionJobStatus": "COMPLETED",
        "LanguageCode": "fr-FR",
        "MediaSampleRateHertz": 44100,
        "MediaFormat": "mp4",
        "Media": {
            "MediaFileUri": "s3://wtfake-transcribe/_YPTuniqid_5f29b633a4b738.59288279_SD.mp4"
        },
        "Transcript": {
            "TranscriptFileUri": "https://s3.eu-west-3.amazonaws.com/aws-transcribe-eu-west-3-prod/087911240729/CDL49/1ec8eebf-c211-4dca-b33b-43d0186b6df6/asrOutput.json?X-Amz-Security-Token=IQoJb3JpZ2luX2VjEAwaCWV1LXdlc3QtMyJHMEUCIFY3hEl6zWCQpGO34vgE1TdXKE0fK0aw9xvMua4KlXx8AiEAjqE5LU%2FPCx4GGKLPnpl2p%2FZK3e4SzgqH0z25EcqeelYqtwMI9f%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FARACGgwxNzQwODA2NTMxOTgiDKhDEo%2FjUjukcllmEiqLA22HrD2VeB5QfG4l83WtwVE8OnqHQxT8Euns%2BQHL8PNSE0dOkH8C%2FMxs%2FsAYxQYBvKCV%2BQdKMW4%2FNFIssH86TwQSaUnVhDatEKdFO43LCUirK3wYWDUxfsFvRVyUxsiW8j8e9l9H6UuLbOWmuaP86Ixn%2BiEkTM3LEJi%2BZ%2BMalVo8U0R7LLS8w6ieZJsty4LJBzyJ0tcehC9cvX8CwQhiSi43mpY7iBQNsDYjKhV6o5bWk3fdWtEP1rBKicCBjlr8eoGkBswGtZ1Q3LtWxUCqCxmAA5%2FgAk04KL0ir4qmNfUfrrvMaUiGoi2qmDNtVmO9foDXdaWVggSeb0nmEHYlobA3w%2FAyamUM7pY4XPLFYNHBD6nx9o0dVH0lVpOvGSSjtlCANVWpcVy%2F7RMVjN5K00Ndc0ZVD6IR3vA6WIu5uCMgggZuPKyb8Wm1OWoQCmnWOmq%2FSLDnBrEHBRfm%2FTFoNqwtZAtNkVjjBzRb9QQ872q%2B8oAEy8ES%2BsRqn50Y0C6wFQOqqD4KcfHIsYLzMLuToPoFOusBs%2BQz3enUEe%2FMB%2FuyeGgf1AH%2BriScJWHPE45DEUCztTaTbxoL5DxPUFZcEbZt4mpsVLAv%2F9M1UkxVrfl%2BzczNBkMrZgPFW8rZhn3h4BcUZjn3LDIKbjnIq5yLXSbTm6qdLo3MBL7QBFPqoUzn2HGVSvCnOHx70zSU8Rct2umuklYIDmnZ3vWCcWRkaO34kKwWhgyRPAxCGszG4dZy42w%2BYcyFDaQA52T0snJRLhWNEhI24t26GdzegaJ%2BmNXUUV066igMng7WWSLkHvGyWrBGKUYDIWfDkxAQZYjquLLJzVv2y9C%2FfY7lDx3FTA%3D%3D&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20200827T210501Z&X-Amz-SignedHeaders=host&X-Amz-Expires=900&X-Amz-Credential=ASIASRCAD66HPFKJIF5W%2F20200827%2Feu-west-3%2Fs3%2Faws4_request&X-Amz-Signature=d538a8b816e3ebad1e9aca2e60835ed3b1ce695c6a3d7e584a0abef228b58cd0"
        },
        "StartTime": 1598560456.076,
        "CreationTime": 1598560456.056,
        "CompletionTime": 1598561834.293,
        "Settings": {
            "ChannelIdentification": false,
            "ShowAlternatives": false
        }
    }
}

Récupération du fichier JSON contenant la transcription :

wget 'https://s3.eu-west-3.amazonaws.com/aws-transcribe-eu-west-3-prod/087911240729/CDL49/1ec8eebf-c211-4dca-b33b-43d0186b6df6/asrOutput.json?X-Amz-Security-Token=IQoJb3JpZ2luX2VjEAwaCWV1LXdlc3QtMyJHMEUCIFY3hEl6zWCQpGO34vgE1TdXKE0fK0aw9xvMua4KlXx8AiEAjqE5LU%2FPCx4GGKLPnpl2p%2FZK3e4SzgqH0z25EcqeelYqtwMI9f%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FARACGgwxNzQwODA2NTMxOTgiDKhDEo%2FjUjukcllmEiqLA22HrD2VeB5QfG4l83WtwVE8OnqHQxT8Euns%2BQHL8PNSE0dOkH8C%2FMxs%2FsAYxQYBvKCV%2BQdKMW4%2FNFIssH86TwQSaUnVhDatEKdFO43LCUirK3wYWDUxfsFvRVyUxsiW8j8e9l9H6UuLbOWmuaP86Ixn%2BiEkTM3LEJi%2BZ%2BMalVo8U0R7LLS8w6ieZJsty4LJBzyJ0tcehC9cvX8CwQhiSi43mpY7iBQNsDYjKhV6o5bWk3fdWtEP1rBKicCBjlr8eoGkBswGtZ1Q3LtWxUCqCxmAA5%2FgAk04KL0ir4qmNfUfrrvMaUiGoi2qmDNtVmO9foDXdaWVggSeb0nmEHYlobA3w%2FAyamUM7pY4XPLFYNHBD6nx9o0dVH0lVpOvGSSjtlCANVWpcVy%2F7RMVjN5K00Ndc0ZVD6IR3vA6WIu5uCMgggZuPKyb8Wm1OWoQCmnWOmq%2FSLDnBrEHBRfm%2FTFoNqwtZAtNkVjjBzRb9QQ872q%2B8oAEy8ES%2BsRqn50Y0C6wFQOqqD4KcfHIsYLzMLuToPoFOusBs%2BQz3enUEe%2FMB%2FuyeGgf1AH%2BriScJWHPE45DEUCztTaTbxoL5DxPUFZcEbZt4mpsVLAv%2F9M1UkxVrfl%2BzczNBkMrZgPFW8rZhn3h4BcUZjn3LDIKbjnIq5yLXSbTm6qdLo3MBL7QBFPqoUzn2HGVSvCnOHx70zSU8Rct2umuklYIDmnZ3vWCcWRkaO34kKwWhgyRPAxCGszG4dZy42w%2BYcyFDaQA52T0snJRLhWNEhI24t26GdzegaJ%2BmNXUUV066igMng7WWSLkHvGyWrBGKUYDIWfDkxAQZYjquLLJzVv2y9C%2FfY7lDx3FTA%3D%3D&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20200827T210501Z&X-Amz-SignedHeaders=host&X-Amz-Expires=900&X-Amz-Credential=ASIASRCAD66HPFKJIF5W%2F20200827%2Feu-west-3%2Fs3%2Faws4_request&X-Amz-Signature=d538a8b816e3ebad1e9aca2e60835ed3b1ce695c6a3d7e584a0abef228b58cd0'

Nettoyage

Il est nécessaire de liberer l'espace utilisé par les taches afin de ne pas se voir (sur)facturer des ressources non utilisées :

aws --profile s3wtfake transcribe   delete-transcription-job --transcription-job-name CDL49
aws --profile s3wtfake s3 rm s3://wtfake-transcribe/_YPTuniqid_5f29bb94220821.62922269_SD.mp4