ibm_watson 2.0.2 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -354,4 +354,149 @@ class TextToSpeechV1Test < Minitest::Test
354
354
  )
355
355
  assert(service_response.nil?)
356
356
  end
357
+
358
+ def test_custom_prompts
359
+ response = {
360
+ "prompt" => "Thank you and good-bye!",
361
+ "prompt_id" => "goodbye"
362
+ }
363
+ authenticator = IBMWatson::Authenticators::BasicAuthenticator.new(
364
+ username: "username",
365
+ password: "password"
366
+ )
367
+ service = IBMWatson::TextToSpeechV1.new(
368
+ username: "username",
369
+ password: "password",
370
+ authenticator: authenticator
371
+ )
372
+ stub_request(:get, "https://api.us-south.text-to-speech.watson.cloud.ibm.com/v1/customizations/cust_id/prompts")
373
+ .with(
374
+ headers: {
375
+ "Accept" => "application/json",
376
+ "Authorization" => "Basic dXNlcm5hbWU6cGFzc3dvcmQ=",
377
+ "Host" => "api.us-south.text-to-speech.watson.cloud.ibm.com"
378
+ }
379
+ ).to_return(status: 200, body: response.to_json, headers: { "Content-Type" => "application/json" })
380
+ service_response = service.list_custom_prompts(
381
+ customization_id: "cust_id"
382
+ )
383
+ assert_equal(response, service_response.result)
384
+
385
+ stub_request(:get, "https://api.us-south.text-to-speech.watson.cloud.ibm.com/v1/customizations/cust_id/prompts/p_id")
386
+ .with(
387
+ headers: {
388
+ "Accept" => "application/json",
389
+ "Authorization" => "Basic dXNlcm5hbWU6cGFzc3dvcmQ=",
390
+ "Host" => "api.us-south.text-to-speech.watson.cloud.ibm.com"
391
+ }
392
+ ).to_return(status: 200, body: response.to_json, headers: { "Content-Type" => "application/json" })
393
+ service_response = service.get_custom_prompt(
394
+ customization_id: "cust_id",
395
+ prompt_id: "p_id"
396
+ )
397
+ assert_equal(response, service_response.result)
398
+
399
+ stub_request(:delete, "https://api.us-south.text-to-speech.watson.cloud.ibm.com/v1/customizations/cust_id/prompts/p_id")
400
+ .with(
401
+ headers: {
402
+ "Authorization" => "Basic dXNlcm5hbWU6cGFzc3dvcmQ=",
403
+ "Host" => "api.us-south.text-to-speech.watson.cloud.ibm.com"
404
+ }
405
+ ).to_return(status: 200, body: "", headers: {})
406
+ service_response = service.delete_custom_prompt(
407
+ customization_id: "cust_id",
408
+ prompt_id: "p_id"
409
+ )
410
+ assert(service_response.nil?)
411
+
412
+ stub_request(:post, "https://api.us-south.text-to-speech.watson.cloud.ibm.com/v1/customizations/cust_id/prompts/p_id")
413
+ .with(
414
+ headers: {
415
+ "Authorization" => "Basic dXNlcm5hbWU6cGFzc3dvcmQ=",
416
+ "Host" => "api.us-south.text-to-speech.watson.cloud.ibm.com"
417
+ }
418
+ ).to_return(status: 200, headers: { "Content-Type" => "application/json" })
419
+ audio_file = File.open(Dir.getwd + "/resources/speech.wav")
420
+ service_response = service.add_custom_prompt(
421
+ customization_id: "cust_id",
422
+ prompt_id: "p_id",
423
+ metadata: { "prompt_text" => "Thank you and good-bye!" },
424
+ file: audio_file
425
+ )
426
+ assert_equal(200, service_response.status)
427
+ end
428
+
429
+ def test_speaker_models
430
+ response = {
431
+ "speakers" => [
432
+ {
433
+ "speaker_id" => "56367f89-546d-4b37-891e-4eb0c13cc833",
434
+ "name" => "speaker_one"
435
+ },
436
+ {
437
+ "speaker_id" => "323e4476-63de-9825-7cd7-8120e45f8331",
438
+ "name" => "speaker_two"
439
+ }
440
+ ]
441
+ }
442
+
443
+ authenticator = IBMWatson::Authenticators::BasicAuthenticator.new(
444
+ username: "username",
445
+ password: "password"
446
+ )
447
+ service = IBMWatson::TextToSpeechV1.new(
448
+ username: "username",
449
+ password: "password",
450
+ authenticator: authenticator
451
+ )
452
+ stub_request(:get, "https://api.us-south.text-to-speech.watson.cloud.ibm.com/v1/speakers")
453
+ .with(
454
+ headers: {
455
+ "Accept" => "application/json",
456
+ "Authorization" => "Basic dXNlcm5hbWU6cGFzc3dvcmQ=",
457
+ "Host" => "api.us-south.text-to-speech.watson.cloud.ibm.com"
458
+ }
459
+ ).to_return(status: 200, body: response.to_json, headers: { "Content-Type" => "application/json" })
460
+ service_response = service.list_speaker_models
461
+ assert_equal(response, service_response.result)
462
+
463
+ stub_request(:get, "https://api.us-south.text-to-speech.watson.cloud.ibm.com/v1/speakers/speaker_id1")
464
+ .with(
465
+ headers: {
466
+ "Accept" => "application/json",
467
+ "Authorization" => "Basic dXNlcm5hbWU6cGFzc3dvcmQ=",
468
+ "Host" => "api.us-south.text-to-speech.watson.cloud.ibm.com"
469
+ }
470
+ ).to_return(status: 200, body: response.to_json, headers: { "Content-Type" => "application/json" })
471
+ service_response = service.get_speaker_model(
472
+ speaker_id: "speaker_id1"
473
+ )
474
+ assert_equal(response, service_response.result)
475
+
476
+ stub_request(:delete, "https://api.us-south.text-to-speech.watson.cloud.ibm.com/v1/speakers/speaker_id1")
477
+ .with(
478
+ headers: {
479
+ "Authorization" => "Basic dXNlcm5hbWU6cGFzc3dvcmQ=",
480
+ "Host" => "api.us-south.text-to-speech.watson.cloud.ibm.com"
481
+ }
482
+ ).to_return(status: 200, body: "", headers: {})
483
+ service_response = service.delete_speaker_model(
484
+ speaker_id: "speaker_id1"
485
+ )
486
+ assert(service_response.nil?)
487
+
488
+ stub_request(:post, "https://api.us-south.text-to-speech.watson.cloud.ibm.com/v1/speakers?speaker_name=Russ")
489
+ .with(
490
+ headers: {
491
+ "Authorization" => "Basic dXNlcm5hbWU6cGFzc3dvcmQ=",
492
+ "Host" => "api.us-south.text-to-speech.watson.cloud.ibm.com"
493
+ }
494
+ ).to_return(status: 200, body: "", headers: {})
495
+ audio_file = File.open(Dir.getwd + "/resources/speech.wav")
496
+ service_response = service.create_speaker_model(
497
+ speaker_name: "Russ",
498
+ audio: audio_file
499
+ )
500
+ assert_equal(200, service_response.status)
501
+ end
357
502
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ibm_watson
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.2
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Max Nussbaum
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-03-18 00:00:00.000000000 Z
11
+ date: 2021-05-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: concurrent-ruby
@@ -347,7 +347,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
347
347
  version: '0'
348
348
  requirements: []
349
349
  rubyforge_project:
350
- rubygems_version: 2.7.6.2
350
+ rubygems_version: 2.7.6.3
351
351
  signing_key:
352
352
  specification_version: 4
353
353
  summary: Official client library to use the IBM Watson Services