Forum Replies Created
Thanks Halle for the quick reply like always. I’ve already written the AVAsset routines to downsample the SaveThatWave output to 8k but I was hoping to not need them.
I didn’t think it would be that big a deal for you to retain the Openears sampling rate through SaveThatWave – I didn’t think you would need to – or should, cater for any variations – simply prevent SaveThatWave from upsampling.
I don’t at all like the loss of fidelity with Openears sampling at 8kHz, SaveThatWave upsampling to 16kHz, then AVAsset downsampling to 8kHz.
My cloud recognition accuracy was extremely low when I was sending 16kHz wav files that contained 8khz bluetooth audio. Recognition rates were better after downsampling the files to 8kHz but nowhere near as good as when I record the audio myself at 8kHz with AVAudioSession
Also – just in case you didn’t know, this 8khz mode should not be applied to all bluetooth connections. Bluetooth HFP 1.6 supports “wideband audio” aka “HD audio” which is sampled at 16kHz. HFP 1.6 was specced around 2012. If both sides support HFP 1.6 or 1.7, then a 16kHz recording should be used.
Hi Halle, Would you be able to extend the use8kMode to SaveThatWave? As it is, with use8kMode set, wav files are still being created at 16kHz.
Sorry Halle, I’ve suffered the consequences of doing 18 hour days here. I was doing something stupid, I thought I was calling a routine from the wavWasSavedAtLocation delegate but was in fact calling it from pocketsphinxDidReceiveHypothesis… my bad, sorry for costing your time.October 3, 2016 at 11:30 am in reply to: Constructively share and discuss your results with bluetooth devices here #1031056
DEVICE: Uniden BTS200
APPLE DEVICE: iPad Mini 2
iOS VERSION: 10.0
OPEN EARS VERSION: 2.5.03
BEHAVIOR: OE does not accept input from device.
FIX: Set disablePreferredBufferSize = YES.
Additional Info: This hardware combination worked perfectly with IOS 9 before upgrading to IOS 10
Thanks once more for the quick response. I had come across those compatibility options but hadn’t tried them because the hardware was working.
In my case, setting disablePreferredBufferSize got it working. I’ll add some info into the “bluetooth device results” thread shortly.
BTW – I had framework version 2.5.01 and it doesn’t have any of those compatibility properties even though the docs suggest 2.5.x does. I upgraded to 2.5.03 and I was able to set them.
In terms or releasing an app to support as wide a range of hardware as possible, do you think I/we should set all 3 compatibility properties to true? or give users some way of selecting all 6 combinations?
That might be impossible for you to answer – maybe a better question would be – what is the downside of setting all 3 options to true?October 3, 2016 at 7:09 am in reply to: pocketsphinx not suspended after pocketsphinxDidSuspendRecognition event fires #1031048
I looked for a couple of hours but only found a couple of posts where you talked about the improvements you had made in startup speed. I couldn’t find anything about how it’s likely lead to problems but I heard what you were saying and redesigned. For now, I’ve written a simple “Ignore wrapper” which ignores the first utterance heard. I’ll come back to it later and rewrite the startup so that OpenEars loads after the app’s first prompt is spoken.
Sorry, I was and still am confused that I can’t see a g2p file in AcousticModelEnglish.bundle (but, ignoring my ignorance hasn’t seemed to hurt)
I started by simply copying the original AcousticModelEnglish.bundle across to the simulator’s Documents directory, pointed lmGenerator to the String value of the path (instead of the OEAcousticModel.pathToModel helper) and that worked.
But, simply changing the name to AcousticModelEnglishAdapted.bundle resulted in this familiar error
Error: an attempt was made to load the g2p file for the acoustic model at the path /Users/matt/Library/Developer/CoreSimulator/Devices/68A94751-8BD9-476F-B60E-CAB7929AE6A7/data/Containers/Data/Application/3CF49C69-117C-4EA4-B01B-471B8F2D71A8/Documents/AcousticModelEnglishAdapted.bundle/ and it wasn’t possible to complete. This file does not appear to exist. Please ask for help in the forums and be sure to turn on all logging. An exception or unpredictable behavior should be expected now since this file is a requirement.
I also tried “OriginalAcousticModelEnglish.bundle” with no success.
I think I’ll be OK using AcousticModelEnglish.bundle – it will just have different contents on each device – so I went about overwriting the feat.params, mdef, etc files in the simulator Documents/AcousticModelEnglish.bundle path with the ‘adapted’ files.
That worked OK and returned –
“I’m done running dynamic language model generation and it took 0.057379 seconds”
I modified my dynamic download code, deleted the contents of the simulators …Documents/ directory and on the next app load, it created the AcousticModelEnglish.bundle folder, downloaded the files from the webserver and loaded the files into OE. The app is now recognising my accent on ‘troublesome’ words like “REPEAT” much better than before even though I only adapted with a ‘test’ corpora of 10 words.
Thanks again for your help on this. I’ve tried to include as much detail as I can for others to follow because I just found that a similar request from someone else a couple of weeks ago – I didn’t find it during my initial search because they used general terms.
As an aside – should I include the “mixture_weights” file that ‘turned up’ during adaptation?
Thanks again for the quick response.
I don’t know a lot about app bundles (yet) – would you expect that I’ll be able to replace the ‘adaptation-relevant’ files within a bundle on a standard LAMP web server? Or will I need to do some magic on an OSX system?