Keyword Spotting in Speech [closed] - api

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 6 years ago.
Improve this question
Is anyone aware of a Keyword Spotting System that is freely available, and possibly providing APIs ??
CMU Sphinx 4 and MS Speech API are speech recognition engines, and cannot be used for KWS.
SRI has a keyword spotting system, but no download links, not even for evaluation. (I even couldn't find anywhere a link to contact them for their software)
I found one here but it's a demo and limited.

CMUSphinx implements keyword spotting in pocketsphinx engine, see for details the FAQ entry.
To recognize a single keyphrase you can run decoder in “keyphrase search” mode.
From command line try:
pocketsphinx_continuous -infile file.wav -keyphrase “oh mighty computer” -kws_threshold 1e-20
From the code:
ps_set_keyphrase(ps, "keyphrase_search", "oh mighty computer");
ps_set_search(ps, "keyphrase_search);
ps_start_utt();
/* process data */
You can also find examples for Python and Android/Java in our sources. Python code looks like this, full example here:
# Process audio chunk by chunk. On keyphrase detected perform action and restart search
decoder = Decoder(config)
decoder.start_utt()
while True:
buf = stream.read(1024)
if buf:
decoder.process_raw(buf, False, False)
else:
break
if decoder.hyp() != None:
print ([(seg.word, seg.prob, seg.start_frame, seg.end_frame) for seg in decoder.seg()])
print ("Detected keyphrase, restarting search")
decoder.end_utt()
decoder.start_utt()
Threshold must be tuned for every keyphrase on a test data to get the right balance missed detections and false alarms. You can try values like 1e-5 to 1e-50.
For the best accuracy it is better to have keyphrase with 3-4 syllables. Too short phrases are easily confused.
You can also search for multiple keyphrase, create a file keyphrase.list like this:
oh mighty computer /1e-40/
hello world /1e-30/
other_phrase /other_phrase_threshold/
And use it in decoder with -kws configuration option.
pocketsphinx_continuous -inmic yes -kws keyphrase_list
This feature is not yet implemented in sphinx4 decoder.

Related

Bitdefender detects my console application as Gen:Variant.Ursu.56053 [closed]

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 2 years ago.
Improve this question
I've developed a console application that does a lot of routines, but the Antivirus detected it as a malware of type Gen:Variant.Ursu.56053.
How can I fix this without touching the antivirus policy because it's not allowed for us to create any exceptions for any found threat.
I'd like also to mention that If i changed the assembly name the antivirus is no longer consider the new file virus, but it looks that it considers it virus because I invoke it many times, with different parameters.
Any suggestions, I'm really suffering from this,
I know this thread is very old, but for people which will come here - to fix this issue simply add icon to the program, im not even joking, it works.
FALSE +VE ALERT!!! Many antivirus engines have name pattern matching as their Swiss-knife to detect malicious files,If any of them matches the name they have in their Database then you can't do much about it. Its simply became a False +ve !!! Also your assembly name should consist of the technology area and component description, or company name and technology area (depending on your preferance). So try changing it to more specific one. :)
Assuming that you are talking about .NET (with relation to Visual Studio) For Ex:
Project: Biometric Device Access
Assembly: BiometricFramework.DeviceAccess.dll
Namespace: ACME.BiometricFramework.DeviceAccess
I had the same problem with Bitdefender, but mine is a Gen:Variant.Ursu.787553 when I tried creating a .exe file from my C program.
I simply moved it out of quarantine manually, and it worked well. You might have to that every time you build a new program. Hope this helps!

Is there an API call I can make to get the number of App Engine Instances I'm running? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 3 years ago.
Improve this question
It's a pretty simple question, really. I want to report the number of running instances to datadog, along with a bunch of my other stats.
There's an irony to the fact that I search Google Web Search for how to do something in Google App Engine and get the crappiest possible result, every time: The Google App Engine documentation pages.
You should also be able to use the recently GA'd App Engine Admin API to figure this out. The nice thing about the admin API is that it's going to work for both standard and flexible:
https://cloud.google.com/appengine/docs/admin-api/
Here's the endpoint that returns all of the instances for a given service/version:
https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions.instances/list
Depending on the language you're using, there's usually a nice wrapper in the form of a "Google API client" + language library.
Hope this helps!
I hate it when SO questions only end up with partial answers, so here's a complete, working example. If you paste it into your interactive console, it should work for you. (Don't forget to set the versionsId to whatever your default app version is. If you know how I can get it to use the default version, please post a comment. 'default', '*', 'any', etc. all no da workie.)
Strictly achieved by trial and error:
import httplib2
import logging
import time
import webapp2
from google.appengine.api.app_identity import app_identity
from googleapiclient.discovery import build
from oauth2client.client import GoogleCredentials
credentials = GoogleCredentials.get_application_default()
service = build('appengine', 'v1', credentials=credentials)
appsId = app_identity.get_application_id()
version_list = service.apps().services().versions().list(
servicesId='default', appsId=appsId).execute()
for version in version_list['versions']:
if not version['id'].startswith('ah-builtin'):
rpc_result = service.apps().services().versions().instances().list(
versionsId=version['id'], servicesId='default',
appsId=appsId).execute()
if rpc_result:
instance_list = rpc_result['instances']
else:
instance_list = []
print version['id'], len(instance_list)
I agree it's hard to find, the closest one I can find is this
google.appengine.api.modules.modules.get_num_instances(module=None, version=None)source
Return the number of instances that are set for the given module
version.
This is only valid for fixed modules, an error will be raised for automatically-scaled modules. Support for automatically-scaled modules may be supported in the future.
https://cloud.google.com/appengine/docs/python/refdocs/google.appengine.api.modules.modules
Btw you can also have monitoring from the StackDriver which has metric for total instance
If you're trying to collect stats, you might want to use the Stackdriver Monitoring API to collect the timeseries values that Google has already aggregated.
In particular, the list of App Engine Metrics is here. For example, system/instance_count is the metric indicating the number of instances App Engine is running.

Complete List of Commands of SELENIUM IDE [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 5 years ago.
Improve this question
I m new to selenium and in first phase i am trying hard to grasp IDE commands but the main problem that i m facing s that i m unable to search a Single helping material which clearly tell me the following points if any one knows kindly refer me
Complete List of Commands
Commands with reference to scenario(e.g when we use asserttext or
verify text)
what will be the values of Target and value.
http://release.seleniumhq.org/selenium-core/1.0.1/reference.html
This is the complete reference that contains
All the commands supported.
Descriptions to the methods including explanation of the difference between assert and verify.
The target is usually the locator of the element. The value is usually a parameter of the method - for instance, when you're typing into a field, the value would be the text you want to type in. More in the reference of every single command - not all the commands take both target and value, some have their values restricted etc. See your particular command to know what parameters it needs.
Anyway, the most helpful piece of documentation for IDE is still the official docs even though they don't really have a list of all commnads.
1) If you are using the Selenium ide for firefox the full list of commands is visible by clicking the down arrow in the command section.
Failing that there should be plenty of useful information in the selenium documentation
http://docs.seleniumhq.org/docs/index.jsp
2) This one I can't help with very much, as I generally use asserts everywhere. If i want my script to fail at a particular point if text is not present in java I use something like
assertTrue(driver.getPageSource.contains("Text to verify");
3) Target is the element and value is the current value of that element.
Example - Assert that text is present
Command - assertTextPresent
Target - Blank
Value - Text to search for
Example 2 - Field contains certain text
command - assertTextPresent
Target - id=idOfField (id, xpath, css, name etc)
Value - Text to search for
http://software-testing-tutorials-automation.blogspot.in/search/label/selenium%20ide
This website have a lot of IDE examples and tutorials. If you are beginner if so this website is the best I think.
I think this is the most complete and most readable list of the selenium IDE commands:
http://www.frontendtest.org/blog/selenium-ide-commands/

why is LaTeX / pdflatex compiler so 'funky' with multiple compiles necessary and bogus error messages, etc, compared to c++? [closed]

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this question
Is there a simple explanation for why the latex / pdflatex compiler is funky in the following two ways:
1) N multiple compiles are necessary until you reach a "steady state" version. N seems to grow up to around 5 or 6 if I use many packages and references.
2) Error messages are almost always worthless. The actual error is not flagged. Example:
\begin{itemize} % Line 499
\begin{enumerate}
% Comment: error: forgot to close the enumerate block
\item This is a bullet point.
\end{itemize} % Line 503
result: "Error on line 1 while scanning \begin{document}", not very useful.
I realize there is a separate "tex exchange" but I'm wondering if someone knowledgeable about c++, java, or other compilers can provide some insight on how those seem to support single-compile and proper error localization.
Edit: this document seems like a rant justifying the hacks in latex's implementation, but what about latex's syntax/language properties make the weird implementation necessary? http://tug.org/texlive/Contents/live/texmf-dist/doc/generic/knuth/tex/tex.pdf
From a LaTeX point of view:
You should at most require 3 (...maybe 4) to reach a steady state. This depends not on the number of packages, but possible layout changes within your document. Layout changes cause references to move, and these references need to be correct (hence the recompile until they don't move).
Nesting of environments is allowed (although this does not address your problem directly). Also, macro definitions act as replacement text for your input. So, even though you write \end{itemize}, it is actually transformed into a bunch of other/different (primitive) macros, removing the obvious-to-humans structure and consequently also the bizarre error message. That's why some of the error messages are difficult to interpret.
wrt. point (2):
Considering that most of the errors are picked up while parsing macro defenitions that get expanded, My guess is that errors wouldn't be useful to the user even if they contained locale and specific causes, because they don't translate well into what you see when you view the code.
Still, it would be useful if they were just a little bit more explicit :/

Rendering UML diagrams from text files [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 8 years ago.
Improve this question
Is there any good tool or tool-chain that allows UML images in the .svg format to be created from a textual source file?
The reason for this question is that I want to automate the generation of these images to avoid having to manually create and update this set of images.
I've created a list of tools that accept a textual model description as input here:
http://modeling-languages.com/uml-tools-textual-notations-define-uml-models/
PlantUML is a good tool which converts text into standardized uml diagrams.
you have this as a plugin for confluenze
UMLGraph is a program for generating UML diagrams (primarily Class Diagrams and Sequence Diagrams) from text based descriptions. It is intended to be used with java source code, but with some alterations, C++ style source code can also be used as described by this blog entry.
Quote from the UMLGraph website:
The GNU plotutils pic2plot program can
then process the sequence diagram to
create a PNG, PNM, (pseudo)GIF, SVG,
AI, Postscript, CGM, FIG, PCL, HPGL,
Regis, or TEK drawing.
There is another tool called as JS Sequence Diagrams, to allow generation of UML sequence diagrams from simple text.
It uses underscore.js and Raphaël to build the diagrams.
It is Simplified BSD licensed and the source code available at GitHub
I know this is an old thread but still, I'd like to share one more tool which I find extremely helpful and user-friendly: https://www.websequencediagrams.com/
This is an online tool that will get you up and running in no time.
It also features a variety of pretty nice layouts out of the box.
Here are two for example:
Enterprise Architect does quite a good job in creating diagrams automatically, from source code (in various languages) as well as from databases or other sources.
For sequence diagrams, I really like Mscgen. Simple text format in, lovely diagrams out.
"Mscgen is a small program that parses Message Sequence Chart descriptions and produces PNG, SVG, EPS or server side image maps (ismaps) as the output" -http://www.mcternan.me.uk/mscgen/
e.g. Input of the form:
# MSC for some fictional process
msc {
hscale = "2";
a,b,c;
a->b [ label = "ab()" ] ;
b->c [ label = "bc(TRUE)"];
c=>c [ label = "process(1)" ];
c=>c [ label = "process(2)" ];
...;
c=>c [ label = "process(n)" ];
c=>c [ label = "process(END)" ];
a<<=c [ label = "callback()"];
--- [ label = "If more to run", ID="*" ];
a->a [ label = "next()"];
a->c [ label = "ac1()\nac2()"];
b<-c [ label = "cb(TRUE)"];
b->b [ label = "stalled(...)"];
a<-b [ label = "ab() = FALSE"];
}
Produces output like this:
the free UML tool JUDE allows UML diagrams to be created from Java source code. I don't know if it does for other languages.
If you like JS Sequence Diagrams, you should also check out UMLet which has a similar premise (being able to define diagrams via text, similar to a graphviz description) and let the tool figure out the graph and positioning.
IMHO, this approach hasn't gotten enough publicity or traction. Full round-trip source analysis is difficult, and in many cases "too much work" for simple design conversations or quick documentation. The complexity of layout in enterprise tools prevents all but the biggest docs from using them. And Agile suffers from no-doc because the price is too steep.
For those reasons, I'd like to see more tools take this approach.