Author Topic: Arabic TTS and Al-Jazeera  (Read 9551 times)

0 Members and 1 Guest are viewing this topic.

rio14

  • Contributor
  • ***
  • Posts: 59
  • Karma: 4
    • View Profile
Arabic TTS and Al-Jazeera
« on: April 16, 2016, 08:50:45 PM »
hi
i need help how to read in arabic
1-
 headlines news from  http://www.aljazeera.net/portal or any arabic news site like Blaze headlines code. using google tts or any arabic tts.
2-
and how to read arabic from text file. thank you
« Last Edit: April 16, 2016, 10:10:27 PM by rio14 »

nime5ter

  • Administrator
  • Hero Member
  • *****
  • Posts: 2012
  • Karma: 61
    • View Profile
    • Getting Started with VoxCommando
Re: Arabic TTS and Al-Jazeera
« Reply #1 on: April 17, 2016, 08:46:31 AM »
Hi,

For #2, the following command works for me with the attached Arabic text file. In this example, I placed the file in my main VC folder.:

Code: [Select]
<?xml version="1.0" encoding="utf-16"?>
<!--VoxCommando 2.2.1.7-->
<command id="151" name="read Arabic text file" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
  <action>
    <cmdType>File.Read</cmdType>
    <params>
      <param>Arabic-Lipsum.txt</param>
    </params>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>OSD.ShowText</cmdType>
    <params>
      <param>{LastResult}</param>
    </params>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <phrase>read file</phrase>
</command>

If the standard File.Read action in VoxCommando has not been working for you, we would need to see an example of the file that is not working.

I used a random text generator to create the attached file. It is in Arabic, but it will not make sense. :)
http://generator.lorem-ipsum.info/_arabic
« Last Edit: April 26, 2016, 08:07:00 AM by nime5ter »
TIPS: POST VC VERSION #. Explain what you want VC to do. Say what you've tried & what happened, or post a video demo. Attach VC log. Link to instructions followed.  Post your command (xml)

rio14

  • Contributor
  • ***
  • Posts: 59
  • Karma: 4
    • View Profile
Re: Arabic TTS and Al-Jazeera
« Reply #2 on: April 17, 2016, 07:29:31 PM »
OK mais comment introduire ou utiliser la commande (read file) avec google tts.
merci
« Last Edit: April 26, 2016, 08:07:21 AM by nime5ter »

nime5ter

  • Administrator
  • Hero Member
  • *****
  • Posts: 2012
  • Karma: 61
    • View Profile
    • Getting Started with VoxCommando
Re: Arabic TTS and Al-Jazeera
« Reply #3 on: April 17, 2016, 09:31:47 PM »
On peut utiliser la solution que James ait déjà donné ici : http://voxcommando.com/forum/index.php?topic=2270.msg20477#msg20477

C'est toujours la même solution dans chaque instance.

Code: [Select]
<?xml version="1.0" encoding="utf-16"?>
<!--VoxCommando 2.2.1.7-->
<groupCollection open="True" name="exemple en arabe">
  <commandGroup open="True" name="Google TTS Streaming" enabled="True" prefix="" priority="0" requiredProcess="" description="">
    <command id="316" name="Call Google.TTS" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="triggered by an event expecting 2 payloads&#xD;&#xA;{1} text to speech&#xD;&#xA;{2} language code">
      <action>
        <cmdType>RoboB.Select</cmdType>
        <params>
          <param>GoogleTranslate</param>
        </params>
        <cmdRepeat>1</cmdRepeat>
      </action>
      <action>
        <cmdType>RoboB.Navigate</cmdType>
        <params>
          <param>https://translate.google.com/#en/{2}/{1}</param>
        </params>
        <cmdRepeat>1</cmdRepeat>
      </action>
      <event>Google.TTS</event>
    </command>
    <command id="342" name="Google.TTS ready" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="triggered by an event expecting 2 payloads&#xD;&#xA;{1} text to speech&#xD;&#xA;{2} language code">
      <action>
        <cmdType>RoboB.Select</cmdType>
        <params>
          <param>GoogleTranslate</param>
        </params>
        <cmdRepeat>1</cmdRepeat>
      </action>
      <action>
        <cmdType>RoboB.ElementByID</cmdType>
        <params>
          <param>gt-res-listen</param>
        </params>
        <cmdRepeat>1</cmdRepeat>
      </action>
      <if ifBlockDisabled="False" ifNot="False">
        <ifType>LastActionSuccess</ifType>
        <ifParams>&amp;&amp;</ifParams>
        <then>
          <action>
            <cmdType>RoboB.Click</cmdType>
            <params />
            <cmdRepeat>1</cmdRepeat>
          </action>
          <action>
            <cmdType>RoboB.Hide</cmdType>
            <params />
            <cmdRepeat>1</cmdRepeat>
          </action>
        </then>
        <else>
          <action>
            <cmdType>RoboB.Show</cmdType>
            <params />
            <cmdRepeat>1</cmdRepeat>
          </action>
        </else>
      </if>
      <event>RoboB.DocComplete.GoogleTranslate</event>
    </command>
  </commandGroup>
  <commandGroup open="True" name="Arabic tests" enabled="True" prefix="" priority="0" requiredProcess="" description="">
    <command id="220" name="read Arabic text file" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
      <action>
        <cmdType>File.Read</cmdType>
        <params>
          <param>Arabic-Lipsum.txt</param>
          <param>2</param>
        </params>
        <cmdRepeat>1</cmdRepeat>
      </action>
      <action>
        <cmdType>OSD.ShowText</cmdType>
        <params>
          <param>{LastResult}</param>
        </params>
        <cmdRepeat>0</cmdRepeat>
      </action>
      <action>
        <cmdType>VC.TriggerEvent</cmdType>
        <params>
          <param>Google.TTS</param>
          <param>{LastResult}</param>
          <param>ar</param>
        </params>
        <cmdRepeat>1</cmdRepeat>
      </action>
      <phrase>read file</phrase>
    </command>
  </commandGroup>
</groupCollection>
« Last Edit: April 26, 2016, 08:07:33 AM by nime5ter »
TIPS: POST VC VERSION #. Explain what you want VC to do. Say what you've tried & what happened, or post a video demo. Attach VC log. Link to instructions followed.  Post your command (xml)

nime5ter

  • Administrator
  • Hero Member
  • *****
  • Posts: 2012
  • Karma: 61
    • View Profile
    • Getting Started with VoxCommando
Re: Arabic TTS and Al-Jazeera
« Reply #4 on: April 17, 2016, 09:37:05 PM »
Il faut toujours passer deux "payloads" dans l'événement "Google.TTS".

Le premier, c'est le texte (ou un variable qui represente le texte), et le deuxième, c'est le code pour la langue désirée.
« Last Edit: April 26, 2016, 08:07:53 AM by nime5ter »
TIPS: POST VC VERSION #. Explain what you want VC to do. Say what you've tried & what happened, or post a video demo. Attach VC log. Link to instructions followed.  Post your command (xml)

rio14

  • Contributor
  • ***
  • Posts: 59
  • Karma: 4
    • View Profile
Re: Arabic TTS and Al-Jazeera
« Reply #5 on: April 18, 2016, 12:24:21 PM »
merci nime
pour la lecture des grands titres des nouvelles comment peut on transferer le texte d'une page web et l'ecrire dans une fichier texte.

google tts fait beacoup d'erreure au niveau de pronentiation, il ya un logiciel appelé Dragon NaturallySpeaking avez vous une idee s'il fonctionne avec VC (recognition et tts).
 encore merci
« Last Edit: April 26, 2016, 08:08:07 AM by nime5ter »

jitterjames

  • Administrator
  • Hero Member
  • *****
  • Posts: 7715
  • Karma: 116
    • View Profile
    • VoxCommando
Re: Arabic TTS and Al-Jazeera
« Reply #6 on: April 18, 2016, 01:28:11 PM »
comment peut on transferer le texte d'une page web et l'ecrire dans une fichier texte.

http://voxcommando.com/mediawiki/index.php?title=Actions#Write
« Last Edit: April 26, 2016, 08:08:18 AM by nime5ter »

nime5ter

  • Administrator
  • Hero Member
  • *****
  • Posts: 2012
  • Karma: 61
    • View Profile
    • Getting Started with VoxCommando
Re: Arabic TTS and Al-Jazeera
« Reply #7 on: April 18, 2016, 01:36:15 PM »
google tts fait beacoup d'erreure au niveau de pronentiation, il ya un logiciel appelé Dragon NaturallySpeaking avez vous une idee s'il fonctionne avec VC (recognition et tts).
 encore merci

Vous devez trouver TTS  (la synthèse vocale) dans le format SAPI 5.

Le plugin TTS de VC a besoin de TTS SAPI 5.

Essayez http://www.acapela-group.com/. Mais demander à l'avance si leurs voix sont du format 32-bit SAPI-5, et si on peut les utiliser avec n'importe quel application dans Windows.

Non, ce n'est pas possible d'utiliser Dragon avec VC pour la reconnaissance vocale. (c-à-d, vous pouvez utiliser les deux programmes à part, mais la reconnaissance vocale de Dragon ne peut pas servir comme remplacement pour le "moteur" de Microsoft dans VC)

Quand même, Nuance Dragon Naturally Speaking n'a pas un version dans la langue arabe (sauf pour les entreprises -- c'est un produit distinct).

http://voxcommando.com/forum/index.php?topic=1449.0
« Last Edit: April 26, 2016, 08:08:38 AM by nime5ter »
TIPS: POST VC VERSION #. Explain what you want VC to do. Say what you've tried & what happened, or post a video demo. Attach VC log. Link to instructions followed.  Post your command (xml)

rio14

  • Contributor
  • ***
  • Posts: 59
  • Karma: 4
    • View Profile
Re: Arabic TTS and Al-Jazeera
« Reply #8 on: April 23, 2016, 02:46:52 AM »
hi
acapela does not have tts for windows, have just for android. no problem.

About headlines news like the code of peglegTV  blaze news i put url of http://www.aljazeera.net/aljazeerarss/3c66e3fb-a5e0-4790-91be-ddb05ec17198/4e9f594a-03af-4696-ab98-880c58cd6718

instead of blaze .com but does not write in the payload file i desactivate tts
1-how to write from that url aljazeera headlines to payload file.
2-or is it possible to write the rss news in the red band on the top of the  site http://www.alarabiya.net/rss/rssLatestNews.xml to payload file. thank you help please
code
Code: [Select]
<?xml version="1.0" encoding="utf-16"?>
<!--VoxCommando 2.2.1.4-->
<commandGroup open="True" name="The Blaze" enabled="True" prefix="" priority="0" requiredProcess="" description="">
  <command id="1082" name="the blaze" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
    <action>
      <cmdType>TTS.SpeakSync</cmdType>
      <params>
        <param>one moment please as I check to see what is new at aljazeera dot net</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>Scrape</cmdType>
      <params>
        <param>http://www.aljazeera.net/aljazeerarss/3c66e3fb-a5e0-4790-91be-ddb05ec17198/4e9f594a-03af-4696-ab98-880c58cd6718</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>Results.RegExReplace</cmdType>
      <params>
        <param>&amp;#\d+;</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>Results.RegEx</cmdType>
      <params>
        <param>&lt;title&gt;(.*?)&lt;/title&gt;&lt;link&gt;(.*?)&lt;/link&gt;</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>PayloadXML.Clear</cmdType>
      <params>
        <param>payloads\TheBlaze.xml</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>PayloadXML.AddPair</cmdType>
      <params>
        <param>payloads\TheBlaze.xml</param>
        <param>{Match.{i}.2}</param>
        <param>{i}</param>
      </params>
      <cmdRepeat>{#M}</cmdRepeat>
    </action>
    <action>
      <cmdType>OSD.ShowText</cmdType>
      <params>
        <param>latest headlines from aljazeera.net</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>OSD.AddText</cmdType>
      <params>
        <param>{i}. {Match.{i}.1}.</param>
      </params>
      <cmdRepeat>3</cmdRepeat>
    </action>
    <action>
      <cmdType>TTS.SpeakSync</cmdType>
      <params>
        <param>Latest headlines from aljazeera dot net</param>
      </params>
      <cmdRepeat>0</cmdRepeat>
    </action>
    <action>
      <cmdType>TTS.SpeakSync</cmdType>
      <params>
        <param>{i}. {Match.{i}.1}.</param>
      </params>
      <cmdRepeat>0</cmdRepeat>
    </action>
    <action>
      <cmdType>Results.SetVar</cmdType>
      <params>
        <param>headline {i}</param>
        <param>{Match.{i}.1}</param>
      </params>
      <cmdRepeat>3</cmdRepeat>
    </action>
    <action>
      <cmdType>Group.Rebuild</cmdType>
      <params>
        <param>aljazeera</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <phrase>tell me the news</phrase>
  </command>
  <command id="1255" name="More from The Blaze" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
    <action>
      <cmdType>Scrape</cmdType>
      <params>
        <param>{1}</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>Results.RegEx</cmdType>
      <params>
        <param>src="https://www.youtube.com/embed/(.*?)"</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <if ifBlockDisabled="False" ifNot="False">
      <ifType>LastActionSuccess</ifType>
      <ifParams>&amp;&amp;</ifParams>
      <then>
        <action>
          <cmdType>TTS.Speak</cmdType>
          <params>
            <param>Loading You Tube video from the blaze, please wait</param>
          </params>
          <cmdRepeat>1</cmdRepeat>
        </action>
        <action>
          <cmdType>XJson.Raw</cmdType>
          <params>
            <param>player.open</param>
            <param>"item": {"file":"plugin://plugin.video.youtube/play/?video_id={Match.1.1}"}</param>
          </params>
          <cmdRepeat>1</cmdRepeat>
        </action>
      </then>
      <else>
        <action>
          <cmdType>Results.RegExReplace</cmdType>
          <params>
            <param>&amp;.(\d+);</param>
          </params>
          <cmdRepeat>1</cmdRepeat>
        </action>
        <action>
          <cmdType>Results.RegExReplace</cmdType>
          <params>
            <param>;..(\d+)</param>
          </params>
          <cmdRepeat>1</cmdRepeat>
        </action>
        <action>
          <cmdType>Results.RegEx</cmdType>
          <params>
            <param>&lt;p&gt;(\w)(.*?)&lt;/</param>
          </params>
          <cmdRepeat>1</cmdRepeat>
        </action>
        <action>
          <cmdType>Results.MatchConcat</cmdType>
          <params>
            <param><![CDATA[ ]]></param>
          </params>
          <cmdRepeat>1</cmdRepeat>
        </action>
        <action>
          <cmdType>Results.RegExReplace</cmdType>
          <params>
            <param>&lt;.*?&gt;</param>
          </params>
          <cmdRepeat>1</cmdRepeat>
        </action>
        <action>
          <cmdType>TTS.SpeakSync</cmdType>
          <params>
            <param>{LastResult}</param>
          </params>
          <cmdRepeat>1</cmdRepeat>
        </action>
      </else>
    </if>
    <action>
      <cmdType>SMTP.Send</cmdType>
      <params>
        <param>youremailhere</param>
        <param>The Blaze News Stories</param>
        <param>The Blaze.com - &lt;a href="{1}"&gt;{Var.headline {PF.1}}&lt;/a&gt; </param>
        <param />
        <param>True</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <phrase>Tell me more about</phrase>
    <phrase>headline, article</phrase>
    <phrase>number</phrase>
    <payloadFromXML phraseOnly="False" use2partPhrase="False" phraseConnector="by" Phrase2wildcard="anyone" optional="False">payloads\TheBlaze.xml</payloadFromXML>
  </command>
</commandGroup>


« Last Edit: April 26, 2016, 08:08:51 AM by nime5ter »

nime5ter

  • Administrator
  • Hero Member
  • *****
  • Posts: 2012
  • Karma: 61
    • View Profile
    • Getting Started with VoxCommando
Re: Arabic TTS and Al-Jazeera
« Reply #9 on: April 23, 2016, 08:04:28 AM »
Hi,

That's right. You cannot just change the URL in PegLeg TV's post to al-jazeera. The Scrape action will store all of the html text on a web page, which can then be accessed as {LastResult}.

But then you need to use the correct regular expression (regex) for that particular website in order to capture the particular information you are looking for on that web page. This involves analysing tags and patterns on the page, to tell VC what text to capture.

If you'd like to learn how to use regular expressions, we have a few tutorial videos. And there are also many web sites and other videos on the Internet that teach how to use regular expressions.

http://voxcommando.com/mediawiki/index.php?title=Video_Tutorials#Core_Concepts

Yes, the best link for you to use to capture headlines and their associated links is the RSS page, which uses XML. That seems to be the page you're using, so that is good.

Then you can capture the item-level text that is between <link> </link> tags and also between <title> </title>.

You might want to start with a simpler problem, and then work your way up to your Al Jazeera goal.

P.S. That's too bad about acapella. They used to sell SAPI5 Windows voices. We had a user here who used their Arabic TTS, but that was 5 years ago.
« Last Edit: April 26, 2016, 08:09:09 AM by nime5ter »
TIPS: POST VC VERSION #. Explain what you want VC to do. Say what you've tried & what happened, or post a video demo. Attach VC log. Link to instructions followed.  Post your command (xml)

Haddood

  • $upporter
  • Hero Member
  • *****
  • Posts: 688
  • Karma: 22
    • View Profile
Re: Re: Learning Arabic with Voxcommando
« Reply #10 on: April 23, 2016, 05:50:06 PM »
acapela does not have tts for windows, have just for android. no problem.

they do for developers not end users ... try to see if you can automate one of these 2 software, maybe you can make them speak what is in the clipboard, by simulating hotkeys or mouse clicks..
http://nextup.com/download.html
http://www.naturalreaders.com/priceorder.html

When Voice command gets tough, use hand gestures

nime5ter

  • Administrator
  • Hero Member
  • *****
  • Posts: 2012
  • Karma: 61
    • View Profile
    • Getting Started with VoxCommando
Re: Re: Learning Arabic with Voxcommando
« Reply #11 on: April 23, 2016, 06:48:38 PM »
This site seems to sell Voxygen's SAPI5 for Windows voices.

https://best-of-vox.com/windows

They're a bit pricy, and I don't know if the Arabic synthesis is any good. You can test 'Adel' -- the Arabic TTS voice that they are selling here: https://www.voxygen.fr/

That said, all TTS voices have problems and mispronounce some words -- there is no perfect voice. Generally, I do not have my computer read long texts to me. It's usually not very easy to process what the computer is saying if it is reading a full paragraph or more.
TIPS: POST VC VERSION #. Explain what you want VC to do. Say what you've tried & what happened, or post a video demo. Attach VC log. Link to instructions followed.  Post your command (xml)

rio14

  • Contributor
  • ***
  • Posts: 59
  • Karma: 4
    • View Profile
Re: Arabic TTS and Al-Jazeera
« Reply #12 on: April 24, 2016, 02:20:48 AM »
hi
i found this vocalizer voice arabic male maged but it's trial 30 days after installation it appears in option VC ftp://voicepacks:ReaditAir2015%23@ftp.visionaid.com/VisionAid%20Arabic%20Vocalizer%20Voice%20Pack%202.6.2.msi
and here there are many voices and languages http://visionaid.com/phpincludes/en/support/voices/voices.php

OK according arabic headlines news i did something from aljazeera site
 displaying the headlines is OK but google tts read just one line, if some one can fix the code to read all lines thank you
Code: [Select]
<?xml version="1.0" encoding="utf-16"?>
<!--VoxCommando 2.2.1.4-->
<commandGroup open="False" name="Aljazeera news" enabled="True" prefix="" priority="0" requiredProcess="" description="">
  <command id="1240" name="Aljazeera" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
    <action>
      <cmdType>Scrape</cmdType>
      <params>
        <param>http://www.aljazeera.net/aljazeerarss/9ff80bf7-97cf-47f2-8578-5a9df7842311/99e42274-a82e-4930-bbd5-ba2b24a88a22</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>Results.RegExSingle</cmdType>
      <params>
        <param>item.*?&lt;title&gt;&lt;.*?DATA.(.*?)\]</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>OSD.ShowText</cmdType>
      <params>
        <param>أحدث الأخبار بموقع الجزيرة</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>OSD.AddText</cmdType>
      <params>
        <param>{i}. {Match.{i}.1}</param>
      </params>
      <cmdRepeat>5</cmdRepeat>
    </action>
    <action>
      <cmdType>VC.Pause</cmdType>
      <params>
        <param>2000</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>Results.SetLastResult</cmdType>
      <params>
        <param>{i}. {Match.{i}.1}</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>Results.SetVar</cmdType>
      <params>
        <param>headline {i}</param>
        <param>{Match.{i}.1}</param>
      </params>
      <cmdRepeat>5</cmdRepeat>
    </action>
    <action>
      <cmdType>VC.TriggerEvent</cmdType>
      <params>
        <param>google.tts</param>
        <param>{LastResult}</param>
        <param>ar</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <event>News</event>
    <phrase>tell me the news</phrase>
  </command>
  <command id="422" name="Call Google.TTS" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="triggered by an event expecting 2 payloads&#xD;&#xA;{1} text to speech&#xD;&#xA;{2} language code">
    <action>
      <cmdType>RoboB.Select</cmdType>
      <params>
        <param>GoogleTranslate</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>RoboB.Navigate</cmdType>
      <params>
        <param>https://translate.google.com/#en/{2}/{1}</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <event>Google.TTS</event>
  </command>
  <command id="417" name="Google.TTS ready" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="triggered by an event expecting 2 payloads&#xD;&#xA;{1} text to speech&#xD;&#xA;{2} language code">
    <action>
      <cmdType>RoboB.Select</cmdType>
      <params>
        <param>GoogleTranslate</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>RoboB.ElementByID</cmdType>
      <params>
        <param>gt-res-listen</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <if ifBlockDisabled="False" ifNot="False">
      <ifType>LastActionSuccess</ifType>
      <ifParams>&amp;&amp;</ifParams>
      <then>
        <action>
          <cmdType>RoboB.Click</cmdType>
          <params />
          <cmdRepeat>1</cmdRepeat>
        </action>
        <action>
          <cmdType>RoboB.Hide</cmdType>
          <params />
          <cmdRepeat>1</cmdRepeat>
        </action>
      </then>
      <else>
        <action>
          <cmdType>RoboB.Show</cmdType>
          <params />
          <cmdRepeat>1</cmdRepeat>
        </action>
      </else>
    </if>
    <event>RoboB.DocComplete.GoogleTranslate</event>
  </command>
</commandGroup>

« Last Edit: April 26, 2016, 08:09:31 AM by nime5ter »

nime5ter

  • Administrator
  • Hero Member
  • *****
  • Posts: 2012
  • Karma: 61
    • View Profile
    • Getting Started with VoxCommando
Re: Re: Learning Arabic with Voxcommando
« Reply #13 on: April 24, 2016, 07:47:33 AM »
If the trial version is working with VC, then it sounds like you could buy their software with the TTS included and the TTS will work also with VC.

I suggest that you analyse the original Reuters news command group and the Blaze command group so that you understand what we were doing for those commands.

The RSS feed provides you with a list of headlines to news stories, and the URLs where each of those articles is located on al-jazeera's site.

VC can read you a list of headlines, but then you need to tell VC which of those stories you want to see (or hear), using a separate voice command. In that separate voice command, you can scrape the page that contains the actual article.

So you should have one command that collects the titles and associated links, and stores them in a payload XML file. And a different command that navigates to the page with the news story and reads it. That second command will use the payload XML that you just created in order to know which URL to go to.
TIPS: POST VC VERSION #. Explain what you want VC to do. Say what you've tried & what happened, or post a video demo. Attach VC log. Link to instructions followed.  Post your command (xml)

rio14

  • Contributor
  • ***
  • Posts: 59
  • Karma: 4
    • View Profile
Re: Arabic TTS and Al-Jazeera
« Reply #14 on: April 24, 2016, 09:27:35 PM »
hi
this code display 5 headlines latest news from aljazeera.net in arabic and store all headlines in file aljazeera.xml
but reading is just for the 1rst headline, and i want reading be for the 5 headlines i didnt find a solution  :(
if someone can help Thank you
Code: [Select]
<?xml version="1.0" encoding="utf-16"?>
<!--VoxCommando 2.2.1.4-->
<commandGroup open="False" name="Aljazeera news" enabled="True" prefix="" priority="0" requiredProcess="" description="">
  <command id="1240" name="Aljazeera" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="20" loop="False" loopDelay="0" loopMax="0" description="">
    <action>
      <cmdType>Scrape</cmdType>
      <params>
        <param>http://www.aljazeera.net/aljazeerarss/9ff80bf7-97cf-47f2-8578-5a9df7842311/99e42274-a82e-4930-bbd5-ba2b24a88a22</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>Results.RegExSingle</cmdType>
      <params>
        <param>item.*?&lt;title&gt;&lt;.*?DATA.(.*?)\]</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>OSD.ShowText</cmdType>
      <params>
        <param>أحدث الأخبار بموقع الجزيرة</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>OSD.AddText</cmdType>
      <params>
        <param>{i}. {Match.{i}.1}</param>
      </params>
      <cmdRepeat>5</cmdRepeat>
    </action>
    <action>
      <cmdType>VC.Pause</cmdType>
      <params>
        <param>2000</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>Results.SetLastResult</cmdType>
      <params>
        <param>{i}. {Match.{i}.1}</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>PayloadXML.Clear</cmdType>
      <params>
        <param>payloads\Aljazeera.xml</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>PayloadXML.AddPair</cmdType>
      <params>
        <param>payloads\Aljazeera.xml</param>
        <param>{Match.{i}.2}</param>
        <param>{i}</param>
      </params>
      <cmdRepeat>{#M}</cmdRepeat>
    </action>
    <action>
      <cmdType>VC.TriggerEvent</cmdType>
      <params>
        <param>google.tts</param>
        <param>{i}. {Match.{i}.1}</param>
        <param>ar</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>Results.SetVar</cmdType>
      <params>
        <param>headline {i}</param>
        <param>{Match.{i}.1}</param>
      </params>
      <cmdRepeat>5</cmdRepeat>
    </action>
    <action>
      <cmdType>Group.Rebuild</cmdType>
      <params>
        <param>Aljazeera</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <event>News</event>
    <phrase>tell me the news</phrase>
    <payloadFromXML phraseOnly="False" use2partPhrase="False" phraseConnector="by" Phrase2wildcard="anyone" optional="False">payloads\aljazeera.xml</payloadFromXML>
  </command>
  <command id="422" name="Call Google.TTS" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="triggered by an event expecting 2 payloads&#xD;&#xA;{1} text to speech&#xD;&#xA;{2} language code">
    <action>
      <cmdType>RoboB.Select</cmdType>
      <params>
        <param>GoogleTranslate</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>RoboB.Navigate</cmdType>
      <params>
        <param>https://translate.google.com/#en/{2}/{1}</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <event>Google.TTS</event>
  </command>
  <command id="417" name="Google.TTS ready" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="triggered by an event expecting 2 payloads&#xD;&#xA;{1} text to speech&#xD;&#xA;{2} language code">
    <action>
      <cmdType>RoboB.Select</cmdType>
      <params>
        <param>GoogleTranslate</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>RoboB.ElementByID</cmdType>
      <params>
        <param>gt-res-listen</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <if ifBlockDisabled="False" ifNot="False">
      <ifType>LastActionSuccess</ifType>
      <ifParams>&amp;&amp;</ifParams>
      <then>
        <action>
          <cmdType>RoboB.Click</cmdType>
          <params />
          <cmdRepeat>1</cmdRepeat>
        </action>
        <action>
          <cmdType>RoboB.Hide</cmdType>
          <params />
          <cmdRepeat>1</cmdRepeat>
        </action>
      </then>
      <else>
        <action>
          <cmdType>RoboB.Show</cmdType>
          <params />
          <cmdRepeat>1</cmdRepeat>
        </action>
      </else>
    </if>
    <event>RoboB.DocComplete.GoogleTranslate</event>
  </command>
</commandGroup>
« Last Edit: April 26, 2016, 08:09:47 AM by nime5ter »