Skip to content

GetSpeechAsStreamAsync - NAudio #186

Open
@Hantse

Description

@Hantse

Hello,

I try to used the GetSpeechAsStreamAsync but, i didn't find any solution/configuration to play received sound, it's always a "blank noise" output.
I've try with NAudio.

var audioStream = await api.TextToSpeech.GetSpeechAsStreamAsync("Hello world !", OpenAI_API.Audio.TextToSpeechRequest.Voices.Nova);

WaveFormat waveFormat = new WaveFormat(24000, 16, 2); 

using (WaveOutEvent waveOut = new WaveOutEvent())
{
    using (StreamWaveProvider provider = new StreamWaveProvider(audioStream, waveFormat))
    {
        waveOut.Init(provider);
        waveOut.Play();

        while (waveOut.PlaybackState == PlaybackState.Playing)
        {
            System.Threading.Thread.Sleep(100);
        }
    }
}

public class StreamWaveProvider : WaveStream
{
    private Stream sourceStream;
    private WaveFormat waveFormat;

    public StreamWaveProvider(Stream sourceStream, WaveFormat waveFormat)
    {
        this.sourceStream = sourceStream;
        this.waveFormat = waveFormat;
    }

    public override WaveFormat WaveFormat => this.waveFormat;

    public override long Length => sourceStream.Length;

    public override long Position
    {
        get => sourceStream.Position;
        set => sourceStream.Position = value;
    }

    public override int Read(byte[] buffer, int offset, int count)
    {
        return sourceStream.Read(buffer, offset, count);
    }
}

I've miss something in audio configuration ? In stream processing ? Any idea ?

Kr,

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions