Arabic Spell Checker API - spell-checking

I searched about spell checker API from google but the arabic language is not supported there if any one can help me to find the AP that support arabic language or any other good idea.

AFAIK none of Google's spell check APIs are documented/supported, and as such they could break at any time.
It is possible to spell check using the Google translate api:
http://translate.google.com/translate_a/t?client=t&text=كيف حاك&sc=1
Returns:
[[["كيف حاك","كيف حاك","",""]],,"ar",,,,,["كيف \u003cb\u003e\u003ci\u003eحالك\u003c/i\u003e\u003c/b\u003e","كيف حالك"],[],33]
Scroll to the right and you'll see the corrected results كيف حالك at the end.
The sc=1 parameter includes the spell check in the results. You'll have to figure out how to parse the JSON results to get the corrected spelling,

You could try this one:
https://github.com/Arabic-Spell-Checker/spellchecker-api-client
It has a REST API and provides dictionary management functionalities.
Disclaimer: I am the developer of this.

Related

How to use Phonetic or Phoneme pronunciation in google text to speech?

I have been trying for a while to get Phonetic or Phoneme pronunciation working with google's text to speech but have not managed to get it performing consistently.
I have managed to get limited results from using https://tophonetics.com/
It translated "The cow went mad." to "ðə kaʊ wɛnt mæd." but the 'the' 'ðə'
was not audible. And when I tried "ðɪs ɪz səm fəˈnɛtɪk tɛkst ˈɪnˌpʊt".
Are there any SSML codes to define phonetic blocks of text,
that can be this format "D,Is Iz sVm f#n'EtIk t'Ekst 'InpUt"
can be used instead of "ðɪs ɪz səm fəˈnɛtɪk tɛkst ˈɪnˌpʊt"
"
Google Text-to-Speech supports the <phoneme> tag since at least spring 2021.
However, there are a lot of potential gotchas to overcome:
The demo page filters out <phoneme> tags on the client side before they even reach the API. (It does the same with the <voice> tag as pointed out here)
As with Microsoft Azure Text-to-speech (see the other answer for details), each language only supports a limited set of phonemes ("letters") that can be used.
If you use an unsupported one, the phoneme tag is completely ignored without any warning. So the official example <phoneme alphabet="ipa" ph="ˌmænɪˈtoʊbə">manitoba</phoneme> does not work with any English variant but en-US, since all others lack the "o" or "oʊ" phoneme.
It's unclear if you need to use the v1beta1 API (which I can confirm is working) or if version v1 is also ok.
There is the SSML tag <phoneme> that serves your purpose.
Unfortunately, it's currently not supported in Google Cloud Text-to-speech. The available subset of SSML tags for Google Cloud is listed in the documentation. The <phoneme> tag is not in this list. An experiment using Google Cloud's text-to-speech-demo confirms that the phonemes are ignored. The content of the tag is being read as ordinary text, as has already been remarked by #Trevor in the comments.
The <phoneme> tag is, however, being supported by Microsoft Azure Text-to-Speech and Amazon Polly. In both cases, the available phonemes are limited to those available in the language being used (see here for Azure and here for Polly). The Azure documentation isn't 100% clear about the exclusion of out-of-language phonemes, but practical experiments with the Azure Text-to-Speech demo confirm that they're not working properly. In some cases, they at least seem to be replaced by the nearest available equivalent in the language used.
Being restricted to the phonemes of one language severely limits the usefulness of the phonemes tag. E.g., you can't used the feature to embed correctly pronounced content in a second language, as the second language will usually have some phonemes that are not available in the first language. Concrete language pairs in which each language has some phonemes that are not available in the other one are English/German, Spanish/German, English/Spanish.

Using different intonations with Watson text to speech

I am developing a PoC using Watson text to speech and Watson conversation.
Sometimes, the chatbot needs to ask a question, so I'd like text to speech to synthesize the voice using an interrogation intonation.
Is it possible to be done?
Watson Text to Speech supports SSML, and has expressive SSML tags.
The one you want to use is Uncertainty. As it is defined as "conveys an uncertain, interrogative message".
Example:
<express-as type="Uncertainty">
Could she still be in the office? She told me that she might leave early.
</express-as>
More details on it's usage is here:
https://console.bluemix.net/docs/services/text-to-speech/SSML-expressive.html#the-express-as-element
Yes, you can certainly use text-to-speech (TTS) for output and speech-to-text (STT) for input. You would need to use a middleware or app layer to drive the conversation and route the input/output to the other services (see "how to use" in the docs).
I have used the following TJBot recipe as a simple and good started for some projects: https://github.com/damiancummins/tell_the_time
Unfortunately Concatenative TTS may have problems to create correct intonation in questions. If you think it happens consistently or too often please open a bug.
If you have a specific question which gets incorrect intonation try to rephrase it a little bit if possible. A useful trick for this voice could be to use double question mark '??'

SSML using Chrome TTS

I'm trying to give a little more clarity to TTS sentences by indicating emphasis, etc. I'm using the Chrome TTS API, which indicates that it accepts SSML-formatted documents in addition to raw text.
After many attempts, and a reading a few comments on the web, it doesn't look like this is actually supported, or possibly that this is up to individual voices for implementation.
Does anyone know:
Has SSML been abandoned under Chrome?
If not, is there any indication whether they expect to support it via native voice, or they're hoping that someone else will implement?
Do any Chrome voices currently exist that support this?
Thanks!
I'm a Chrome engineer. SSML support has not been implemented yet, but it's planned. Obviously not all engines would support it, but when we implement SSML support we'll also implement support for stripping SSML from engines that don't support it.
Sorry the documentation is misleading here.
Star this bug to express interest and get notified when it's fixed: https://code.google.com/p/chromium/issues/detail?id=88072
If anyone's looking at this later, you can control prosody on Mac Chrome using Apple's native command syntax, at least for the default voices:
the square root of [[pbas +4]] 2 [[char LTRL]]a[[char NORM]] to the [[pbas +4]] 14 [[char LTRL]]x[[char NORM]]
Documented here.

How does Safari's reader feature work?

I want to add a similar feature to a tool I'm making. I'm interested in how it works code-wise. I want to be able get an html page and exclude all but the article.
The Readability project does something similar for chrome and iOS. I'm not sure how it detects the content automatically but I know that Readability has an API for people who want to integrate it's features. You might want to check that out.
http://www.readability.com/learn-more
If you're working with Ruby, you could use Pismo. It extracts an article from a given document.

Google suggest API does not work with Chinese locale

I have a problem with Google suggest API when using Chinese locale. I am picking Chinese hieroglyphs at random and use the REST API to retrieve suggestions. Unfortunately, Google always return an empty list of suggestions (I am completely sure, that I convert my request in utf-8, and it is working fine with other languages, ex. Russian):
Sample request:
http://suggestqueries.google.com/complete/search?qu=%E9%80%9F
Google answer:
window.google.ac.h(["速",[]])
Does anyone know how to retrieve suggestions for Chinese locale? Maybe I am missing some flags or something? Maybe there is an official document from Google, saying that Chinese is not supported? And are there any people from China, using Google toolbar? Does it really work? I'd appreciate any help!
If it matters, I am writing a simple WinAPI application, using C++...
http://googleblog.blogspot.com/2009/03/local-flavor-for-google-suggest.html says, at the bottom, that google suggest now supports "155 domains in 51 languages." This implies a possible solution, which is that you need to use the relevant domain.
http://suggestqueries.google.cn/complete/search?qu=%E9%80%9F
gives me
window.google.ac.h(["速",[["速腾","2,020,000 结果","0"] ...
A bit of experimentation shows that I'm able to get results for japanese only from google.co.jp, but not from google.com. I'm in Japan, YMMV.
Hmm I don't know it seems to work for me. e.g
http://suggestqueries.google.com/complete/search?qu=%e6%9c%a8
yields
window.google.ac.h(["木",[["木村了","297,026 results","0z"]]])