Tuesday, April 12, 2016

Dragon Professional Individual 14 and Studio: What will you say?

While not every project is dictation-friendly, speech recognition can undoubtedly be a valuable tool for a translator. For several years now, I have used Dragon products in combination with SDL Trados Studio with varying degrees of success. While Dragon NaturallySpeaking never worked flawlessly with Studio, it wasn't until DNS version 13 that I lost practically all of the already limited text control capabilities in Studio.

What do I mean by text control? In fully compatible applications, such as Microsoft Word, it is possible to select, format, edit, correct and move text by voice using Dragon's built-in "select-and-say" commands. The video below briefly illustrates the use of full text control in MS Word.


In non-supported applications, such as Studio, however, select-and-say commands are not available. Compare what happens in Word, above, to what happens in Studio, below.



Dragon and Studio: A match not made in heaven
In addition to the lack of full text control, the interaction between Dragon and Studio (particularly Studio 2014) has been plagued with little problems, such as the need to dictate the initial cap command for every segment, which is no longer an issue thanks to Studio 2015's autocorrect capability. For a while, Dragon would insert extra blank spaces at the beginning of segments or just before any newly inserted text. It also dropped spaces, clumping words together here and there, and had a major conflict with Studio's AutoSuggest when Studio 2015 first came out. Some of these issues were annoying enough that I many times abandoned any attempts to dictate translations and went back to typing, which is disappointing, particularly because Dragon's accuracy, even without prior training, is quite high, and has been for the past few releases. I usually dictate in Spanish, my main target language, but I own the bilingual version of Dragon, where I can dictate either in English or in Spanish (a separate profile is created for each language), and even in my second language, English, Dragon does a superb job recognizing my non-native speech. (This post has been dictated with Dragon, with very minimal correction needed).

DPI 14: The new and improved Dragon
The product that I use used to be called Dragon NaturallySpeaking Premium, but in its latest iteration it underwent a name change and it is now called Dragon Professional Individual, a name that provides a hint to one major, very useful enhancement: In addition to improved accuracy and better recognition with laptop microphones, as well as improved stability, Dragon Professional Individual 14 includes the full custom command creation capability that used to be available only in the more expensive professional versions of Dragon NaturallySpeaking.



There are four methods that can be used to create commands:

1. Auto-Text, which provides basic insertion of text and graphics

2. Macro Recorder, which records mouse and keyboard actions in real time, and, unfortunately, deploys them in real time as well, although things can be sped up a bit by deleting parts of the recorded macro, such as mouse movements.

3. Step-by-step, a very easy way of creating commands for keyboard shortcuts, for example.

4. Advanced Scripting, which uses Visual Basic to create more complex, but also more robust, commands.

Commands can be global, application-specific, and even window-specific.

DPI 14's Command Creation window

10 custom DPI 14 commands for Studio

How well does it work? Amazingly well. I upgraded to DPI 14 a few days ago and after starting with a few basic Step-by-Step commands, I have been learning about and creating Advanced Scripting commands. So far, I have managed to create over 50 custom commands for Studio, some of which simply activate existing Studio shortcuts, and some others which manage more complex action sequences.

Here are a few examples:

What I say
What happens
Notes
Confirm
The active segment is confirmed

Select <dictation>
Selects the dictated text within the active segment

Apply tags
Tags are added to the selected text
Works best when acronym recognition is disabled in the TM
Enable track changes (or Disable track changes)
Toggles track changes
Since this is a toggle shortcut, I’ve simply saved the same command with two different names
Show repetitions
Applies the display filter to show Repetitions – All

Show numbers only
Applies the display filter to show Numbers Only

Show untranslated
Applies the display filter to show Not Translated

Reset filters
Clears all the settings in the display filter

Select to end of segment
Selects all the text from the cursor to the end of the active segment

Insert after <dictation>
Selects the dictated text and places the cursor right after for new text insertion


To see the commands in action in Studio, have a look at the video below. Note how towards the end of the clip I try to say "Delete" to delete some unwanted text, but instead Dragon inserts the word "delete" into the segment, as there is no "Delete" command (actually, there is, but it only works in supported applications). A new custom command, which should take less than a minute to create, will take care of this.

Custom Dragon commands for Studio in action

KnowBrainer: A Dragon add-in for quick command creation
I'd like to finish this post by saying that while all these commands can be created in Dragon, I'm using a powerful add-in called KnowBrainer, which essentially allows you to create Dragon commands quickly, and comes pre-loaded with hundreds of ready-made global commands that can be used right out of the box or can serve as inspiration for more custom commands. An additional advantage I find in using KnowBrainer is that I can keep all my English and Spanish commands in one place. To make a command available in both languages, all I need to do is make a copy and give it a name in the appropriate language. While you can also have commands in both languages stored within Dragon, since you have to switch profiles to switch languages, only the commands that match the language in the active profile are loaded. Lastly, the creators of KnowBrainer host a very active, wonderful speech recognition forum where help and tips can be found both for Dragon and KnowBrainer.

The KnowBrainer sidebar, showing my English and Spanish custom Studio commands.

The KnowBrainer Command Editor window for Advanced Scripting (Visual Basic) commands



So, no more frustration and no more setting Dragon aside for days at a time. With this new version, Dragon has opened the door to new possibilities to make speech recognition a regular part of my workday.


Monday, March 7, 2016

An Excel-Based Terminology Provider for SDL Trados Studio: The TermExcelerator

With the release of SDL Trados Studio 2015 SR2, there is an exciting new addition: the TermExcelerator, available from the SDL Open Exchange.

This new terminology provider is a plug-in that allows the user to use an Excel glossary as a termbase in Studio. It couldn't be easier or more convenient. Once the Excel termbase has been added to Studio, terms can be added, edited or deleted either in Studio or in Excel, making termbase maintenance a breeze.

Let's have a look at how it works.

The basics
The TermExcelerator works only with one target language, so it's not intended for multilingual termbases. In addition to the source and target column, the Excel file can have a third column called "Approved column" in the provider. This can be used for notes and comments or any other relevant information.

Adding an Excel glossary directly to Studio
An Excel termbase is added the same way as a Multiterm termbase. After installing the plug-in, Studio will offer an option to add an "Excel-based Terminology provider" in addition to the usual Multiterm termbases.

The screenshot below shows the Project Settings route, used for adding termbases to existing projects. Termbases can also be added via Options (the termbase will be added to all new projects created thereafter and to single-document workflows) and when creating a new project.

Notice the redesigned Termbase pane above, which now resembles the layout of the Translation Memory pane.

Selecting to add an Excel-based terminology provider takes us to the Settings window.


For reference, here's the glossary I've added to this example.



After clicking Submit, the Excel glossary has now been added to my project.


When I close this window with OK and go back to the Editor view, I can see that the termbase is now active.


Once the termbase has been loaded, term recognition and search work as usual.


Editing and maintaining the Excel termbase

The TermExcelerator offers some interesting features: in addition to the regular Add New Term and Quick Add New Term functionality from within the Studio Editor, we can delete and add entries from the Termbase Viewer, and sync changes between the Excel file and the termbase in Studio.

Adding Terms
To add a new term to our Excel termbase from the Studio Editor view, simply select the source and target terms, right click and select Add New Term or Quick Add New Term. Either option will automatically save the newly added term to the Excel file.

Tip: To enter terms quickly via the keyboard, set a shortcut in Options - Keyboard Shortcuts - Editor 
for the Quick Add New Term feature.


The new term has been added to the Excel termbase.

We can also add a term by clicking the Add button in the termbase viewer and entering the new term manually.



One of the most convenient features of the TermExcelerator is that we can now quickly add multiple terms to the Excel file and, by clicking Sync in the Termbase Viewer, they will become immediately available in Studio. (Note: The Excel file must be saved and closed before syncing).

Here, I've added the terms in rows 9-13 in Excel.

When I click Sync in the Termbase Viewer, the newly-added terms become available in Studio.

Deleting and editing terms
The steps to delete and edit terms are pretty straightforward. The Delete button in the Termbase Viewer is used to remove the selected entry, while selecting and double-clicking an entry allows us to edit its contents. The Save Entry button should be used to save any changes after editing. Of course, entries can also be deleted or edited in Excel, and after Syncing, the updated termbase will be immediately available in Studio.

Data integrity
The usual warnings for data integrity apply, and it's always a good idea to make a copy of the Excel file just in case something goes wrong.

Final thoughts
Although I don't see myself abandoning my Multiterm termbases any time soon, I appreciate the benefits and convenience of this great new tool, which has quickly become an essential component of my toolbox.

For more details, don't miss Paul Filkin's post on the TermExcelerator: Committing the cardinal sin... 

Friday, January 15, 2016

Removing Duplicates from a Multiterm Termbase

Duplicates in a Multiterm termbase can clutter up the term recognition list in Studio and make files larger than they need to be, so it makes sense to keep our termbases as duplicate-free as possible. Here's a quick and easy how-to for termbase maintenance.

Step 1. Convert the termbase to an Excel file

The easiest and fastest way to do this is to use the Open Exchange Glossary Converter app. It's a simple matter of dragging and dropping the termbase onto the app, and just like that, an Excel file will be created in the same folder where the exported termbase is stored.



Step 2. Remove duplicates in Excel

Open the converted file in Excel, and go to Data - Data Tools - Remove Duplicates. Excel will tell you how many duplicates were removed and how many entries are still left.





Step 3. Convert the Excel file back to a termbase

Once again, drag and drop the file (the Excel file this time) onto the Glossary Converter and let it work its magic. You can either overwrite the existing termbase or save it under a new name.




And that's all there is to it. The whole process doesn't take more than a few minutes. Of course, all the standard data back-up warnings apply, and it's advisable to make a copy of the termbase before starting the process, just in case.

Thursday, January 14, 2016

Why Mats Linder's SDL Trados Studio 2015 Manual will be the first book I will read this year

We're still in the first month of 2016, so I'm working on one of my resolutions: Reading Mats Linder's SDL Trados Studio 2015 Manual cover to cover (all 508 pages of it!) before January 31st.

I decided to do this for three reasons:

1. I always like to start a new year by reading a self-improvement book. I usually pick something to do with personal development, but for this year it will be something to do with skill development.

2. I recently heard a world-famous surgeon say that the reason he has become an expert in his field is that he has picked certain techniques and stuck with them, studying them and developing and honing his craft, rather than jumping from approach to approach, just scratching the surface of new knowledge. This resonated with me: I should invest more time to learn as much as I can about the tools I use every day, and one of those tools is Studio.

3. I find that the SDL Trados Studio 2015 Manual is well written and organized, and it's very comprehensive. Whenever I want to learn more about a Studio feature, I usually go to Studio's help first, then I refer to Mats' Manual, and when I do that I always find more information, unrelated to what I was looking for but just as interesting and I often think "I need to read this later", and then I never find the time to do it, so this is my chance to read it all.

To illustrate, here are 3 examples of information I wasn't looking for at the time but I found very useful after coming upon it in Mats' manual:

1. Using the AnyTM feature to add an automated translation provider, such as Google Translate or SDL Language Cloud as "any other translation provider" rather than as a file-based TM means that language direction doesn't matter (page 102). This is interesting, as I had seen the feature and had wondered what would be the point of adding Google Translate via AnyTM.

2. Multiple AutoText entries can be added at once by opening the file in a text editor and simply adding the entries there (page 243), then importing it. I had actually thought about this but reading about it in the manual motivated me to go and try it.

3. In the Word List settings under QA, the correct form of the word doesn't have to be specified along with the wrong form. Including it will only mention it in the error message (page 284) but will have no other effect. I knew the correct form was listed in the error message, but didn't realize a wrong word could be included in the list without the correct form.

Something that I really like about Mats' Manual is that it's full of tips and hints that go beyond Studio and include Open Exchange apps, which are not mentioned just in passing, but rather include his own views about the usefulness of the apps and even instructions to use them, as is the case for example with these great apps: TermInjector (page 244) and the Glossary Converter/Glossary Plugin (page 388). There are also sections about third-party software, such as AutoHotkey and PhraseExpress. Mats also references blogs with how-tos to help the reader expand their understanding of Studio's features.

I realize this cover-to-cover approach to reading a reference manual may be unorthodox, and, some may say, even pointless, but I am finding it very satisfying. I'm reading some sections faster than others, depending on how familiar I am with the features being explained, and I'm bookmarking things for future reference as I go along. I just hope I will be done with all 500+ pages before a new version comes out!










Friday, December 11, 2015

Segmentation Exceptions in SDL Trados Studio

In addition to creating custom segmentation rules, Studio allows us to add exceptions to new or existing rules. This post will explain how to do just that in Studio 2015.

A sample use case

In the example below, the translation for "Made in China" will propagate from segment 2 to segment 4, but this is not desirable in Spanish, as the verb needs to be singular in segment 2 and plural in segment 4, a distinction that exists in Spanish but not in English. Furthermore, there is gender to be taken into account, which in this case doesn't matter, but in other segments will make a difference.



Adding an exception to a segmentation rule

Segmentation rules are modified in each TM's settings. For this example, we will go to Project Settings - Language Pairs - All Language Pairs - Translation Memory and Automated Translation, select the appropriate TM and click Settings, then Language Resources - Segmentation Rules.



I will then select the Colon rule and click Edit.

At the bottom of the Edit Segmentation Rule window, select the Add button next to the Exceptions pane, and then the Advanced View button in the window that opens, to get to the Add Rule Exception window.


This is where we will tell Studio when NOT to segment after a colon, so let's keep our source text in mind to make sure we don't miss anything.

Battery: Made in China
Batteries: Made in China

I want Studio to ignore the colon segmentation rule whenever it comes across the phrase "Made in". The part that I need to change in the rule is what comes after the break, that is, when "Made in" appears after a colon, the colon rule should be skipped. It looks simple enough, but there is one little thing to keep in mind: there is also a space after the colon, and if I don't add that, the exception won't work. So what I really need is for the colon segmentation rule to be ignored when "space + Made in" is found after a colon.

\s represents any whitespace in regular expressions, and it's already included in the "After break" pane as shown above, so I just need to add "Made in" right after it.


After clicking OK, I see that the exception has now been added to the rule.


After closing all the open windows, it's time to process the file with the new segmentation. If my file had been added to my project before adding the exception, I will need to remove it, add it back and reprocess it for the exception to take effect.

And here's the resulting segmentation, just what I needed!



This example uses simple text content for the exception, but with regular expressions, even more powerful exceptions can be added to fit a variety of scenarios.












Wednesday, November 25, 2015

Beyond Punctuation: Creating Custom Segmentation Rules in Studio

A freshly created TM in Studio comes with 3 standard segmentation rules, as shown below.


While these rules are enough in most cases, sometimes we'll open a file and wish it were segmented differently, as in this case:


A quick look at this file makes it clear that it would be a lot easier to handle if "Dry Time" and "Wait Time" were in their own separate segments, so a custom segmentation rule would come in handy.

This new rule won't be punctuation-related, but instead, it will be content-related. In other words, I need Studio to create a new segment whenever the text "Wait Time:" or "Dry Time:" is found.

Adding a New Segmentation Rule

To access the segmentation rules, follow the path shown below.


This opens the Segmentation Rules window, where we will add the new rule.


Clicking Advanced View takes us to this window:


This is where we will tell Studio what we want to do. Before proceeding, let's think about what we want to do.


As shown above, we want to add a segment break (represented by the yellow line) right before "Wait Time:" and "Dry Time:", both of which are preceded by a space. In the window above, I need to tell Studio what pattern can be found before the (segment) break and after the break. So, in this example:

Before the break there is a space

and

After the break there is either "Wait Time:" or "Dry Time:"

To tell Studio what I want to do, I will need to use regular expressions, which for this example are not too complicated.


Explanation:

Before break
\s

  • \s is the regular expression character for whitespace


After break
(Wait|Dry) Time:


  • The | indicates alternation, so it's telling Studio to look for either "Wait" or "Dry"
  • The parentheses are used to group the two alternatives, as otherwise Studio would look for "Wait" or "Dry Time:", that is, it would not combine "Wait" and "Time:"
Note that I'm including the colon in the "After break" expression. This is to prevent unwanted segmentation in segments like "Wait Time cannot be longer than Dry Time."

After clicking OK, the rule is now included in the list of segmentation rules.



After closing all the open windows. The new rule is now available to be applied during processing. 

To apply it to my file, I will need to first remove the file from my project, add it again and process it as usual, as shown in this short video.



And that's all there is to it! After re-processing the file, I now have the segmentation I wanted.





Friday, November 6, 2015

Combining TMs in Studio: TM Import and TM Upgrade


When we need to combine the contents of two or more TMs, we have two operations available in Studio: Importing and Upgrading Translation Memories.


The main difference is the end result:
Upgrading TMs will produce a new TM.
So, TM1 + TM2 = TM3

Importing TMs will modify an existing TM.
So TM1 + TM2 = TM1 (including all the contents of TM2)


Let's have a look at the basics of each method.

For this example I have two simple TMs called Red and Yellow, shown here in the Translation Memories view. I’ve added an identical TU (Yellow-Amarillo) to both TMs so we can see what happens to that kind of content.

image

image


Method 1: Upgrading TMs

Note: This will create a new TM that will include the contents of all the selected TMs.

First, I click Upgrade Translation Memories from the Home tab in the Translation Memories view.

image

For our example, I will add the two file-based TMs I created, so I select “Add File-based TMs…”, then go to the folder where my TMs are stored.

Note: Selecting All Supported Files in the drop-down menu next to the File name ensures that Studio TMs (sdltm) are also visible.

image

I select the files I want to merge and click Open.

image

Then I click Next.

In the Output Translation Memories window, the first option is to create one TM for each of the selected TMs. This is useful when upgrading a Legacy TM to Studio’s sdltm format. For our example I want to merge the two TMs, so I’ll use the second option: Create output translation memory for each language pair.

Note: Studio gives the new TM a default name that is made up of the source and target language codes. In this example, Studio gives me the default TM name en-US_es-MX. Double-clicking on this name allows me to edit it to give the TM a specific name; in this case, I’ve changed it to Red+Yellow.

image

Click Next.

The next window allows us to select some settings for the TM merge operation. The screenshot below shows the Settings tab. I left all the default settings intact for this example.

image

After clicking Finish, I see a window summarizing the operation. Looking at the list of steps, we can see that it’s basically an Export+Import sequence, where each of the selected TMs is first exported, then a new TM is created and finally, each of TMs is imported into the new TM.

image

This is what the new TM looks like. The identical TU in both TMs (Yellow – Amarillo) gets merged into a single TU in the new TM so there will be no duplicates.

image



Method 2: Importing one TM into another one


Note: With this method, the original TM is modified to include the new TUs.

If the TM to be imported is in sdltm format, it will first need to be exported to a TMX file.
For our example, I will import the contents of the Yellow TM into the Red TM.
First, to export the Yellow sdltm file to a TMX file, from the Translation Memories view, I select the TM and click Export in the ribbon.

image

After clicking Save I will have a TMX file.

Next, I select the Red TM and click Import, selecting the TMX file I just created.

image

After clicking Open and Next, the last screen before the actual Import operation allows me to choose some settings.

image

Again, I left all the default settings intact and clicked Finish. After the import operation is complete, the Red TM is showing the newly-added TUs. Since TU 3 (Yellow-Amarillo) is identical in both the original and the exported TM, only one copy is kept, avoiding duplicates.

image























And that’s all there is to it.

Both operations are simple and easy to access, and it’s a just a matter of deciding which output best fits our intended purpose.