diff --git a/README.md b/README.md index 0a24bf34..e7cf220d 100644 --- a/README.md +++ b/README.md @@ -460,6 +460,22 @@ puts response["text"] # => "Transcription of the text" ``` +#### Speech + +The speech API takes as input the text and a voice and returns the content of an audio file you can listen to. + +```ruby +response = client.audio.speech( + parameters: { + model: "tts-1", + input: "This is a speech test!", + voice: "alloy" + } +) +File.binwrite('demo.mp3', response) +# => mp3 file that plays: "This is a speech test!" +``` + ### Errors HTTP errors can be caught like this: diff --git a/lib/openai/audio.rb b/lib/openai/audio.rb index dacba0ea..57ea5466 100644 --- a/lib/openai/audio.rb +++ b/lib/openai/audio.rb @@ -11,5 +11,9 @@ def transcribe(parameters: {}) def translate(parameters: {}) @client.multipart_post(path: "/audio/translations", parameters: parameters) end + + def speech(parameters: {}) + @client.json_post(path: "/audio/speech", parameters: parameters) + end end end diff --git a/spec/fixtures/cassettes/speech_tts-1_test.yml b/spec/fixtures/cassettes/speech_tts-1_test.yml new file mode 100644 index 00000000..854cab17 --- /dev/null +++ b/spec/fixtures/cassettes/speech_tts-1_test.yml @@ -0,0 +1,38 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.openai.com/v1/audio/speech + body: + encoding: UTF-8 + string: '{"model":"tts-1","input":"This is a speech test!","voice":"alloy"}' + headers: + Content-Type: + - application/json + Authorization: + - Bearer + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Date: + - Tue, 14 Nov 2023 22:36:02 GMT + Content-Type: + - audio/mpeg + Transfer-Encoding: + - chunked + Connection: + - keep-alive + body: + encoding: ASCII-8BIT + string: !binary |- + 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 + recorded_at: Tue, 14 Nov 2023 22:36:03 GMT +recorded_with: VCR 6.1.0 diff --git a/spec/openai/client/audio_spec.rb b/spec/openai/client/audio_spec.rb index 6a5057f4..52ac489a 100644 --- a/spec/openai/client/audio_spec.rb +++ b/spec/openai/client/audio_spec.rb @@ -55,5 +55,24 @@ end end end + + describe "#speech" do + context "with audio", :vcr do + let(:model) { "tts-1" } + + it "returns a working mp3 file as body" do + VCR.use_cassette("speech #{model} test") do + response = OpenAI::Client.new.audio.speech( + parameters: { + model: model, + input: "This is a speech test!", + voice: "alloy" + } + ) + expect(response).not_to be_empty + end + end + end + end end end