Very few people know that anyone can write code using our translation Api, and even fewer know about the interface available in the Bing Api. I’ll use the later for this next sample: an ASPX page that invokes the translation services, show the result and then invokes the Speech feature from the client (using Javascript).
Let’s start with the basics: the Bing Api offers tons of services, and anyone can use it - all you need to to is apply for an AppId. Follow the instructions at http://www.bing.com/developers/appids.aspx and you’ll get one immediately. Once you have your shiny new code, you can then start playing with the many (many) samples available at http://msdn.microsoft.com/en-us/library/dd251056.aspx. It’s a quite powerful Api, and it works really well.
For the sake of this project we’ll only use the Translate methods. There are three “flavors” of protocols available: JSON, XML and SOAP. the XML protocol is really simple: it’s basically a REST implementation that returns a Xml as response. As any REST interface, you can even invoke it from the browser. For example:
(This AppId is registered to H2KTech, so please get your own)
As you can see, the result is a very simple Xml that can be loaded and parsed very easily. MSDN has a pretty good example that I copied and modified for this sample application: http://msdn.microsoft.com/en-us/library/dd877832.aspx.
Looking at the code you’ll notice that querying the translation services is really simple: just format the url string correctly and open an Http request:
// Create and initialize the request. HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create( requestString);
return request; }
The response comes in the form of a Xml formatted string, so it’s ready to be loaded into a XmlDocument object. After that, just add the namespace and you’re ready to parse it:
Note that I’ve hooked the call to the Search Api to the OnClick handler, so the response will be blocked until we get a result back – and this is bad. However, for the sake of this exercise it doesn’t hurt much. Once we have the translation results, we populate the text box and return. The client Javascript code will then detect that the text box is not empty and invokes the Speech service using the Active X inside the IFrame, just like in the previous sample.
I didn’t add any checks for exceptions, so if the results text box is populated with an error message funny things will certainly happen :-).
Muito poucas pessoas sabem que qualquer um pode escrever código usando nossa API detradução, e ainda menos sabem sobre a interface disponível na API de Bing. Usarei esta para meu próximo exemplo: uma página ASPX que invoca os serviços de tradução, mostra o resultado e, em seguida, chama o recurso de voz a partir do cliente (usando JavaScript).
Vamos começar com os princípios básicos: a API de Bing oferece toneladas de serviços e qualquer pessoa pode usá-los - tudo o que você precisa é obter um AppId. Siga as instruções em http://www.bing.com/Developers/APPIDs.aspx e você obterá um imediatamente. Depois de ter seu novo código, você pode então começar a brincar com os varios (muitos) exemplos disponíveis em http://MSDN.Microsoft.com/en-US/Library/dd251056.aspx. É uma API bastante poderosa e funciona muito bem.
Para este projeto só vamos usar os métodos de traduzir. Existem três "flavors" de protocolos disponíveis: JSON, XML e SOAP. O protocolo XML é realmente simples: é basicamente uma implementação de REST que retorna um XML como resposta. Como qualquer interface REST, você pode até mesmo invocá-lo do navegador. Por exemplo:
(Este AppId está registrado para H2KTech, então, por favor obtenha seu próprio)
Como você pode ver, o resultado é um XML muito simples que pode ser carregado e analisado muito facilmente. MSDN tem um exemplo muito bom que eu copei e modifiquei para este aplicativo: http://MSDN.Microsoft.com/en-US/Library/dd877832.aspx.
Olhando o código, você notará que ao consultar os serviços de tradução é realmente facil: basta formatar a cadeia de caracteres de url corretamente e abrir uma solicitação de http.
A resposta vem na forma de uma string formatada como XML, portanto está pronto para ser carregado em um objeto XmlDocument. Após isso, basta adicionar o namespace e você está pronto para analisá-lo.
Observe que eu já implementei a chamada para a API no handler de OnClick, portanto, a resposta será bloqueada até obtermos a um resultado de volta – e isso é ruim. No entanto, por razões deste exercício não importa tanto. Assim que tivermos os resultados de tradução, nós preenchemos a caixa de texto e retornamos. O código JavaScript que roda no cliente irá detectar que a caixa de texto não está vazia e invoca o serviço de voz usando o Active X dentro do IFrame, tal como no exemplo anterior.
Não adicionei testes para exceções, portanto, se a caixa de texto de resultados for preenchida com uma mensagem de erro coisas engraçadas certamente irão acontecer:-).
So here is a first sample application using the new service. It’s a really basic Javascript client that doesn’t do much more than formatting a string with the url and the correct parameters to invoke the T2S feature. The only thing that is remotely interesting is that this string is passed directly to the Media Player Active X, so there’s no extra work to play the wave file.
InvokeService builds the string based on the content of the textbox (there’s some basic filtering to emulate escaping some characters) and adds the language parameters based on the dropdown.
PlayWave: uses the iframe as a container and creates a document on the fly with references to the Media Player Active X. It also adds a regular http link (like the ones in the previous blog post) in case the users doesn’t have (and doesn’t want to install) the control.
Aqui está um primeiro exemplo de um aplicativo usando o novo serviço. É um programa realmente básico em JavaScript que não faz muito mais do que formatar uma string com a url e os parâmetros corretos para invocar o recurso de T2S. A única coisa que é remotamente interessante é que esta string é passaao diretamente para o Active X do Media Player, portanto, não há nenhum trabalho extra para reproduzir o arquivo wave.
As duas funções de JavaScript funcionam da seguinte forma:
InvokeService constrói a cadeia de caracteres com base no conteúdo da caixa de texto (adicionei alguns filtros básicos para emular escaping alguns caracteres) e adicionar os parâmetros de idiomas com base na lista.
PlayWave: utiliza o iframe como um recipiente e cria um documento com referências para o Media Player ACTIVEX. Também adiciona um link http normal (como aqueles na postagem do blog anterior), caso os usuários não tenham (e não queiram instalar) o controle.
So my new personal project is taking shape, but as I mentioned in my previous post it will probably take a long time before there’s any real product implementation of a Speech-to-speech translator. That said, I believe there’s nothing preventing us from seriously integrating Text-to-Speech with our current offerings.
For the few of you that have been following this blog – yes, I know it’s not a new concept. The first TBot even had it implemented somehow (see http://mtbotprototype.spaces.live.com/blog/cns!3F1A4578DEE8B!376.entry ). Unfortunately, it takes a while to create momentum to push for ideas.
The circumstances have changed since February 2008, and now I believe it’s time to start pushing – our team now has open APIS for translations (http://msdn.microsoft.com/en-us/library/dd576287.aspx), more languages and a heck of a lot more hits daily. Since we’ve already reached out and offered developers and webmasters/blog owners ways to incorporate MT to theirs sites or products, offering a way to add Translated TTS seems like a natural progression.
So I’m putting my money where my mouth is (literally) and I’ve acquired a domain to host some of my prototypes. The first is a simple ASPX page that works similar to our Http Translate method – you invoke it thru a url that takes query parameters. The utility translates the sentence and then returns a wave file back to the caller. It even works directly from the browser, so anyone can add links to invoke the service – like these:
For now I’m only offering 4 languages – English, French, Spanish and German (en, fr, es, de). If there’s interest in the service I’ll try to add more languages.
Hopefully people out there will build interesting applications using the utility (attention mobile developers: it doesn’t get any easier to integrate than that!) , and help build the case for TTS. On my side, I’ll keep pushing for adoption: I honestly believe that all of our offerings should offer something similar to that...
Meu novo projeto pessoal está a ganhar forma, mas como mencionei no meu post anterior provavelmente levará muito tempo até que apareça qualquer implementação real de um produto tradutor de speech-to-speech. Entretanto, creio que não há nada que nos impeça de integrar seriamente conversão de texto em fala com nossas interfaces atuais.
Para já vem seguindo esse blog faz tempo – sim, sei que não é um conceito novo. O primeiro TBot já a mesma função implementada de outra forma (ver http://mtbotprototype.spaces.Live.com/blog/CNS!3F1A4578DEE8B!376.entry ). Infelizmente, leva um tempo para criar o impulso para empurrar novas idéias.
As circunstâncias mudaram desde Fevereiro de 2008, e agora penso que é hora de tentar novamente – nossa equipe tem agora APIS abertos para traduções (http://MSDN.Microsoft.com/en-US/Library/dd576287.aspx), mais idiomas e muito mais page views diariamente. Desde do inicio do ano nós já oferecemos a desenvolvedores e webmasters/bloggers maneiras de incorporar MT para seus sites ou produtos. Oferecer uma maneira de adicionar que Translated TTS parece ser uma progressão natural.
Assim, eu estou colocando meu dinheiro onde minha boca está (literalmente) e já adquiri a um domínio para hospedar alguns dos meus protótipos. O primeiro é uma simples página ASPX que funciona de forma similar ao nosso método HTTP Translate– invocá-lo por meio de um url que leva os parâmetros de consulta. O utilitário traduz-se a frase e em seguida, retorna um arquivo wave de volta para o chamador. Até funciona diretamente do navegador, portanto qualquer pessoa possa adicionar links para invocar o serviço – como estes:
Por agora eu estou oferecendo apenas 4 idiomas – inglês, francês, espanhol e alemão (en, fr, es, de). Se houver interesse no serviço tentarei adicionar mais idiomas.
Espero que desenvolvedores por aí criem aplicativos interessantes usando o utilitário (atenção desenvolvedores para mobile: não tem integração mais fácil do que essa!) e ajudem a construir apoio para TTS. No meu lado, eu vou continuar a empurrar a adopção: acredito sinceramente que todas as nossas interfaces devem oferecer algo similar...
Now that TBot is stable, and the new version is almost ready, it’s time to start playing with other prototypes. After more than 2 years interacting with TBot users I can say that I learned a lot, and that one of my first assumptions still holds true; people do adapt to get better results of the tools they use.
Based on that I’ve been investigating yet another way to combine existing pieces of technology to build something new. Everyone know that Microsoft has made significant investment on speech recognition and synthesis, so it is possible – at least in theory – to put it all together and build a Speech to Speech translation application. No, I’m not talking about Captain Kirk’s Universal Translator – yet… Project Presto is still very limited, but it does work – and if you use simple, short sentences the results can be pretty good.
Here are two videos: English to Portuguese and English to Japanese (Takako help me select sentences that would provide better translations for Japanese)
As you can see, Presto relies on the fact that open dictation grammars work pretty well for short utterances – in other words, breaking long sentences in small chunks makes it easier for the speech recognizer to work. The awkward pauses you’ll see between some sentences are necessary because of a bug in the prototype – the function that plays audio is not detecting the end of the stream correctly.
Presto uses Microsoft technology all the way – from the speech recognition to translation and then text-to-speech. I’ve added the camera feed support for two reasons: first, because Presto can be used as a presentation tool (hey, it’s ideal for conferences!); second, because in the future this technology added to some of the existing collaboration/communication products. Other uses may include video authoring, virtual classrooms, etc…
I don’t expect that Presto will follow TBot’s footsteps and become a product, but I’m hoping that it can raise attention to the possibilities of similar technologies.
Agora que TBot é estável e a nova versão está quase pronta, é hora de começar a pensar em outros protótipos. Após mais de 2 anos interagindo com usuarios do TBot posso dizer que aprendi muito e que uma das minhas primeiras suposições ainda se aplica: as pessoas se adaptam para obter melhores resultados das ferramentas que utilizam.
Com base em que eu tenha sido investigar o ainda outra maneira de combinar as peças existentes de tecnologia para construir algo novo. Todos sabemos que a Microsoft fez investimentos significativos em reconhecimento de fala e síntese, portanto, é possível – pelo menos em teoria – colocar tudo junto e construir um aplicativo de tradução de voz para voz. Não, Estou não falando tradutor Universal do capitão Kirk – ainda… Projeto Prersto ainda é muito limitado, mas funciona – e se você usar frases simples, curtas os resultados podem ser bastante razoaveis.
Acima estão dois vídeos: Inglês para Português e Inglês para Japonês (Takako me ajudou selecionando frases que poderia fornecer melhores traduções para Japonês)
Como você pode ver, Presto aproveita o fato das gramáticas de ditado livre funcionarem bem com fragmentos de fala curto – em outras palavras, quebrar sentenças longas em pedaços pequenos facilita o trabalho para o reconhecedor de voz. As pausas desajeitadas que você vai perceber entre algumas frases são devidas um bug no protótipo – a função que reproduz áudio não está detectando o final do stream corretamente.
Presto utiliza tecnologia Microsoft de ponta a ponta – do reconhecimento de voz para tradução e conversão de texto em fala. Adicionei o suporte para câmera por duas razões: primeiro, porque Presto pode ser usado como uma ferramenta de apresentação (ei, é ideal para conferências!); segundo, porque no futuro esta tecnologia por ser adicionada a alguns dos produtos de colaboração e comunicação existentes. Outras utilizações podem incluir autoria de vídeo, salas de aula virtuais, etc …
Não espero que Presto irá seguir as pegadas do TBot e se tornar um produto, mas tenho esperança de que ele pode aumentar a atenção para as possibilidades das tecnologias semelhantes.
We're almost there... TBot 2 is doing really well in the production environment serving thousands of translation requests daily, and things are really healthy. Yes, we still have bugs, and we haven't reached the same level of stability we used to have with the Live Agents implementation, however the main functionality is complete. And as you probably already noticed the good old friendly face is back!
Fixing an airplane while flying is always fun :-).
Nós estamos quase lá … TBot 2 está rodando bem no ambiente de produção que serve milhares de pedidos de tradução diariamente e as coisas são realmente saudáveis. Sim, ainda temos bugs, e ainda não chegámos ao mesmo nível de estabilidade que tinhamos com a implementação do Live Agents, no entanto, a funcionalidade principal está completa. E vocês devem ter notado que aquele rosto conhecido está aparecendo novamente – a imagem antiga voltou!
Concertar um avião durante o vôo é sempre divertido:-).
E a propósito: mais idiomas a ser adicionados em breve.
As some of you probably noticed, we’re now supporting Hebrew – one more language added!
Unfortunately, the prototype code is handling bi-directional sentences (the sentences that have both left to right and right to left words) very poorly, and I’ll need to work on getting this fixed as soon as possible. You will only notice the problem if you select Hebrew as your display language, but nevertheless it’s a bad bug.
Como alguns de vocês provavelmente notado, nós agora oferecemos Hebraico – mais uma linguagem adicionada!
Infelizmente, o código do protótipo está manipulando frase bidirecionais (sentenças que têm palavras esquerda para direita e palavras da direita para esquerda) muito mal e que precisarei trabalhar em conseguir corrigir o mais rapidamente possível. Você notará apenas o problema se você selecionar o hebraico como seu idioma de exibição, mas, no entanto, é um bug chato.
Eu publicaremos outra nota quando conseguir corrigir o problema.
The first week has gone by, and despite the many challenges we faced the new prototype is up and running. Why the emphasis on the word “prototype”? Well, unfortunately it seems some of users don’t realize yet that we had no options but to build a new infrastructure from the bottom up in order to keep TBot running.
The Live Agents platform was really stable and performed really well, and it was extremely convenient for a bot like ours. It also had some cool administrative tools that helped us monitor the health of the bot, and investigate connection issues, etc… They’ve invested a lot of engineering time on the product, and replacing it is no easy task.
That said, we’re taking the task seriously, and soon enough we’ll start testing the new services internally. TBot 2 Alpha is therefore a temporary implementation – something way better than the first MTBotPrototype that went live 2 years ago – that will help us keep the translator bot working for now.
The major challenges around developing a reliable infrastructure are not actually related to neither traffic volume (we have to support thousands of concurrent conversations) nor to the translation interface. Unfortunately, a great deal of development work has to go towards avoiding Denial of Service attacks, poorly formed packages and other techniques extracted from some of these “Hackers for Dummies” books. Called me biased, but honestly I think it’s just plain stupid to attack a free service just because you don’t like the company that provides it.
Also, the cost associated with building the mitigation for these attacks is significant. Not only we have to design and code around the offending contacts to prevent them from molesting others, but we also have to test these scenarios. Can it be done? Sure! Is it cheap? No, and budget is a real problem for a small team like ours.
I really wish that all self-proclaimed the hackers out there could do something better with their time – there’s so much yet to be invented. Also, if you don’t like TBot just build something better! We would all benefit from a good, healthy competition, and users would have multiple options. Now that’s a way to impress your friends in High School…
A primeira semana passou, e apesar dos muitos desafios que tivemos que enfrentar o novo protótipo continua rodando. Por que razão a ênfase na palavra “ protótipo ”? Bem, infelizmente, parece que alguns dos usuários não perceberam ainda que não tínhamos outra opção a não ser criar uma nova infra-estrutura basica para manter TBot em execução.
A plataforma do Live Agents era realmente estável e rodava muito bem, e foi extremamente conveniente para um bot como o nosso. Tinha também algumas ferramentas administrativas legais que ajudou-nos a monitorizar a saúde do bot e investigar problemas de conexão, etc … O time investiu muito tempo de engenharia do produto, e substituí-la não é tarefa fácil.
Dito isto, nós estamos levando a tarefa a sério , e em breve começaremos a testar internamente os novos serviços. TBot 2 Alpha, por conseguinte, é uma aplicação temporária – algo muito melhor do que o primeiro MTBotPrototype que lancei a 2 anos atras – que nos ajudará a manter o bot tradutor trabalhando por enquanto.
Os grandes desafios que encontramos ao desenvolver uma infraestrutura confiável não estão relacionados efectivamente nem ao volume de tráfego (temos de suportar milhares de conversas simultâneas), nem a interface de tradução. Infelizmente, muito tempo de desenvolvimento tem de ser gasto para evitar ataques de Denial of Services, pacotes mal formados e outras técnicas extraídas desses livros de “hackers para principiantes”. Podem me chamar de radical, mas eu sinceramente acho simplesmente estúpido atacar um serviço gratuito apenas porque você não gostar da empresa que o fornece.
Além disso, os custos relacionados com a implementação de medidas para a redução destes ataques são significativos. Não só em termos de design e código (para isolar os dos contactos transgressores e impedir que incomodem outros), mas tambem em termos de testes para todos estes cenários. Pode ser feito? Claro! É barato? Não, e grana é um problema serio para uma equipe pequena como a nossa.
Eu realmente gostaria que todos os autoproclamados hackers por ai fizessem algo melhor com seu tempo – tem tanta coisa ainda a ser inventada. Além disso, se você não gosta do TBot construa algo melhor! Todos beneficiam com uma boa e saudável concorrência, e os usuários teria várias opções. Isso sim seria um jeito legal de impressionar seus coleguinhas de Segundo Grau...
Our team continues to be quite active and shipping cool and useful tools. Recently, we added our first version of the Translation interface to Bing – directly from the search box!
Just type a sentence starting with “Translate” directly in the proper box, and you should get something like
If we can’t find an instant answer for the sentence you want to translate, we provide you a link to our page that will trigger an automatic translation:
Clicking on the link you get this:
Note that I used quotes in my example: sometimes it help with ambiguity. We’ll improve the service drastically in the coming releases, absorbing more markets and serving more instant answers.
Yet another offering from the little team that could!
Nossa equipe continua abastante activa e continuamos a produzir ferramentas interessantes e bastante úteis. Recentemente, adicionamos nossa primeira versão da interface de tradução instantanea para o Bing – directamente da caixa de pesquisa!
Apenas digite uma frase começando com “ translate ” directamente na caixa correcta, e você deve obter algo como mostrado na primeira figura acima.
Se não for possível encontrar uma resposta instantânea para a frase que deseja traduzir, nos fornecemos um link para nossa página que irá disparar uma tradução automática.
A terceira figura mostra o que acontece quando se clica no link.
Observe que usei aspas em meu exemplo: às vezes ela ajudar com ambiguidade. Nós vamos melhorar o serviço bastante nas próximas versões, adicionando mais mercados mais e servindo mais respostas instantâneas.
Things went ok on our first day of Alpha Test. No huge problems – just small annoyances that still bother me (why do people try to attack a free service that doesn’t harm anyone???). Anyway, I cleaned up the debugging information a little bit and redeployed the bot – I’m not sure how much traffic we’ll have over the weekend, but nevertheless it’s better to just be prepared.
hint: if you want to see all languages we currently support, type “tbot list” anytime…
As coisas andaram bem em nosso primeiro dia do teste Alpha. Sem maiores problemas – apenas pequenas bobagens que ainda me incomodam (por que razão tem gente que tenta atacar um serviço gratuito que não prejudicar ninguém???). Enfim, eu limpei um pouco as informações de depuração e reinstalei bot – não tenho certeza quanto tráfego teremos durante o fim de semana, mas, no entanto, é melhor apenas estar preparado.
Dica: se você desejar ver todas as línguas que suportamos, digite “tbot list” a qualquer hora…
We’re ready to start the Alpha Test program for the new prototype of the bot. This new version will help us keep the services running while our team finalizes the new infrastructure required to run TBot 2.
The new prototype will be using the old login – mtbot-en_us@hotmail.com – and it is designed to handle much more traffic than my first version. That said, I don’t expect it to be neither as fast nor as stable as the Live Agents version (well, it’s a prototype after all) so please be patient.
Here are the main differences between TBot and TBot 2 Alpha:
- TBot salutes you automatically without you having to type anything. TBot 2 Alpha requires a first message. - TBot 2 Alpha does not have a display picture - TBot 2 Alpha supports language auto detect as source language - TBot 2 Alpha support any-to-any translations - TBot’s “tbot stop” command just halted the translation; TBot 2 Alpha’s implementation kicks the bot out of the session (just like how “bot*bye” used to work) - TBot 2 Alpha does not implement “tbot start” - TBot 2 Alpha supports Polish (however the dialog messages are not perfect) - TBot 2 Alpha restricts the use of the special commands – only the person that started the conversation can change languages.
All these differences should not interfere with the normal operation: just invite the bot, select your languages as invite your friends!
Please try this new version and send me your comments – we’re working hard to make TBot even better!
Estamos prontos para iniciar o programa de Alpha testes para o novo protótipo do bot. Esta nova versão ajudará a manter os serviços em execução enquanto nossa equipe finaliza a nova infra-estrutura necessária para rodar TBot 2 .
O novo protótipo estará usando o login antigo – mtbot-en_US@Hotmail.com – e foi projetado para lidar com tmuito mais ráfego que a minha primeira versão. Dito isto, não espero que seja tão rápido nem tão estável quanto a versão de Live Agents (bem, trata-se de um protótipo), portanto seja paciente.
Aqui estão as principais diferenças entre TBot e TBot 2 Alpha:
-TBot saúda você automaticamente sem você ter de digitar nada. TBot 2 Alpha requer uma primeira mensagem. Alfa de 2 - TBot não tem uma imagem/icone -TBot 2 Alpha suporta idioma "auto detectar" como língua de origem -TBot 2 Alpha suporta traduções de qualquer lingua para qualquer lingua - O commando “ Tbot stop ” do TBot simplesmente suspende a tradução; a implementação de TBot 2 Alpha derruba o bot para fora da sessão (tal como como “ bot * bye ” funcionava) - TBot Alfa 2 não implementa “ tbot start” -TBot 2 Alpha suporta Polonês (no entanto as mensagens de diálogo não são perfeitas) -TBot 2 Alpha restringe o uso dos comandos especiais – apenas a pessoa que iniciou a conversa pode alterar idiomas.
Todas estas diferenças não devem interferir com o funcionamento normal: apenas convide o bot, seleccione seus idiomas e convide seus amigos!
Por favor tente esta nova versão e me envie seus comentários – estamos trabalhando arduamente para melhorar ainda mais TBot!
This is a significant change, and it will take us time to get to the same scalability levels Live Agents currently have. That said, we’ll be starting an Alpha test period soon – I’ll reactivate the good old mtbot-en_us login and everyone is welcome to try the new services. Just be aware that interruptions will happen as we fix bugs and add more features.
On that note, TBot 2 will have some of the new features our team announced last week: language auto detect and any-to-any translations. Also, some of the dialogs will change as we try to accommodate the new scenarios and language options.
We hope we can get the new version up and running soon, and meanwhile the Alpha Test version will be operating at limited capacity.
Esta será uma mudança significativa, e eu acredito que vai demorar para que possamos alcançar o mesmo nivel de performance que a plataforma do Live Agents oferece. Para tanto, vamos comecar um periodo de Alpha Test em breve - vou reativar o velho nick mtbot-en_us e todos estão convidados a testar os novos serviços. So fiquem avisados que teremos interrupções de tempos em tempos para corrigir bugs e atualizar o codigo.
Nessa nota, TBot 2 terá alguns dos novos recursos de nossa equipe anunciou na semana passada: Detectar idioma automaticamente e traduções de qualquer idioma para qualquer idioma. Além disso, alguns dos diálogos serão alterados para tentar acomodar os novos cenários e opções de idioma.
Esperamos que possamos ter a nova versão pronta e rodando em breve e enquanto issoa versão de Alfa teste vai estar a funcionar com a capacidade limitada.
We have tons of new features, but my favorites are here:
Language auto-detect: if you don’t know what language you want to translate from, we’ll find it for you. Translations from any language to any language: remember good old “bot:jump” command? Here it is, implemented the right way – you can now select any of our languages as source, and translate to any target language as well.
The new features work with all interfaces – IE8, Bilingual Viewer, toolbars – so you can start playing with them anytime.
Temos um monte de novos recursos, mas meus favoritos estão aqui:
Detectar automaticamente a língua: se você não souber qual idioma que pretende usar como fonte, o tradutor descobre para você.
Traduções de qualquer língua para qualquer idioma: Lembre-se bom antigo comando “ bot:jump”? Aqui esta, implementado da forma correta – você pode agora selecionar qualquer uma das nossas línguas como fonte e traduzir para qualquer língua.
As novas features funcionam com todas as interfaces - IE8, Bilingual Viewer, toolbars - portanto vcs podem utiliza-las a qualquer instante.
I’m slowly trying to come back online – I’ve been away for all the wrong reasons – and I guess I couldn’t find a better topic to brag about: we’re finally making some progress with our Office Integration story.
Our team has made significant improvement on all fronts (I still own you some samples describing how to use our new APIs). This is one of many features we have worked on: a full installer that adds our services to the Research pane.
Those of you who already tried and used the Research SDK interface (http://mtbotprototype.spaces.live.com/blog/cns!3F1A4578DEE8B!593.entry) probably will see nothing special about the announcement, but many many end users still don’t know about us, much less how to link Word to our services. The installer will make their live much easier.
Also, we have great news coming soon. Our next release will be major – tons of new, cool stuff.
Estou aos poucos voltando a blogar - estive ausente por motivos muito esquisitos e prefiro nao comentar. Acho que nao poderia ter escolhido um topico mais interessante para retornar: estamos finalmente conseguindo progredir com nossa integracao com o Office.
Nossa equipe fez melhorias significativa em todas as frentes (ainda devo a vocês algums exemplos descrevendo como usar nosso novas APIs). Este é apenas um dos muitos recursos que temos desenvolvido: um instalador completo que adiciona nossos serviços para o painel de pesquisa do Word:
Aqueles que já tentaram e usaram o Research SDK(http://mtbotprototype.spaces.Live.com/blog/CNS!3F1A4578DEE8B!593.Entry) provavelmente nao iram notar nada de especial sobre esse anuncio, mas a maioria dos dos usuarios sequer conhecem nossos servicos, muito menos sabem como configurar o Word para utiliza-los. O instalador vai tornar tudo bem mais facil.
A proxima versao do nosso sistema esta' quase pronta, e vem com um monte de novidades. Muita coisa legal, que com certeza vai facilitar a vida de muita gente.
Last week my group announced the our new generation of translation tools as Tech Preview during MIX09- http://www.microsofttranslator.com/mix09/. The toolset includes a web page translation widget and three interfaces to our services (AJAX, Rest and SOAP). Now anyone can write their own application taking advantage of our machine translation services.
Na semana passada o meu grupo anunciou a nossa nova geração de ferramentas de tradução como visualizar Tech durante MIX09- http://www.microsofttranslator.com/mix09/. O conjunto de ferramentas inclui um widget de tradução de página da web e três interfaces aos nossos serviços (AJAX, Rest e SOAP). Agora todos podem escrever sua própria aplicação aproveitando nossos serviços de tradução de máquina.
Escreverei sobre cada componente de forma independente, mas por agora você pode aprender mais verificando a cobertura de imprensa e blogue da nossa equipe
It’s been a while since I refreshed the blog. Many things going on – some not so good – but I finally found some time between building code and running tests to update you guys on a couple of fronts:
First, my favorite topic: TBot crossed the 1/2 million (yes, 500K!) users threshold a couple of weeks ago. Who would know that the pet project would be so popular!
TechFest 2009: I presented the Multilanguage chat room project this year. It was the very same basic version I used for the Photosynth Backchannel sessions, plus a couple of additional features. I’ll blog about it in details once I get approval from the legal department (yes, I learned my lesson with TBot and I’m getting covered this time around!).
For now, here are some (bad) pictures from my booth:
I got some cool feedback, and some people
made great suggestions – I hope I have time to play with the code and try some things out.
Foi um tempo desde que atualizados o blog. Muitas coisas acontecendo – alguns não tão boas – mas finalmente encontrado algum tempo entre a compilação de código e execução testes para atualizar vocês sobre um par de frentes:
Primeiro, meu favorito tópico: TBot cruzou o 1/2 milhão (sim, 500 K!) limiar de usuários de duas semanas atrás. Quem saberia que o projecto de pet seria tão popular!
TechFest de 2009: apresentei o projecto do quarto do bate-papo Multilingual este ano. Foi muito a mesma versão base que usei para as sessões do Photosynth Backchannel, acrescido de um par de recursos adicionais. Eu vou blogar sobre o assunto em detalhes depois de obter aprovação do departamento jurídico (sim, aprendi que o meu lição com TBot e estou me cobrindo desta vez!).
Por enquanto, aqui estão algumas imagens (meio ruins) do meu estande (ver acima).
Recebi alguns comentários legal e algumas pessoas fizeram sugestões muito boas – espero que tenho tempo para brincar com o código e experimentar algumas coisas.
In time of bad news it’s good to be able to share at least some good bit of information coming from our team: we’re moving forward with our plans to add more languages and this month we’ve added Polish. So now TBot can understand Polish too!
The list is growing, isn’t it? Stay tuned – much more to come!
Em tempo de más notícias e’ bom para ser capaz de compartilhar pelo menos algumas boas informações provenientes de nossa equipe: nós continuamos investindo em nossos planos para adicionar mais linguagens e este mês estamos adicionado polones. Agora TBot pode compreender polones tambem!
A lista está crescendo, ne'? Fiquem ligando, tem mais coisa vindo por ai!
After a long hiatus I’m finally back… Things have been quite busy around here and the group keeps on working on improving the infra-structure, and today I can share some good news with you: TBot now supports Russian to English (and vice versa)! The new language is available as source and target, much like any other language we already support:
We already have more than 300 thousand users, and it’s not hard to predict that the more language pairs we add the more people we’ll be reaching… And just to be clear – Russian is also supported by all other interfaces our group provides – want to read the Pravda? Try this: http://www.windowslivetranslator.com/BV.aspx?ref=Internal#http://www.pravda.ru&lp=ru-en
There’s a lot more to come, so stay tuned – really, I mean it!
Após um longo hiato finalmente estou de volta… As coisas andam muito corridas por aqui e o grupo continua a trabalhar em melhorias na infra-estrutura, e hoje posso compartilhar algumas boas notícias com vocês: TBot agora oferece suporte de russo para inglês (e vice-versa)! O novo idioma está disponível como origem e de destino, como qualquer outra língua que oferecemos:
Já temos mais de 300 mil usuários, portanto não é difícil de prever que a cada novo par de línguas que adicionamos mais pessoas iremos atingir… E apenas para deixar claro – russo também é suportado por todas as outras interfaces que o nosso grupo fornece – deseja ler a Pravda? Experimente isto: http://www.windowslivetranslator.com/BV.aspx?ref=Internal#http://www.Pravda.ru&LP=RU-en
Tem muito mais coisa boa vindo por ai, então fique ligado!
(My laptop is fried, so bear with me as I push my bytes thru this "over simplified" editor)
A couple of weeks ago the internal Microsoft weekly publication (MSW - Inside Track) ran an article about our group, staring TBot . They interviewed me, Andrea (our PM) and Erik (TBot's dev) - not many Microsoft employees know about our products so it was a pretty good PR opportunity.
The article got some nice feedback - one thing let to another and I ended up interviewed again, this time by Scott Hanselman for his podcast sessions (Hanselminutes). Well, I'm not exactly a very social person, so you can guess what was going thru my mind when I realized that I was going to need to speak on a microphone for more than 15 min - in English! Not to mention I was trying really hard not to sound too stupid...
Anyway, click on the link and have some fun - at my expenses, of course...
Cheers,
Helvecio
(O meu laptop quebrou, portanto eu vou ter que uzar um editor mais simples, sem traducao...)
A algumas semanas atras o jornal interno da Microsoft (MSW - Inside Track) rodou um artigo sobre o nosso grupo, estrelando TBot. Eles intrevistaram a mim, a Andrea (nossa PM) e o Erik (o dev do TBot). Muita gente da Microsoft nao conhece o grupo, entao foi uma oportunidade muito legal de mostrar nosso trabalho.
O artigo teve uma repercussao bem legal. Uma coisa levou a outra e eu acabei sendo convidado pelo Scott Hanselman para articipar em uma das suas podcast sessions (Hanselminutes). Bom, nao sou uma pessoa muito social entao imaginem o que passou pela minha cabeca quando eu descobri que ia ter que falar em um microfone por mais de 15 min - e em Ingles! Sem dizer que eu tiver que tentar nao parecer muito estupido...
Bom, cliquem no link e divertam-se - por minha conta...
One of the key factors that helped ship TBot was the adoption of the LiveAgents platform (http://dev.live.com/agents/). The platform includes all messaging pipes, administration tools and the runtime for a scripting language call Buddyscript. TBot is written in BuddyScript, and was extended to interface with our translation services.
There's a bunch of information around about LiveAgents, but I'd like to share my observations as a user anyway:
Stability and reliability: we had no hiccups since we went live with TBot on the 3rd of September... No problems whatsoever - it's amazing compared to the crappy C# framework I used for the prototype...
Scalability: we have added more than 150 thousand users in 24 days and the engines didn't even blink! In average we have more than 500 conferences active, and translations flow thru pretty fast.
I'm a numbers freak so I love the administration tool - you can get tons of data points to help you understand how your bot works and identify traffic patterns
In summary: if you're considering building a bot I *highly* recommend LiveAgents - click here and start reading about it.
Um dos factores chaves que ajudaram a lançar TBot foi a adopção da plataforma do LiveAgents (http://dev.live.com/Agents/). A plataforma inclui todos a infraestrutura de mensagens, ferramentas de administração e o runtime de uma linguagem script chamada Buddyscript. TBot é escrito em BuddyScript e foi extendido com nossos serviços de tradução.
Há um monte de informações em torno sobre LiveAgents, mas eu gostaria de compartilhar minhas observações como um usuário, mesmo assim:
Estabilidade e confiabilidade: não hiccups tivemos, desde que entramos ao vivo com TBot em 3 de Setembro... Sem problemas quaisquer - surpreendente em comparação com o framework C# com que usei para o protótipo...
Escalabilidade: acrescentámos que mais de 150 mil usuários em 24 dias e os motores ainda não piscaram! Em média, temos mais de 500 conferências activas e traduções continuam bem rápidas.
Eu sou um freak por números portanto eu adoro a ferramenta de administração - você pode obter toneladas de pontos de dados para ajudar a compreender como funciona seu bot e identificar os padrões de tráfego
Em resumo: se você estiver considerando a criação de um bot, eu *totalmente* recomendo LiveAgents - clique em aqui e comecem a ler sobre o assunto.
It's really cool what those guys are doing with respect to the Virtual Health Library - there's a lot going on and it's great to see research in LATAM getting proper exposure - check http://www.bireme.br/php/index.php for more details.
Machine Translation is a great match for document repositories, and integration with our Bilingual Viewer couldn't be easier (it boils down to http query parameters). I'm hoping that we can get some traction on adoption, and get some other sites to add us as a service.
É realmente interessante o que está sendo feito em relação a Biblioteca Virtual de Saude - tem muita coisa acontecendo e é muito bom ver a pesquisa cientifica na America Latina ganhar exposição - cheque http://www.BIREME.br/PHP/index.php para obter mais detalhes.
Tradução automática é uma grande opção para repositórios de documentos, e a integração com o nosso Bilingual Viewer não poderia ser mais fácil de (se resume a parâmetros de consulta na query http). Eu espero ter gerado algum burburinho que facilite a adopção e venha a ajudar outros sites para adicionar-nos como um serviço.