Thanks Halle, two more data points for you:
1. I tried these tests again on iOS 8.0.2. Same results. iOS 8.0.2 didn’t fix what I’m seeing.
2. I noticed something this morning that I’m sure now is likely why getDecibels is going to inf. In the AudioUnitRenderCallback, the inNumberFrames is usually 2048, except with bluetooth in the failure scenarios:
– Using the internal mic, I see 2048 frames in each callback. Everything works as intended.
– With the bluetooth headset connected, on initial startup I see 4096 frames in the AudioUnitRenderCallback UNTIL Flite says “Welcome to OpenEars”. Then I see 2048 frames in each callback. I can then say “CHANGE” into the bluetooth headset and have it recognized. After the recognized speech and AudioUnitRenderCallback is fired continuously again, I see the number of frames jump back to 4096 and getDecibels goes to inf. This is the failure scenario.
Hopefully this helps, but there is a correlation between 4096 inframes in the AudioUnitRenderCallback and failing to recognize speech. When AudioUnitRenderCallback is producing 2048 inframes then everything is working fine.
Also, just to confirm, when flite speaks, I’ll see the inframes go back to 2048 from 4096. So there is something that flite is doing that’s positively impacting the number of frames going into the AudioUnitRenderCallback when a bluetooth headset is connected.