Tweet Language
Performs Tone Analysis and translates tone and tweet to a different language and speaks that language
Last updated
Performs Tone Analysis and translates tone and tweet to a different language and speaks that language
Last updated
This flow takes translates the tone output into any language and then speaks the tone and the tweet in that language.
Copy the flow from Tweet Tone and paste nodes into this new project
Insert Language Translator Node from IBM Watson palette and connect to output of Score Tweet Node.
Get Access to Language Translator
Log into IBM Cloud and Go to IBM Cloud Catalog
Search for Language Translator Service within Catalog
Create Lite Service
Go to created Service and get service credentials for Langrage Translator
Set up node properties with username , password and API key from service credentials
Insert Text to speech service node and connect with Language Translator Node . Use Service credentials from Tweet Speech project.
Connect change node to change msg.payload to msg.speach
Connect play audio node to change node
Once this flow is deployed you should be able to hear whether a tweet expresses Joy, Fear , Sadness , Anger or Disgust !
[
{
"id":"f2ce3087.ee968",
"type":"tab",
"label":"Tweet Language ",
"disabled":false,
"info":""
},
{
"id":"3b13170a.8b5ba8",
"type":"inject",
"z":"f2ce3087.ee968",
"name":"Happy test",
"topic":"",
"payload":"{\"text\":\"every one is awesome\"}",
"payloadType":"json",
"repeat":"",
"crontab":"",
"once":false,
"onceDelay":"",
"x":160,
"y":140,
"wires":[
[
"1ccd705b.07ca2"
]
]
},
{
"id":"1ccd705b.07ca2",
"type":"change",
"z":"f2ce3087.ee968",
"name":"",
"rules":[
{
"t":"set",
"p":"tweet",
"pt":"msg",
"to":"payload",
"tot":"msg"
}
],
"action":"",
"property":"",
"from":"",
"to":"",
"reg":false,
"x":380,
"y":180,
"wires":[
[
"19037133.924c87"
]
]
},
{
"id":"62a9afb1.aa101",
"type":"inject",
"z":"f2ce3087.ee968",
"name":"Sadness test",
"topic":"",
"payload":"{\"text\":\"This is miserable and sad\"}",
"payloadType":"json",
"repeat":"",
"crontab":"",
"once":false,
"onceDelay":"",
"x":170,
"y":200,
"wires":[
[
"1ccd705b.07ca2"
]
]
},
{
"id":"60cfb004.afcc18",
"type":"inject",
"z":"f2ce3087.ee968",
"name":"Angry test",
"topic":"",
"payload":"{\"text\":\"I hate this demo\"}",
"payloadType":"json",
"repeat":"",
"crontab":"",
"once":false,
"x":180,
"y":260,
"wires":[
[
"1ccd705b.07ca2"
]
]
},
{
"id":"e87cc8f9.0d3b1",
"type":"watson-text-to-speech",
"z":"f2ce3087.ee968",
"name":"text to speech",
"lang":"en-US",
"langhidden":"en-US",
"langcustom":"NoCustomisationSetting",
"langcustomhidden":"",
"voice":"en-US_AllisonVoice",
"voicehidden":"es-ES_EnriqueVoice",
"format":"audio/wav",
"password":"Go3dEL-Escher-B@ch-climB-0ak5!",
"apikey":"YptiEGxP7PZK71dQVZq96jBmZZ7Y9KxJcDwYO9Kt5WWp",
"payload-response":false,
"default-endpoint":true,
"service-endpoint":"https://stream.watsonplatform.net/text-to-speech/api",
"x":840,
"y":380,
"wires":[
[
"2b50d466.c015dc"
]
]
},
{
"id":"19037133.924c87",
"type":"function",
"z":"f2ce3087.ee968",
"name":"Remove URLS and replace #",
"func":"var tweet = msg.tweet.text;\nvar newtweet = tweet.replace(/#/g, \" Hash tag \");\n\n// regex from https://stackoverflow.com/questions/1500260/detect-urls-in-text-with-javascript\nmsg.payload = newtweet.replace( /(([a-z]+:\\/\\/)?(([a-z0-9\\-]+\\.)+([a-z]{2}|biz|com|co|edu|gov|info|net|org|ly))(:[0-9]{1,5})?(\\/[a-z0-9_\\-\\.~]+)*(\\/([a-z0-9_\\-\\.]*)(\\?[a-z0-9+_\\-\\.%=&]*)?)?(#[a-zA-Z0-9!$&'()*+.=-_~:@/?]*)?)(\\s+|$)/gi, \"see short URL \" );\nreturn msg;",
"outputs":1,
"noerr":0,
"x":640,
"y":160,
"wires":[
[
"7e5ec0f9.bbb5a8",
"37cf1c8a.bf4d54"
]
]
},
{
"id":"7e5ec0f9.bbb5a8",
"type":"debug",
"z":"f2ce3087.ee968",
"name":"",
"active":true,
"tosidebar":true,
"console":false,
"tostatus":false,
"complete":"false",
"x":870,
"y":140,
"wires":[
]
},
{
"id":"dffc23d5.a9663",
"type":"debug",
"z":"f2ce3087.ee968",
"name":"Tone categories",
"active":true,
"console":"false",
"complete":"payload",
"x":880,
"y":320,
"wires":[
]
},
{
"id":"9a0f3aa8.923ad",
"type":"function",
"z":"f2ce3087.ee968",
"name":"High Score",
"func":"var emotions = [];\nemotions = msg.response.document_tone.tone_categories\n .filter(function(c){\n if (c.category_id == \"emotion_tone\")\n {return c; }\n })[0].tones;\n \nvar myscore = 0;\nfor (var i=0; i<emotions.length; i++) {\n if(emotions[i].score > myscore) {\n msg.payload = emotions[i].score;\n msg.topic = emotions[i].tone_name;\n myscore = emotions[i].score;\n }\n}\n\nreturn msg;",
"outputs":1,
"noerr":0,
"x":170,
"y":360,
"wires":[
[
"16df6bd0.9e3004",
"1f4d73c0.0f3c14"
]
]
},
{
"id":"16df6bd0.9e3004",
"type":"debug",
"z":"f2ce3087.ee968",
"name":"Score",
"active":true,
"console":"false",
"complete":"topic",
"x":370,
"y":360,
"wires":[
]
},
{
"id":"677da65d.953ad8",
"type":"debug",
"z":"f2ce3087.ee968",
"name":"Print msg.response",
"active":true,
"console":"false",
"complete":"response",
"x":630,
"y":260,
"wires":[
]
},
{
"id":"37cf1c8a.bf4d54",
"type":"watson-tone-analyzer-v3",
"z":"f2ce3087.ee968",
"name":"Analyze Tone",
"tones":"emotion",
"sentences":"true",
"contentType":"false",
"tone-method":"generalTone",
"interface-version":"2016-05-19",
"default-endpoint":true,
"service-endpoint":"",
"x":390,
"y":280,
"wires":[
[
"9a0f3aa8.923ad",
"677da65d.953ad8",
"1d5a2d93.b33b62"
]
]
},
{
"id":"1d5a2d93.b33b62",
"type":"change",
"z":"f2ce3087.ee968",
"name":"tone_categories",
"rules":[
{
"t":"set",
"p":"payload",
"pt":"msg",
"to":"response.document_tone.tone_categories",
"tot":"msg"
}
],
"action":"",
"property":"",
"from":"",
"to":"",
"reg":false,
"x":660,
"y":320,
"wires":[
[
"dffc23d5.a9663"
]
]
},
{
"id":"1f4d73c0.0f3c14",
"type":"switch",
"z":"f2ce3087.ee968",
"name":"Select Emotion",
"property":"topic",
"propertyType":"msg",
"rules":[
{
"t":"eq",
"v":"Joy",
"vt":"str"
},
{
"t":"eq",
"v":"Fear",
"vt":"str"
},
{
"t":"eq",
"v":"Sadness",
"vt":"str"
},
{
"t":"eq",
"v":"Anger",
"vt":"str"
},
{
"t":"eq",
"v":"Disgust",
"vt":"str"
}
],
"checkall":"true",
"repair":false,
"outputs":5,
"x":180,
"y":460,
"wires":[
[
"8b9bb215.7ed26"
],
[
"3513595e.e6cf3e"
],
[
"b9003d45.14ee"
],
[
"6066fca0.647f8c"
],
[
"554595a.813296c"
]
]
},
{
"id":"3513595e.e6cf3e",
"type":"change",
"z":"f2ce3087.ee968",
"name":"Fear",
"rules":[
{
"t":"set",
"p":"payload",
"pt":"msg",
"to":"0,255,0",
"tot":"str"
}
],
"action":"",
"property":"",
"from":"",
"to":"",
"reg":false,
"x":350,
"y":460,
"wires":[
[
"6328f1ea.22058"
]
]
},
{
"id":"6066fca0.647f8c",
"type":"change",
"z":"f2ce3087.ee968",
"name":"Anger",
"rules":[
{
"t":"set",
"p":"payload",
"pt":"msg",
"to":"255,0,0",
"tot":"str"
}
],
"action":"",
"property":"",
"from":"",
"to":"",
"reg":false,
"x":390,
"y":540,
"wires":[
[
"6328f1ea.22058"
]
]
},
{
"id":"b9003d45.14ee",
"type":"change",
"z":"f2ce3087.ee968",
"name":"Sadness",
"rules":[
{
"t":"set",
"p":"payload",
"pt":"msg",
"to":"0,0,255",
"tot":"str"
}
],
"action":"",
"property":"",
"from":"",
"to":"",
"reg":false,
"x":400,
"y":500,
"wires":[
[
"6328f1ea.22058"
]
]
},
{
"id":"8b9bb215.7ed26",
"type":"change",
"z":"f2ce3087.ee968",
"name":"Joy",
"rules":[
{
"t":"set",
"p":"payload",
"pt":"msg",
"to":"255,255,0",
"tot":"str"
}
],
"action":"",
"property":"",
"from":"",
"to":"",
"reg":false,
"x":350,
"y":420,
"wires":[
[
"6328f1ea.22058"
]
]
},
{
"id":"554595a.813296c",
"type":"change",
"z":"f2ce3087.ee968",
"name":"Disgust",
"rules":[
{
"t":"set",
"p":"payload",
"pt":"msg",
"to":"221,160,221",
"tot":"str"
}
],
"action":"",
"property":"",
"from":"",
"to":"",
"reg":false,
"x":360,
"y":580,
"wires":[
[
"6328f1ea.22058"
]
]
},
{
"id":"6328f1ea.22058",
"type":"template",
"z":"f2ce3087.ee968",
"name":"Score tweet",
"field":"payload",
"fieldType":"msg",
"format":"handlebars",
"syntax":"mustache",
"template":"This tweet expresses {{topic}} - {{tweet.text}}",
"output":"str",
"x":530,
"y":440,
"wires":[
[
"ea37a6d8.dd75d",
"a60e5015.580b68"
]
]
},
{
"id":"ea37a6d8.dd75d",
"type":"debug",
"z":"f2ce3087.ee968",
"name":"",
"active":true,
"console":"false",
"complete":"false",
"x":590,
"y":500,
"wires":[
]
},
{
"id":"a60e5015.580b68",
"type":"watson-translator",
"z":"f2ce3087.ee968",
"name":"",
"action":"translate",
"basemodel":"en-tr",
"domain":"general",
"srclang":"en",
"destlang":"es",
"password":"pmistry@us.ibm.com",
"apikey":"PF2WfTPM5NuU0ab5DcMJa7t6wqRP3UXu2hlhoFOnFryv",
"custom":"",
"domainhidden":"general",
"srclanghidden":"en",
"destlanghidden":"es",
"basemodelhidden":"en-tr",
"customhidden":"",
"filetype":"forcedglossary",
"trainid":"",
"lgparams2":true,
"neural":false,
"default-endpoint":false,
"service-endpoint":"",
"x":630,
"y":380,
"wires":[
[
"e439f7a5.967798",
"e87cc8f9.0d3b1"
]
]
},
{
"id":"e439f7a5.967798",
"type":"debug",
"z":"f2ce3087.ee968",
"name":"",
"active":true,
"tosidebar":true,
"console":false,
"tostatus":false,
"complete":"payload",
"targetType":"msg",
"x":750,
"y":460,
"wires":[
]
},
{
"id":"2b50d466.c015dc",
"type":"change",
"z":"f2ce3087.ee968",
"name":"",
"rules":[
{
"t":"set",
"p":"payload",
"pt":"msg",
"to":"speech",
"tot":"msg"
}
],
"action":"",
"property":"",
"from":"",
"to":"",
"reg":false,
"x":1020,
"y":380,
"wires":[
[
"66c156b2.7d6878"
]
]
},
{
"id":"66c156b2.7d6878",
"type":"play audio",
"z":"f2ce3087.ee968",
"name":"",
"voice":"",
"x":1190,
"y":380,
"wires":[
]
},
{
"id":"ca3a3fc7.8605d8",
"type":"twitter in",
"z":"f2ce3087.ee968",
"twitter":"",
"tags":"",
"user":"false",
"name":"Listen to twitter feed",
"inputs":1,
"x":190,
"y":60,
"wires":[
[
"edec68ad.93c13",
"3cef19cd.214e16",
"19037133.924c87"
]
]
},
{
"id":"edec68ad.93c13",
"type":"debug",
"z":"f2ce3087.ee968",
"name":"msg.tweet details",
"active":true,
"console":"false",
"complete":"tweet",
"x":570,
"y":20,
"wires":[
]
},
{
"id":"3cef19cd.214e16",
"type":"debug",
"z":"f2ce3087.ee968",
"name":"",
"active":true,
"console":"false",
"complete":"tweet.text",
"x":560,
"y":60,
"wires":[
]
},
{
"id":"77693eef.07ad08",
"type":"comment",
"z":"f2ce3087.ee968",
"name":"Pick a #hashtag to follow",
"info":"",
"x":200,
"y":20,
"wires":[
]
}
]