Using the SSML phoneme element - vb.net

I am using Visual Basic.net Ultimate, and am developing a TTS application. May I please have some help with the phoneme element.
Here is the text that I wish to speak:
As you release the tension in your shoulders and neck, take another deep breath in... and out.
Currently, the two words "breath in" seem to be running together and sound like "breath thin"
I would like to (via SSML) modify this statement so that the words sound like "breath in."
What would be the best way to do this via SSML? I am thinking that the phoneme element is the best way to do this.
Here is an example I have found to pronounce the word tomato:
<phoneme alphabet="ipa" ph="təˈmeɪ.ɾoʊ"> tomato </phoneme>
The text between the ph section of the above code seems to be totally in a different language (:)). How do I use this language to spell out a word?

This "totally different language" is the International Phonetic Alphabet. That's why on the same line it says: alphabet="ipa".
Different TTS systems use different phonetic representations of sounds, the IPA being one that some systems support.
I think for what you are doing a break tag would be more appropriate, as you are not looking to change the systems pronunciation of a word, but instead you wish for it to have a short pause between the two words.
If you specify which TTS engine you are using I can try to help more.

Related

How to convert text into ipa?

I want to convert some text into ipa to make sure the pronunciation will always be the same on all tts engines.
I didn't find a good way to do that, especially I need this for german.
I hoped for a service from a big player like Google, because of their advanced tts, but I didn't find one.
Does someone know a good tool / api / plugin for that?
Check out espeak-ng, which does IPA output with the -x flag. There's also a couple of related libraries out there based on espeak/espeak-ng if you don't want to just use the CLI.
Also, Amazon Polly allows output of "visimes" (see Speech Marks, which in theory you could translate back into IPA (they have a lookup table).

Is there such a thing as a visual development environment for C++?

By "visual development environment", I do not mean Microsoft Visual Studio. I'm looking for a node-based IDE in which programs are constructed graphically and converted to plain text at compile time. The content of functions would still have to be typed out, of course, but everything else would be visual. Sort of like a flow chart that you type your code into directly.
I feel like this should exist but I can't seem to find anything like it.
There are tools which allow you to design your software using UML. Some of these tools include code generation capability (although as you say, you may have to enter code to implement decision points, etc).
One example is IBM Rational Rose. An open source example is ArgoUML.
DRAKON Editor
http://drakon-editor.sourceforge.net/
It it supports visual programming in C++, also support QT. It also supports many other programming languages.
Why to use DRAKON than other diagramming systems?
No line intersections. You will never find in DRAKON diagram two or
more lines intersecting each other! Not seen in other diagramming
systems!
Silhouette structure. It allows to break one diagram in to several
logical parts. Not seen in other diagramming systems!
No slanting or curved lines. Only straight lines with right angles.
Icons are placed only on vertical lines.
Branching is done in a simple, visible and consistent way.
Each diagram has one entry and one exit.
More about DRAKON here:
http://en.wikipedia.org/wiki/DRAKON

Change dictation topic on the fly

I am scoping out a custom dictation application to be built using MS SAPI 5. I would like to be able to change the grammar (topic) of dictation dynamically based on what is being recognized. For example, if my dictation application deals with car repair, then, if I detect the speaker talking about engine, I want to bring in a dictation topic optimized for recognizing engine part names, as opposed to cabin upholstery.
Anyone know if this is possible?
Thanks.
-Raj
I believe your biggest hurdle will be in developing a "fool proof" method of identifying what topic is being discussed. To reference your own statement, " talking about engine", if you simply listen for engine and key off of that word you would not be able to for instance use the word engine to represent both a car engine and a software gaming engine. I have used a couple of speech synthesizers. The ones i have used wait for specific commands to begin listening. Perhaps you could have a combination of start listening commands.
USER "Computer, start listening."
COMPUTER "Ready to Listen."
USER "Car engines."
COMPUTER "Loading Car Engine Library."
Something like this might be a reasonable approach to your problem while still allowing yourself the flexibility of adding libraries. You could also utilize this approach to implement a default library. If the second command given isn't a recognized library then the program could use the default library.

Internationalization string testing

Some people using look-alike Unicode symbols to replace English characters to test the internationalization, e.g. "Test" is replaced as "Ťėşŧ". Is there a wellknown name for this language/culture? Are there utils, keyboard layouts, translation tools for this "language"?
The name of this technique is Pseudolocalization, see the Wikipedia article here: http://en.wikipedia.org/wiki/Pseudolocalization
Windows Vista comes with three Pseudo-Locales for testing. The "Using Pseudo-Locales for Localization Testing" MSDN article may be a good place to start.
Beyond this, any tool (beyond what you would use for regular localization, such as a translator) would depend on what platform you are developing for (and so how your data is stored).
As for keyboard layouts - any will do. But don't forget about IMEs.

Any tools to check for duplicate VB.NET code?

I wish to get a quick feeling for how much “copy and paste” coding we have, there are many tools for C# / Java to check for this type of thing. Are there any such tools that work well with VB.NET?
(I have seen what looks like lots of repeated code, but wish to get some number to help me make a case for sorting it out)
Update on progress.
I have just tried Simian.
It does not seem to be able to produce a nicely formatted report I can sent by email
It does not cope when the names of local variables, or parameters etc may have been changed, e.g it just matches on lines of text being the same.
Clone Doctor does not support VB.NET (only C# and VB 6 and lot of other)
October 2010: VB.net added to langauges supported by CloneDR
Clone Detective for Visual Studio only supports C#
SolidSDD - Source Code Duplication Detector only supports C, C++, C# and Java
DuplicateFinder is open source, but otherwise looks very match like Simian, e.g it just works on lines of text
ConQAT - Continuous Quality Assessment Toolkit seems to have a clone detector that works for VB.NET (not tried it yet)
Gendarme is a bit like FXCop and has a AvoidCodeDuplicatedInSameClassRule rule, this looks very promising, as it avoids the problem of working at the text level. Just tried it, it is the best solution so far, pity it does not search with a greater scope.
Before claiming that this question is a duplicate, please check that the other question addresses VB.NET, as a lot of tools that work well for C# don't work so well for VB.NET. (However it would not surprise me if this question is a real duplicate)
CodeRush 11.2 introduced a new feature called Duplicate Detection and Consolidation (DDC)
http://community.devexpress.com/blogs/markmiller/archive/2011/11/29/duplicate-detection-and-consolidation-in-coderush-for-visual-studio.aspx
Make sure to check out the options for it as well, as you can have it run when so many lines are changed, certainly time has passed, etc.
They've posted some decent videos on the DevExpress site too.
Simian: http://www.redhillconsulting.com.au/products/simian/
[I'm the author of CloneDR ("Clone Doctor").]
CloneDR is parameterized by a full grammar for the programming language in question. So it doesn't just match lines. Rather, it can find clones which are syntactically well-formed, with variations that are more than just identifier changes, regardless of where they stop or start in a line.
The engine on which CloneDR rests, The DMS Software Reengineering Toolkit" is a tool for analyzing large scale systems in any programming language, and uses language descriptions to drive the analysis. DMS has a wide variety of language front ends already available.
Presently it has VBScript and VB6 (as dialects of "Visual Basic"). It doesn't have VB.net, but that would be pretty straightforward to do given the DMS infrastructure and our experience with lots of other languages.
So, CloneDR could do this just fine, with a small bit of effort on our part.
EDIT October 2010: VB.net added as a language CloneDR can process.
Atomiq supports vb.net amongst other languages, and the results are nicely presented.
JetBrains published console tool set Resharper Console Tools to run duplication analysis. Once installed it allows you to do the same analysis as TeamCity does and generate duplicates report locally and even include duplicates search into custom build process with MSBuild. This tool does exactly what you need. More details you can find here at JetBrains blog post
Try Simian:
Simian (Similarity Analyser) identifies duplication in Java, C#, C, C++, COBOL, Ruby, JSP, ASP, HTML, XML, Visual Basic, Groovy source code and even plain text files.
I once saw an impressive demo of Pattern Insight; its CP Miner may be what you’re looking for: http://patterninsight.com/products/cp-miner.php. It seems to be language-independent, though I couldn’t find anything explicit about languages other than C/C++.
Roll up your sleeves and write your own parser to use it with CPD?
See the question for the tools I found.