Speech Recognition using HMM and VQ - Code Updates

Hey guys,

I've done some minor changes to the Speech Recognition code that I pushed to github/googlecode couple of years ago. As I received several attention/queries from readers/students all over the world regarding couple of minor bugs within the project, I thought its time ( better late than never :P ) to address them into the code.

Significant changes are on:

- Exception handling
- File handling
- File (recorded WAVE file, VQ codebook, HMM models) save path corrected
- Delta calculation fixed when regression window is less than number of frames ( when a short audio sample is recorded)

I've also uploaded training audio samples for few  words, trained Vector Quantization coebook and trained HMM model file for the words.

If you wish to add/train more words, please use the GUI - "HMM_VQ_Speech_Recognition" class. Just a note, you need to re-train both VQ and HMM for each word that you add.

Code :

https://github.com/gtiwari333/speech-recognition-java-hidden-markov-model-vq-mfcc

Report File (contains both Speech and Speaker recognition)

http://ganeshtiwaridotcomdotnp.blogspot.com/2011/06/final-report-text-prompted-remote.html

I hope everyone will benefit from this. Keep coding, keep learning. Please let me know if you see any issues.

Thank you!

Ynaxdh - answer acronym in Yeoman generator

Meaning of Ynaxdh in Yeoman generator

Here the complete list of options/meanings:

  • Y: yes (Default)
  • n: no
  • a: always yes (yes to this question and all others)
  • x: exit
  • d: show the differences between the old and the new file
  • h: help, list all options

Notes :   

  • If you don't remember this definitions you can always enter h and see the list.
  • Also in the new version, when you enter one of the letters you will see the definition showing behind the question so that you can verify your answer before pressing Enter key.
  • The one in uppercase is the default one. If that is your choice, you can just hit enter.

QC/QA/Software Testing Training Videos Free

I've listed some useful videos that would be beneficial for  beginners or some one who wants to understand software testing from scratch. These are free and best  videos that I found on YouTube.


You can watch these in sequence. The first three videos discusses the fundamental and the 4th and 5th playlist has the information in depth.

1) Open Lecture by James Bach on Software Testing

https://www.youtube.com/watch?v=ILkT_HV9DVU


2) SOFTWARE TESTING DEMO - Understand QA !!

https://www.youtube.com/watch?v=oFLAZj9GIoA


3) Software Testing Tutorial for beginners

https://www.youtube.com/watch?v=vwTHeDTqhTI


4) Manual Testing Tutorials: 34+ videos


 

5)Software Testing Videos: 9+ videos

Java Tutorials - Kindle epub/mobi format

Learning the java language can be tough if you follow wrong documents. It's always best to follow the official tutorials provided by Oracle. They have provided all the Java Tutorials which are present on its website in ePub and mobi format.

You can download all of them at
http://www.oracle.com/technetwork/java/javase/java-tutorial-downloads-2005894.html

Check for the latest version of above page. Currently the link contains docs for Java8. It will prompt you the link for new version once later versions are released.

git command cheat sheet - short description

GIT command cheat sheet with short descriptions


Git taskNotesGit commands
Tell Git who you are Configure the author name and email address to be used with your commits.Note that Git strips some characters (for example trailing periods) from user.name. git config --global user.name "Sam Smith"
git config --global user.email sam@example.com
Create a new local repository
git init
Check out a repository Create a working copy of a local repository: git clone /path/to/repository

For a remote server, use: git clone username@host:/path/to/repository
Add files Add one or more files to staging (index): git add <filename>git add *
Commit Commit changes to head (but not yet to the remote repository): git commit -m "Commit message"

Commit any files you've added with git add, and also commit any files you've changed since then: git commit -a
Push Send changes to the master branch of your remote repository: git push origin master
Status List the files you've changed and those you still need to add or commit: git status
Connect to a remote repository If you haven't connected your local repository to a remote server, add the server to be able to push to it: git remote add origin <server>

List all currently configured remote repositories: git remote -v
Branches Create a new branch and switch to it: git checkout -b <branchname>

Switch from one branch to another: git checkout <branchname>

List all the branches in your repo, and also tell you what branch you're currently in: git branch

Delete the feature branch: git branch -d <branchname>

Push the branch to your remote repository, so others can use it: git push origin <branchname>

Push all branches to your remote repository: git push --all origin

Delete a branch on your remote repository: git push origin :<branchname>
Update from the remote repository Fetch and merge changes on the remote server to your working directory: git pull

To merge a different branch into your active branch: git merge <branchname>

View all the merge conflicts:View the conflicts against the base file:Preview changes, before merging: git diffgit diff --base <filename>
git diff <sourcebranch> <targetbranch>
After you have manually resolved any conflicts, you mark the changed file: git add <filename>
Tags You can use tagging to mark a significant changeset, such as a release: git tag 1.0.0 <commitID>
CommitId is the leading characters of the changeset ID, up to 10, but must be unique. Get the ID using: git log
Push all tags to remote repository: git push --tags origin
Undo local changes If you mess up, you can replace the changes in your working tree with the last content in head:Changes already added to the index, as well as new files, will be kept. git checkout -- <filename>
Instead, to drop all your local changes and commits, fetch the latest history from the server and point your local master branch at it, do this: git fetch origingit reset --hard origin/master
Search Search the working directory for foo(): git grep "foo()"


Source:
https://www.atlassian.com/git/tutorials/svn-to-git-prepping-your-team-migration/basic-git-commands

linux terminal commands for beginner level

NAVIGATION
  • ls - list directory contents
  • pwd - print name of current/working directory
  • cd - change working directory
  • pushd/popd - put working directory on a stack
  • file - determine file type
  • locate - find files by name
  • updatedb - update database for locate
  • which - locate a command
  • history - display bash command history

GETTING HELP
  • whatis - display the on-line manual descriptions
  • apropos - search the manual page names and descriptions
  • man - an interface to the on-line reference manuals

WORKING WITH FILES
  • mkdir - create a directory/make directories
  • touch - change file timestamps/create empty files
  • cp - copy files and directories
  • mv - move (rename) files
  • rm - remove files or directories
  • rmdir - remove empty directories

TEXT FILES
  • cat - concatenate files and print on the standard output
  • more/less - page view
  • nano - command line text editor

USERS
  • sudo - execute a command as superuser
  • su - change user ID or become another user
  • users - print the user names of users currently logged in
  • id - print real and effective user and group IDs

CHANGING FILE PERMISSIONS
  • chmod - change permissions of a file

KILLING PROGRAMS AND LOGGING OUT
  • Ctrl+C - kill a running command
  • killall - kill processes by name
  • exit - log out of bash

Maven use local jar without installing

You can install a local jar by using  mvn install:install-file command/goal as I discussed in my earlier blog post. This ensures the re-usability of jar file across your projects but as a drawback, this requires every team member and build server to run the same command/goal to build their project.

To avoid to the manual hassle, you can add the .jar in pom.xml file without running the mvn install:install-file goal. The idea is to refer a .jar from your project base directory using the <systemPath> element.

In example below, I put my jar files to /myjars directory and point to the jar file as
        <systemPath>${project.basedir}/myjars/[Jar file name]</systemPath>

Directory Structure

..
/src/..
pom.xml
/myjars/my-lib-core.jar
/myjars/third-party.jar

Pom.xml

<dependencies>
    <dependency>
        <groupId>com.my.library</groupId>
        <artifactId>mylib-core</artifactId>
        <version>1.VERSION</version>
        <scope>system</scope>
        <systemPath>${project.basedir}/myjars/my-lib-core.jar</systemPath>
    </dependency>
    <dependency>
        <groupId>com.third-party.library</groupId>
        <artifactId>thirdparty</artifactId>
        <version>1.VERSION</version>
        <scope>system</scope>
        <systemPath>${project.basedir}/myjars/third-party.jar</systemPath>
    </dependency>

For web project (war files )

If you are working on a web project, the above configuration won't add the jars to war file by default. You need to do following.

Here we are asking maven-war-plugin to add all jar ( **/*.jar) from  ${project.basedir}/myjars  to WEB-INF/lib folder when creating the war file.

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <configuration>
                <warSourceDirectory>src/main/webapp/</warSourceDirectory>
                <webResources>
                    <resource>
                        <directory>${project.basedir}/myjars</directory>
                        <targetPath>WEB-INF/lib</targetPath>
                        <includes>
                            <include>**/*.jar</include>
                        </includes>
                    </resource>
                </webResources>
            </configuration>
        </plugin>
    </plugins>
</build>

Acoustic Alchemy - The Beautiful Game - Instrumental JAZZ

Acoustic Alchemy - The Beautiful Game - Instrumental JAZZ



Isn't it awesome ?



Catalina Kiss - Acoustic Alchemy - Instrumental JAZZ

Catalina Kiss - Acoustic Alchemy - Instrumental JAZZ

Here's another ...





Enjoy !

Spring MVC download content of String as text file

To download a text file out of a String :

JSP View :
 <a href="download">Download String </a> 

Controller Method :

 @RequestMapping(value = "/download", method = RequestMethod.GET)
 public @ResponseBody
 void downloadFile(HttpServletResponse resp) {
  String downloadFileName= "download.txt";
  String downloadStringContent= getStringToWrite(); // implement this
  try {
   OutputStream out = resp.getOutputStream();
   resp.setContentType("text/plain; charset=utf-8");
   resp.addHeader("Content-Disposition","attachment; filename=\"" + downloadFileName + "\"");
   out.write(downloadStringContent.getBytes(Charset.forName("UTF-8")));
   out.flush();
   out.close();

  } catch (IOException e) {
  }
 }

Check this as well : spring mvc download a file from server