Package: espeak Version: 1.44.05-1 Severity: normal I tried your advice with espeak 1.44.05-1.
I suggest you adopt the following patch, or else a modification of espeak-data/config/pa_device is ignored. ----------------------------------------------- @@ -496,7 +496,8 @@ void LoadConfig(void) else if(memcmp(buf,"pa_device",9)==0) { - sscanf(&buf[7],"%d",&option_device_number); + sscanf(&buf[10],"%d",&option_device_number); } else if(memcmp(buf,"soundicon",9)==0) ----------------------------------------------- Then, with espeak-data/config/pa_device set to 0 then 1,2,3,7, I got the same following result with each value. At least the alsa device is selected, and the message makes sense. ----------------------------------------------- Expression 'SetApproximateSampleRate( pcm, hwParams, sr )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 1293 Expression 'PaAlsaStreamComponent_InitialConfigure( &self->playback, outParams, self->primeBuffers, hwParamsPlayback, &realSr )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 1867 Expression 'PaAlsaStream_Configure( stream, inputParameters, outputParameters, sampleRate, framesPerBuffer, &inputLatency, &outputLatency, &hostBufferSizeMode )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 1988 wave_open_sound > Pa_OpenStream : err=-9997 (Invalid sample rate) Expression 'SetApproximateSampleRate( pcm, hwParams, sr )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 1293 Expression 'PaAlsaStreamComponent_InitialConfigure( &self->playback, outParams, self->primeBuffers, hwParamsPlayback, &realSr )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 1867 Expression 'PaAlsaStream_Configure( stream, inputParameters, outputParameters, sampleRate, framesPerBuffer, &inputLatency, &outputLatency, &hostBufferSizeMode )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 1988 Expression 'SetApproximateSampleRate( pcm, hwParams, sr )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 1293 Expression 'PaAlsaStreamComponent_InitialConfigure( &self->playback, outParams, self->primeBuffers, hwParamsPlayback, &realSr )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 1867 Expression 'PaAlsaStream_Configure( stream, inputParameters, outputParameters, sampleRate, framesPerBuffer, &inputLatency, &outputLatency, &hostBufferSizeMode )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 1988 wave_open_sound > Pa_OpenStream : err=-9997 (Invalid sample rate) Expression 'SetApproximateSampleRate( pcm, hwParams, sr )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 1293 Expression 'PaAlsaStreamComponent_InitialConfigure( &self->playback, outParams, self->primeBuffers, hwParamsPlayback, &realSr )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 1867 Expression 'PaAlsaStream_Configure( stream, inputParameters, outputParameters, sampleRate, framesPerBuffer, &inputLatency, &outputLatency, &hostBufferSizeMode )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 1988 Expression 'SetApproximateSampleRate( pcm, hwParams, sr )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 1293 Expression 'PaAlsaStreamComponent_InitialConfigure( &self->playback, outParams, self->primeBuffers, hwParamsPlayback, &realSr )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 1867 Expression 'PaAlsaStream_Configure( stream, inputParameters, outputParameters, sampleRate, framesPerBuffer, &inputLatency, &outputLatency, &hostBufferSizeMode )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 1988 wave_open_sound > Pa_OpenStream : err=-9997 (Invalid sample rate) Expression 'SetApproximateSampleRate( pcm, hwParams, sr )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 1293 Expression 'PaAlsaStreamComponent_InitialConfigure( &self->playback, outParams, self->primeBuffers, hwParamsPlayback, &realSr )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 1867 Expression 'PaAlsaStream_Configure( stream, inputParameters, outputParameters, sampleRate, framesPerBuffer, &inputLatency, &outputLatency, &hostBufferSizeMode )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 1988 Expression 'SetApproximateSampleRate( pcm, hwParams, sr )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 1293 Expression 'PaAlsaStreamComponent_InitialConfigure( &self->playback, outParams, self->primeBuffers, hwParamsPlayback, &realSr )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 1867 Expression 'PaAlsaStream_Configure( stream, inputParameters, outputParameters, sampleRate, framesPerBuffer, &inputLatency, &outputLatency, &hostBufferSizeMode )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 1988 wave_open_sound > Pa_OpenStream : err=-9997 (Invalid sample rate) Expression 'SetApproximateSampleRate( pcm, hwParams, sr )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 1293 Expression 'PaAlsaStreamComponent_InitialConfigure( &self->playback, outParams, self->primeBuffers, hwParamsPlayback, &realSr )' failed in ' ----------------------------------------------- For information, with this modification of src/wave.cpp ----------------------------------------------- --- a/src/wave.cpp +++ b/src/wave.cpp @@ -568,6 +568,44 @@ static void select_device(const char* the_api) update_output_parameters(i, deviceInfo); } + + printf ("\n\n"); + + printf ("option_device_number = %d\n", option_device_number); + printf ("Pa_GetVersion: %d\n", Pa_GetVersion ()); + printf ("Pa_GetVersionText: %s\n", Pa_GetVersionText ()); + printf ("Pa_GetDeviceCount = %d\n", Pa_GetDeviceCount()); + + { const PaHostApiIndex apicount = Pa_GetHostApiCount (); + if (apicount < 0) { + printf ("Pa_GetHostApiCount: %s\n", Pa_GetErrorText (apicount)); } + else { + for (PaHostApiIndex api=0; api<apicount; api++) { + const PaHostApiInfo * const apiinfo = Pa_GetHostApiInfo (api); + printf ("HostApi %d: name=%s device_count=%d default_output=%d\n", + api, apiinfo->name, apiinfo->deviceCount, apiinfo->defaultOutputDevice); + for (int apidevice=0; apidevice<apiinfo->deviceCount; apidevice++) { + printf (" api_device %d is port_audio_device %d\n", + apidevice, Pa_HostApiDeviceIndexToDeviceIndex (api, apidevice)); } } }} + + { const PaHostApiIndex api = Pa_GetDefaultHostApi (); + if (api < 0) { + printf ("Pa_GetDefaultHostApi: %s\n", Pa_GetErrorText (api)); } + else { + printf ("Pa_GetDefaultHostApi %d\n", api); } } + + { const PaDeviceIndex pa_device = Pa_GetDefaultOutputDevice (); + if (pa_device == paNoDevice) { + printf ("Pa_GetDefaultOutputDevice failed\n"); } + else { + printf ("Pa_GetDefaultOutputDevice %d\n", pa_device); } } + + printf ("myOutputParameters.device: %d\n", myOutputParameters.device); + + printf ("\n\n"); + + + #endif } ------------------------------------------------------------------------- I've got ----------------------------------- option_device_number = -1 Pa_GetVersion: 1899 Pa_GetVersionText: PortAudio V19-devel (built Nov 25 2010) Pa_GetDeviceCount = 8 HostApi 0: name=OSS device_count=0 default_output=-1 HostApi 1: name=ALSA device_count=8 default_output=0 api_device 0 is port_audio_device 0 api_device 1 is port_audio_device 1 api_device 2 is port_audio_device 2 api_device 3 is port_audio_device 3 api_device 4 is port_audio_device 4 api_device 5 is port_audio_device 5 api_device 6 is port_audio_device 6 api_device 7 is port_audio_device 7 Pa_GetDefaultHostApi 0 Pa_GetDefaultOutputDevice failed myOutputParameters.device: -1 wave_open_sound > Pa_OpenStream : err=-9996 (Invalid device) wave_open_sound > Pa_OpenStream : err=-9996 (Invalid device) wave_open_sound > Pa_OpenStream : err=-9996 (Invalid device) wave_open_sound > Pa_OpenStream : err=-9996 (Invalid device) -------------------------------------- I do not understand the imbricated tests in select_device() enough to modify anything, but I guess that it could do better than set myOutputParameters.device=-1 when pa_device == -1 (unset in espeak-data/config) and Pa_GetDefaultOutputDevice() == -1 (portaudio fails to select a default output) but there is a default output in the default host api. In any case, if it does not select a valid device, it should not call Pa_OpenStream() with a -1 device afterwards. I hope that this will help. -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org