- This topic has 4 replies, 2 voices, and was last updated 9 years, 3 months ago by Halle Winkler.
-
AuthorPosts
-
December 10, 2014 at 7:52 pm #1023359foobar8675Participant
Hello Halle,
I’m trying to use OE to recognize numbers and the alphabet. I replaced the words in the OE example to the following
NSArray *firstLanguageArray = @[
@”ONE”,
@”TWO”,
@”THREE”,
@”FOUR”,
@”FIVE”,
@”SIX”,
@”SEVEN”,
@”EIGHT”,
@”NINE”,
@”A”,
@”B”,
@”C”,
@”D”,
@”E”,
@”F”,
@”G”,
@”H”,
@”I”,
@”JAY”,
@”KAY”,
@”ELLE”,
@”EM”,
@”EN”,
@”OH”,
@”PEE”,@”QUE”,
@”ARE”,
@”S”,
@”TEE”,
@”YOU”,
@”VEE”,
@”DOUBLEYOU”,
@”EX”,
@”WHY”,
@”ZEE”,];
and am noticing the incorrect result come up pretty frequently. Suggestions?
December 10, 2014 at 8:17 pm #1023360Halle WinklerPolitepixThis is unfortunately a thing which gets bad results with speech recognition. Most of the words are a single syllable, many of those syllables rhyme with each other (three, e, d, g, p) or nearly rhyme (eight and a and j), and they are contextless โ they can arrive in any order (in contrast to phrases of words where we can say that some combinations are more likely, or required by a rule, versus others). You can probably find several other discussions on these forums about this, but they mostly consist of me making this approximate statement.
You can fix the fact that the letters are spelled phonetically, since that will prevent them from being found in the lookup list and given multiple pronunciations if there are some, but the main way to improve would be a specification change of some kind (organize your app so that only a few of these items are in any given language model or grammar โ you will still encounter the e/d/g/p issue, but it will be a bit reduced).
December 11, 2014 at 1:04 am #1023376foobar8675ParticipantThanks for responding Halle. Do you think rulesorama might work? I was thinking, for example, if a user spelled the name for one of 3 users :
Tom
Ben
Mikethe grammer could look like
ThisWillBeSaidOnce : @[
@{ OneOfTheseWillBeSaidOnce : @[@”T”, @”B”, @”M”]},
@{ OneOfTheseCanBeSaidOnce : @[@”O”, @”E”, @”I”]},
@{ OneOfTheseCanBeSaidOnce : @[@”M”, @”N”, @”K”]},
@{ OneOfTheseCanBeSaidOnce : @[@”E”]},Or is it obvious to everyone but me that this would that fall apart with a larger number of names (say over 100)?
December 11, 2014 at 9:54 am #1023380Halle WinklerPolitepixI would just get a corpus of 100/200/300 names and try it out.
Your ruleset should look like this I think:
OneOfTheseWillBeSaidOnce : @[
@{ ThisWillBeSaidOnce : @[@โTโ, @โOโ, @โMโ]},
@{ ThisWillBeSaidOnce : @[@โBโ, @โEโ, @โNโ]},
@{ ThisWillBeSaidOnce : @[@โMโ, @โIโ, @โKโ,@โEโ]},etc. I think that will do the recognition you intend, and limit the permutations to a number vaguely in the same ballpark as your corpus size. Plus it’s pretty easy to automate the dynamic generation.
January 6, 2015 at 6:57 pm #1024086Halle WinklerPolitepixTake a look at OpenEars 2.01 out today, which has a fix which should improve accuracy in some cases.
-
AuthorPosts
- You must be logged in to reply to this topic.