From c4506376fd6a16f230d3e5adcd16cb751927e5ee Mon Sep 17 00:00:00 2001 From: Rick Wilson Date: Thu, 28 Mar 2024 08:31:58 -0400 Subject: [PATCH] Voice Monkey (Independent Publisher) (#3201) * init * README updates --- .../Voice Monkey/README.MD | 70 +++ .../Voice Monkey/apiDefinition.swagger.json | 430 ++++++++++++++++++ .../Voice Monkey/apiProperties.json | 23 + 3 files changed, 523 insertions(+) create mode 100644 independent-publisher-connectors/Voice Monkey/README.MD create mode 100644 independent-publisher-connectors/Voice Monkey/apiDefinition.swagger.json create mode 100644 independent-publisher-connectors/Voice Monkey/apiProperties.json diff --git a/independent-publisher-connectors/Voice Monkey/README.MD b/independent-publisher-connectors/Voice Monkey/README.MD new file mode 100644 index 000000000..caba6587b --- /dev/null +++ b/independent-publisher-connectors/Voice Monkey/README.MD @@ -0,0 +1,70 @@ +# Voice Monkey + +Voice Monkey enhances Amazon Alexa's functionality by enabling external triggering of Alexa Routines and offering features like custom Text To Speech announcements and media playback. It integrates with platforms such as IFTTT, Zapier, and Home Assistant, facilitating Alexa's connection with a variety of applications and smart devices. These integrations collectively enrich the smart home experience, making Alexa a more versatile and dynamic tool for home automation. + +## Publisher: Richard Wilson + +## Prerequisites + +To use Voice Monkey, you'll need to create a Voice Monkey account. Sign up on the [Voice Monkey website](https://voicemonkey.io/), where you can choose between the free and paid plans. The free plan covers essential features, while the paid plan offers advanced functionalities for more extensive use cases. + +## Supported Operations + +The Voice Monkey integration supports a variety of operations to enhance your interaction with Alexa devices: + +### 1. Trigger a Voice Monkey Routine + +This operation allows you to remotely trigger a pre-defined Alexa routine via Voice Monkey. + +- **Input Properties:** + - **Device ID:** The unique identifier of the Alexa device where the routine will be triggered. + - **Routine Details:** Specify the particular routine to be triggered. + +### 2. Make an Announcement + +Enables you to send custom TTS announcements to your Alexa devices. + +- **Input Properties:** + - **Device ID:** The unique identifier of the Alexa device for the announcement. + - **Announcement Text:** The text to be converted to speech. + - **Voice:** (Optional) The voice to be used for the announcement. + - **Language:** (Optional) Language code to enhance the announcement's clarity. + - **Chime:** (Optional) Sound to play at the start of the announcement. + - **Audio:** (Optional) URL of an audio file to play. + - **Background Audio:** (Optional) Background audio file URL to play alongside the text to speech. + - **Website:** (Optional) URL of a website to open on screen-enabled Echo devices. + - **No Background:** (Optional) Set to true to not show Voice Monkey logo or image on screen-enabled devices. + - **Image:** (Optional) URL of an image file to display. + - **Media Width:** (Optional) Width of the image file. + - **Media Height:** (Optional) Height of the image file. + - **Media Scaling:** (Optional) Scaling option for the image. + - **Media Alignment:** (Optional) Alignment of the image within the container. + - **Media Radius:** (Optional) Clipping radius for image corners. + - **Video:** (Optional) URL of a video file to display. + - **Video Repeat:** (Optional) Number of times the video should loop. + - **Character Display:** (Optional) Text to display on devices like the Echo Dot With Clock. + +### 3. Trigger a Flow + +Start a specific Voice Monkey Flow based on your defined criteria. + +- **Input Properties:** + - **Device ID:** The unique identifier of the Alexa device. + - **Flow ID:** The numeric ID of the Flow you wish to initiate. + +## Obtaining Credentials + +1. **Sign Up for Voice Monkey:** + - Visit [Voice Monkey's Website](https://voicemonkey.io) and sign up for an account. + +2. **Access Your Dashboard:** + - Once registered, navigate to the Dashboard page on Voice Monkey. + +3. **Get Your Tokens:** + - Find your Access token and Secret token within the Dashboard. These tokens are essential for using the Voice Monkey connector. + +Please ensure that you keep your tokens secure and do not share them publicly. + +## Known Issues and Limitations + +Currently, there are no known issues or limitations with the Voice Monkey integration. Always refer to this section for the most up-to-date information regarding the connector's performance and compatibility. \ No newline at end of file diff --git a/independent-publisher-connectors/Voice Monkey/apiDefinition.swagger.json b/independent-publisher-connectors/Voice Monkey/apiDefinition.swagger.json new file mode 100644 index 000000000..d81e20801 --- /dev/null +++ b/independent-publisher-connectors/Voice Monkey/apiDefinition.swagger.json @@ -0,0 +1,430 @@ +{ + "swagger": "2.0", + "info": { + "title": "Voice Monkey", + "description": "Voice Monkey allows you to trigger Alexa routines externally and send custom Text To Speech (TTS) commands to your devices for announcements.", + "version": "1.0", + "contact": { + "name": "Richard Wilson", + "email": "richard.a.wilson@microsoft.com", + "url": "https://www.richardawilson.com/" + } + }, + "host": "api-v2.voicemonkey.io", + "basePath": "/", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": { + "/announcement": { + "post": { + "summary": "Make an Announcement", + "description": "Allows you to make TTS announcements on your Alexa devices and send content such as images, audio, and video.", + "operationId": "makeAnnouncement", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "device": { + "type": "string", + "description": "Device ID string you're targeting.", + "title": "Device ID", + "x-ms-summary": "Device ID", + "x-ms-visibility": "important" + }, + "text": { + "type": "string", + "description": "Text for TTS announcement.", + "title": "Announcement Text", + "x-ms-summary": "Text", + "x-ms-visibility": "important" + }, + "voice": { + "type": "string", + "description": "The Voice used when making an announcement.", + "title": "Voice", + "x-ms-summary": "Voice", + "enum": [ + "Nicole", + "Russell", + "Amy", + "Emma", + "Brian", + "Raveena", + "Aditi", + "Ivy", + "Joanna", + "Kendra", + "Kimberly", + "Salli", + "Joey", + "Justin", + "Matthew", + "Geraint", + "Celine", + "Lea", + "Mathieu", + "Chantal", + "Marlene", + "Vicki", + "Hans", + "Bianca", + "Carla", + "Giorgio", + "Takumi", + "Mizuki", + "Camila", + "Vitoria", + "Ricardo", + "Conchita", + "Lucia", + "Enrique", + "Mia", + "Penelope", + "Lupe", + "Miguel" + ], + "x-ms-visibility": "important" + }, + "language": { + "type": "string", + "description": "A Language code for the announcement.", + "title": "Language Code", + "x-ms-summary": "Language", + "enum": [ + "de-DE", + "en-AU", + "en-CA", + "en-GB", + "en-IN", + "en-US", + "es-ES", + "es-MX", + "es-US", + "fr-CA", + "fr-FR", + "hi-IN", + "it-IT", + "ja-JP", + "pt-BR" + ] + }, + "chime": { + "type": "string", + "description": "Choose the notification/alarm sound at the start of an announcement.", + "title": "Chime", + "x-ms-summary": "Chime", + "enum": [ + "soundbank://soundlibrary/alarms/air_horns/air_horn_01", + "soundbank://soundlibrary/alarms/beeps_and_bloops/boing_01", + "soundbank://soundlibrary/alarms/beeps_and_bloops/bell_01", + "soundbank://soundlibrary/alarms/beeps_and_bloops/bell_02", + "soundbank://soundlibrary/alarms/chimes_and_bells/chimes_bells_05", + "soundbank://soundlibrary/alarms/buzzers/buzzers_01", + "soundbank://soundlibrary/alarms/buzzers/buzzers_04", + "soundbank://soundlibrary/alarms/chimes_and_bells/chimes_bells_04", + "soundbank://soundlibrary/alarms/beeps_and_bloops/bell_03", + "soundbank://soundlibrary/alarms/beeps_and_bloops/bell_04", + "soundbank://soundlibrary/home/amzn_sfx_doorbell_01", + "soundbank://soundlibrary/home/amzn_sfx_doorbell_chime_02", + "soundbank://soundlibrary/musical/amzn_sfx_electronic_beep_01", + "soundbank://soundlibrary/musical/amzn_sfx_electronic_beep_02", + "soundbank://soundlibrary/scifi/amzn_sfx_scifi_timer_beep_01", + "soundbank://soundlibrary/alarms/beeps_and_bloops/intro_02", + "soundbank://soundlibrary/scifi/amzn_sfx_scifi_alarm_01", + "soundbank://soundlibrary/alarms/beeps_and_bloops/buzz_03", + "soundbank://soundlibrary/musical/amzn_sfx_test_tone_01", + "soundbank://soundlibrary/alarms/beeps_and_bloops/tone_02", + "soundbank://soundlibrary/alarms/beeps_and_bloops/tone_05", + "soundbank://soundlibrary/alarms/beeps_and_bloops/woosh_02" + ] + }, + "audio": { + "type": "string", + "description": "URL of an audio file to play. Must be an HTTPS URL.", + "title": "Audio URL", + "x-ms-summary": "Audio" + }, + "background_audio": { + "type": "string", + "description": "Background audio file URL when using text to speech. Must be an HTTPS URL.", + "title": "Background Audio URL", + "x-ms-summary": "Background Audio" + }, + "website": { + "type": "string", + "description": "URL of a website to open on Echo devices with a screen. Must be an HTTPS URL.", + "title": "Website URL", + "x-ms-summary": "Website" + }, + "no_bg": { + "type": "boolean", + "description": "Set to true to not show Voice Monkey logo or image on screen enabled device.", + "title": "No Background", + "x-ms-summary": "No Background" + }, + "image": { + "type": "string", + "description": "URL of an image file to display on screen enabled devices. Must be an HTTPS URL.", + "title": "Image URL", + "x-ms-summary": "Image" + }, + "media_width": { + "type": "integer", + "description": "Width of the image file.", + "title": "Media Width", + "x-ms-summary": "Media Width" + }, + "media_height": { + "type": "integer", + "description": "Height of the image file.", + "title": "Media Height", + "x-ms-summary": "Media Height" + }, + "media_scaling": { + "type": "string", + "description": "Scaling option for the image.", + "title": "Media Scaling", + "x-ms-summary": "Media Scaling", + "enum": [ + "none", + "fill", + "best-fill", + "best-fit", + "best-fit-down" + ] + }, + "media_align": { + "type": "string", + "description": "Alignment of the image within the container.", + "title": "Media Alignment", + "x-ms-summary": "Media Alignment", + "enum": [ + "bottom", + "bottom-left", + "bottom-right", + "center", + "left", + "right", + "top", + "top-left", + "top-right" + ] + }, + "media_radius": { + "type": "integer", + "description": "Clipping radius for the image corners.", + "title": "Media Radius", + "x-ms-summary": "Media Radius" + }, + "video": { + "type": "string", + "description": "URL of a video file to display on screen enabled devices. Must be an HTTPS URL.", + "title": "Video URL", + "x-ms-summary": "Video" + }, + "video_repeat": { + "type": "integer", + "description": "Number of times the video should loop.", + "title": "Video Repeat Count", + "x-ms-summary": "Video Repeat" + }, + "character_display": { + "type": "string", + "description": "Text to display on devices like the Echo Dot With Clock.", + "title": "Echo Dot With Clock Display", + "x-ms-summary": "Echo Dot With Clock Display" + } + }, + "required": [ + "device" + ] + } + } + ], + "responses": { + "200": { + "description": "Announcement triggered successfully", + "schema": { + "type": "object", + "properties": { + "success": { + "type": "boolean", + "description": "Indicates if the announcement was triggered successfully.", + "title": "Success", + "x-ms-summary": "Success" + }, + "message": { + "type": "string", + "description": "Detailed message regarding the announcement.", + "title": "Message", + "x-ms-summary": "Message" + } + } + } + } + } + } + }, + "/trigger": { + "post": { + "summary": "Trigger a Routine", + "description": "Triggers one of your Voice Monkey Trigger Devices which in turn will start one of your Alexa Routines.", + "operationId": "triggerRoutine", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "device": { + "type": "string", + "description": "The Device ID string that you're targeting. Found in the Devices section within Settings or in the API Playground.", + "title": "Device ID", + "x-ms-summary": "Device ID", + "x-ms-visibility": "important" + } + }, + "required": [ + "device" + ] + } + } + ], + "responses": { + "200": { + "description": "Routine triggered successfully", + "schema": { + "type": "object", + "properties": { + "success": { + "type": "boolean", + "description": "Indicates if the routine was triggered successfully.", + "title": "Success", + "x-ms-summary": "Success" + }, + "message": { + "type": "string", + "description": "Detailed message regarding the routine trigger.", + "title": "Message", + "x-ms-summary": "Message" + } + } + } + } + } + } + }, + "/flows": { + "post": { + "summary": "Trigger a Flow", + "description": "Starts the Voice Monkey Flow that you define in the request.", + "operationId": "triggerFlow", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "flow": { + "type": "integer", + "description": "The numeric ID of the Flow you wish to start. Found in the Flows section within the console.", + "title": "Flow ID", + "x-ms-summary": "Flow ID", + "x-ms-visibility": "important" + } + }, + "required": [ + "flow" + ] + } + } + ], + "responses": { + "200": { + "description": "Flow triggered successfully", + "schema": { + "type": "object", + "properties": { + "success": { + "type": "boolean", + "description": "Indicates if the flow was triggered successfully.", + "title": "Success", + "x-ms-summary": "Success" + }, + "message": { + "type": "string", + "description": "Detailed message regarding the flow trigger.", + "title": "Message", + "x-ms-summary": "Message" + } + } + } + } + } + } + } + }, + "definitions": {}, + "parameters": {}, + "responses": {}, + "securityDefinitions": { + "API Key": { + "type": "apiKey", + "in": "header", + "name": "Authorization" + } + }, + "security": [ + { + "API Key": [] + } + ], + "tags": [], + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://us.govee.com/" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://us.govee.com/policies/privacy-policy" + }, + { + "propertyName": "Categories", + "propertyValue": "Internet of Things" + } + ] +} \ No newline at end of file diff --git a/independent-publisher-connectors/Voice Monkey/apiProperties.json b/independent-publisher-connectors/Voice Monkey/apiProperties.json new file mode 100644 index 000000000..2a893f190 --- /dev/null +++ b/independent-publisher-connectors/Voice Monkey/apiProperties.json @@ -0,0 +1,23 @@ +{ + "properties": { + "connectionParameters": { + "api_key": { + "type": "securestring", + "uiDefinition": { + "displayName": "Voice Monkey API Key", + "description": "Secret token found in the Voice Monkey console.", + "tooltip": "Provide your API Key", + "constraints": { + "tabIndex": 2, + "clearText": false, + "required": "true" + } + } + } + }, + "iconBrandColor": "#da3b01", + "capabilities": [], + "publisher": "Richard Wilson", + "stackOwner": "Voice Monkey" + } +} \ No newline at end of file