MARKETPLACE
PLUGINS
AWS TRANSCRIBE DETECT TOXIC SPEECH
AWS Transcribe Detect Toxic Speech logo

AWS Transcribe Detect Toxic Speech

Published January 2024
   โ€ข    Updated June 2025

Plugin details

Amazon Transcribe flags and categorizes toxic speech from audio or video, which minimizes the volume of data that must be manually processed. This enables content moderators to quickly and efficiently manage the discourse on their platforms.
Amazon Transcribe Toxicity Detection is a tool designed to moderate social media platforms by identifying and classifying toxic speech.
It uses audio cues, such as tone and pitch, to detect toxic intent, improving upon systems that focus only on specific terms. The tool flags and categorizes toxic speech, reducing the data that must be manually processed and aiding content moderators in managing discourse efficiently.

Toxicity detection detects the following categories of offensive content:

- Graphic: Uses detailed and vivid imagery to amplify discomfort or harm.
- Harassment or Abuse: Imposes disruptive power dynamics, affecting the recipientโ€™s psychological well-being.
- Hate Speech: Criticizes, insults, or dehumanizes a person or group based on their identity.
Insult: Includes demeaning, humiliating, or belittling language.
- Profanity: Contains impolite, vulgar, or offensive words or phrases.
- Sexual: Indicates sexual interest or activity using references to physical traits or sex.
Violence or Threat: Includes threats inflicting pain, injury, or hostility.
- Toxicity: Contains potentially toxic words or phrases across any of the above categories.

This plugin returns the transcript, along with diarization information, of the audio or video file in FLAC, MP3, MP4, Ogg, WebM, AMR, or WAV format stored in AWS S3.

Also, a speech recorder visual element is provided to record the speech from the user's device.

The supported languages are listed here: https://docs.aws.amazon.com/transcribe/latest/dg/supported-languages.html#table-language-matrix

To interact with AWS S3 and AWS SQS, it is highly recommended to use this plugin in conjunction of our "AWS S3 & SQS Utilities" plugin to provide the Put, Get, and Delete a file from AWS S3, and Poll Queue from AWS SQS action , that you can find here: https://bubble.io/plugin/aws-s3--sqs-utilities-1615057147611x666191530957733900

The demo application link: https://awstranscribetoxicdemo.bubbleapps.io/version-test

Editor Link: https://bubble.io/page?id=awstranscribetoxicdemo-editor&tab=tabs-1

๐Ÿ’ก ๐—ฆ๐˜‚๐—ฏ๐˜€๐—ฐ๐—ฟ๐—ถ๐—ฝ๐˜๐—ถ๐—ผ๐—ป๐˜€ ๐—ฎ๐—ฟ๐—ฒ ๐—ฝ๐—ฟ๐—ผ๐—ฟ๐—ฎ๐˜๐—ฒ๐—ฑ. ๐—œ๐—ณ ๐˜†๐—ผ๐˜‚ ๐—ถ๐—ป๐˜€๐˜๐—ฎ๐—น๐—น ๐—ฎ๐—ป๐—ฑ ๐˜‚๐—ป๐˜€๐˜‚๐—ฏ๐˜€๐—ฐ๐—ฟ๐—ถ๐—ฏ๐—ฒ ๐˜๐—ต๐—ถ๐˜€ ๐—ฝ๐—น๐˜‚๐—ด๐—ถ๐—ป ๐—ถ๐—ป ๐—ผ๐—ป๐—ฒ ๐—ฑ๐—ฎ๐˜† ๐˜๐—ผ ๐˜๐—ฒ๐˜€๐˜ ๐—ถ๐˜ ๐—ผ๐˜‚๐˜, ๐˜†๐—ผ๐˜‚'๐—น๐—น ๐—ผ๐—ป๐—น๐˜† ๐—ฏ๐—ฒ ๐—ฐ๐—ต๐—ฎ๐—ฟ๐—ด๐—ฒ๐—ฑ ๐Ÿญ/๐Ÿฏ๐Ÿฌ๐˜๐—ต ๐—ผ๐—ณ ๐˜๐—ต๐—ฒ ๐—บ๐—ผ๐—ป๐˜๐—ต๐—น๐˜† ๐˜€๐˜‚๐—ฏ๐˜€๐—ฐ๐—ฟ๐—ถ๐—ฝ๐˜๐—ถ๐—ผ๐—ป ๐—ณ๐—ฒ๐—ฒ.

๐Ÿ“– ๐—ฆ๐˜๐—ฒ๐—ฝ-๐—ฏ๐˜†-๐—ฆ๐˜๐—ฒ๐—ฝ ๐—ถ๐—ป๐˜€๐˜๐—ฟ๐˜‚๐—ฐ๐˜๐—ถ๐—ผ๐—ป๐˜€ ๐—ฎ๐—ฟ๐—ฒ ๐˜๐—ต๐—ฒ "๐—œ๐—ป๐˜€๐˜๐—ฟ๐˜‚๐—ฐ๐˜๐—ถ๐—ผ๐—ป๐˜€" ๐˜€๐—ฒ๐—ฐ๐˜๐—ถ๐—ผ๐—ป ๐—ฎ๐—ป๐—ฑ ๐——๐—ฒ๐—บ๐—ผ ๐—˜๐—ฑ๐—ถ๐˜๐—ผ๐—ฟ ๐—ถ๐˜€ ๐—ถ๐—ป ๐˜๐—ต๐—ฒ "๐—Ÿ๐—ถ๐—ป๐—ธ๐˜€" ๐˜€๐—ฒ๐—ฐ๐˜๐—ถ๐—ผ๐—ป ๐—ผ๐—ณ ๐˜๐—ต๐—ฒ ๐—ฃ๐—น๐˜‚๐—ด๐—ถ๐—ป ๐—ฃ๐—ฎ๐—ด๐—ฒ.

Contact us at [email protected] for any additional feature you would require or support question.

$39

One time  โ€ข  Or  $5/mo

stars   โ€ข   0 ratings
1 installs  
This plugin does not collect or track your personal data.

Platform

Web & Native mobile

Contributor details

wise:able logo
wise:able
Joined 2020   โ€ข   122 Plugins
View contributor profile

Instructions

0: SPEECH RECORDER ELEMENT ==========================

ELEMENT DESCRIPTION
--------------------------------
 SPEECH RECORDER is a visual element allowing you to record voice in WAV, OGG, WAV, WEBM or PCM format on all desktop devices and browsers (with exception of iOS, where due to browser policy restrictions it works only in Safari browser). After recording, the element stored the file in the app's storage and returns the file URL.

STEP-BY-STEP SETUP
--------------------------------
 1) Drap and drop up the visual element SPEECH RECORDER in your app.

 2) Select the SPEECH RECORDER element, in APPEARANCE section, configure the following fields :
 
 FIELDS :
 - ENABLE AUTO-BINDING PARENT ELEMENT'S THING : If selected, SPEECH RECORDER will update the parent elements thing, evaluating to a FILE, once the recording will be ready.
 - MAX FILE SIZE : Limits the file size of the recording (Megabytes).
 - FILE UPLOAD ENABLED : Must be set to yes.
 - CHANNELS : Select the number of channels to record.
 - FORMAT : Output format of the recording. Valid values are WAV | OGG | PCM | WEBM | MP3.
 - BACKGROUND WHEN OFF : Recorder background color when recording is off.
 - BACKGROUND WHEN ON : Recorder background color when recording is on.
 - RECORDER WHEN OFF : Recorder color when recording is off.
 - RECORDER WHEN ON : Recorder color when recording is on.

 3) Integrate the logic into your application using the following SPEECH RECORDER, states and actions:

 EVENTS :
 - RECORD CAPTURED : Triggered when the record has been captured.
 - RECORD ENCOUNTERED ERROR : Triggered when the record has encountered an error. The "ERROR MESSAGE" is then exposed as element STATE.
 
 EXPOSED STATES:
 Use any element able to show/process the data of interest (such as a Group with a Text field) stored within the result of the following states of the SPEECH RECORDER element :
 - DURATION : Duration of the recording.
 - RECORDING : Returns yes while recording.
 - FILE SIZE : Size of the recording in bytes.
 - SAVING : Returns yes while recording is being saved to the app's storage.
 - PAUSED : Returns yes while paused.
 - RECORDING FILE : URL of the recording file, saved to the app's storage.
 - ERROR MESSAGE : Contains the error message upon "RECORDER ENCOUNTERS AN ERROR" event.

 ELEMENT ACTIONS - TRIGGERED IN WORKFLOW:
   - START - STOP
   - PAUSE - RESUME
   - CANCEL RECORDING

 4)  Then, implement either one the of the following actions to trigger the speech transcription.

1 : START & GET SPEECH TOXICITY (ASYNC)
==========================================

ACTION DESCRIPTION
--------------------------------
 START SPEECH TOXICITY JOB starts a speech toxicity assessment job from a FLAC, MP3, MP4, Ogg, WebM, AMR, or WAV file stored in AWS S3.

STEP-BY-STEP SETUP
--------------------------------
The steps from 0) to 1) can be automatically performed by using this deployment template:
 https://console.aws.amazon.com/cloudformation/home?#/stacks/create/review?stackName=BubbleTranscribe&templateURL=https://bubble-resources.s3.amazonaws.com/deployment-assets/CloudFormation-AWSTranscribeAsync.yaml

 0) Sign-up for AWS TRANSCRIBE : https://console.aws.amazon.com/transcribe/home?p=rkn&cp=bn&ad=c

 1) Create your AWS TRANSCRIBE API KEY & SECRET and attach the AWS TRANSCRIBE FULL ACCESS and S3 READ ONLY policies: https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys

   Write down your:
     - KEY & KEY SECRET
     - AWS SERVICE ENDPOINT REGION

 2) In the Plugin Settings, enter the following :
     - AWS TRANSCRIBE API KEY & SECRET
     - AWS SERVICE ENDPOINT REGION (if not provided, default endpoint is "us-east-1").

 3) Set-up in your workflow an action returning the BUCKET and KEY of your file to analyze.
   a) If you do not already have such action, install the plugin "AWS S3 & SQS UTILITIES"
   b) Create a AWS S3 BUCKET that will be used to store the file to analyze: https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-bucket.html
   c) Set up the "PUT FILE TO S3" action in the workflow.
     Inputs Fields:
       - FILE URL TO STORE : The file URL from the Bubble.io uploader, or a Protocol-relative URLs (//server/file.ext), or a HTTPS file URL (https://server/file.ext). The file must be accessible through the HTTPS protocol.
      - AWS S3 BUCKET NAME : Bucket Name to which the file will be saved.
      - AWS S3 FILE NAME : Path & File Name to save to. The format must be [path/]filename.ext.
           Example 1: path1/path2/filename.ext.
           Example 2: filename.ext if the file is at the root of the bucket.

 4) Set up the "START SPEECH TOXICITY JOB" action in the workflow.
   Inputs Fields:
   - AWS S3 BUCKET NAME : AWS S3 bucket name from which the input file will be read.
   - AWS S3 FILE NAME : AWS S3 file name for the input file. Enter here the file from the Bubble.io file, or a Protocol-relative URLs (//server/filename.ext), or a HTTPS URL (https://server/filename.ext). The supported file formats are FLAC, MP3, MP4, Ogg, WebM, AMR, or WAV.
       Example 1 : path1/path2/filename.ext.
       Example 2 : filename.ext if the file is at the root of the bucket.
   Output Fields:
     - JOBID : ID of the Job, to be reused in the "GET SPEECH TOXICITY RESULTS".

 5) Set up the action โ€œGET SPEECH TOXICITY RESULTS" action in a RECURRING (Do every x seconds) workflow to continuously poll AWS TRANSCRIBE job status.
   Inputs Fields :
     - OUTPUT FIELD: Must always be set to "TOXICITY RESULTS (TRANSCRIBE)"
     - JOBID : ID of the job to poll, returned by "SSTART SPEECH TOXICITY JOB" action.
   Output Fields :
     - TRANSCRIPTION JOB STATUS : Possible values are QUEUED, IN_PROGRESS, FAILED, COMPLETED.
     - RESULTS:  Returns a list of toxicity results upon COMPLETED TRANSCRIPTION JOB STATUS. Each transcript is associated with a start time, end time along with toxicity score for each category.

IMPLEMENTATION EXAMPLE
======================
 Feel free to browse the app editor in the Service URL for an implementation example.

ADDITIONAL INFORMATION
======================

> Supported languages: https://docs.aws.amazon.com/transcribe/latest/dg/supported-languages.html#table-language-matrix
> AWS TRANSCRIBE service limits : https://docs.aws.amazon.com/transcribe/latest/dg/limits-guidelines.html#limits
> AWS services availability per region : https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/
> AWS Service endpoints list : https://docs.aws.amazon.com/general/latest/gr/rande.html

TROUBLESHOOTING
================
 Any plugin related error will be posted to the the Logs tab, "Server logs" section of your App Editor.
 Make sure that "Plugin server side output" and "Plugin server side output" is selected in "Show Advanced".

 > Server Logs Details: https://manual.bubble.io/core-resources/bubbles-interface/logs-tab#server-logs

PERFORMANCE CONSIDERATIONS
===========================

GENERAL
-------------
 The largest usable file size depends on the capacity units your app can use on Bubble.io (see Capacity Boost or Professional Plan, the highest limit being capped by Bubble.io's Workflow Action maximum execution time to perform the response parsing operation.


QUESTIONS ?
===========
 Contact us at [email protected] for any additional feature you would require or support question

Types

This plugin can be found under the following types:
Api   โ€ข   Background Services   โ€ข   Element   โ€ข   Event   โ€ข   Action

Categories

This plugin can be found under the following categories:
Media   โ€ข   Productivity   โ€ข   Video   โ€ข   AI   โ€ข   Input Forms

Resources

Support contact
Documentation
Tutorial

Rating and reviews

No reviews yet

This plugin has not received any reviews.
Bubble