vania-janet/multiturn-rag-retrieval-data huggingface dataset:
* [Security Bulletin: IBM Watson Speech Services Cartridge for IBM Cloud Pak for Data is vulnerable to a denial of service in Golang Go (CVE-2022-32189)](https://www.ibm.com/support/pages/node/6890849)
* [Security Bulletin: IBM Watson Speech Services Cartridge for IBM Cloud Pak for Data is vulnerable to a denial of service in Golang Go (CVE-2022-41715)](https://www.ibm.com/support/pages/node/6890851)
* [Security Bulletin: IBM Watson Speech Services Cartridge for IBM Cloud Pak for Data is vulnerable to information exposure in OpenSSL (CVE-2022-2097)](https://www.ibm.com/support/pages/node/6890853)







 30 November 2022 (Version 4.6.0) 

Version 4.6.0 is now available
: Text to Speech for IBM Cloud Pak for Data version 4.6.0 is now available. This version supports IBM Cloud Pak for Data version 4.6.x and Red Hat OpenShift versions 4.8 and 4.10. For more information, see [Watson Speech services on IBM Cloud Pak for Data](https://www.ibm.com/docs/en/cloud-paks/cp-data/4.6.x?topic=services-watson-speech).

Amazon Web Services (AWS) is now supported
: Watson Speech services for IBM Cloud Pak for Data are now supported on Amazon Web Services™ (AWS™). The services support Amazon Elastic Block Store, which you specify by setting the blockStorageClass property of the Speech services custom resource to gp2-csi or gp3-csi.

New storage classes are now supported
: Watson Speech services for IBM Cloud Pak for Data now support two additional storage classes:



* IBM Cloud Block Storage (ibmc-block-gold)
* NetApp Trident (ontap-nas)



You specify the storage class with the blockStorageClass property of the Speech services custom resource.
* [Security Bulletin: IBM Watson Speech Services Cartridge for IBM Cloud Pak for Data is vulnerable to information disclosure or denial of service in OpenSSL (CVE-2021-3712)](https://www.ibm.com/support/pages/node/6829165)
* [Security Bulletin: IBM Watson Speech Services Cartridge for IBM Cloud Pak for Data is vulnerable to weakened security in OpenSSL (CVE-2021-4160)](https://www.ibm.com/support/pages/node/6829167)
* [Security Bulletin: IBM Watson Speech Services Cartridge for IBM Cloud Pak for Data is vulnerable to a denial of service in OpenSSL (CVE-2022-0778)](https://www.ibm.com/support/pages/node/6829175)







 19 August 2022 (Version 4.5.1) 

Important: Deprecation date for most previous-generation models is now 3 March 2023
: Superseded: This deprecation notice is superseded by the [23 February 2023 service update](https://cloud.ibm.com/docs/speech-to-text?topic=speech-to-text-release-notes-dataspeech-to-text-data-23february2023). The end of service date for all previous-generation models is now 31 July 2023.

On 15 March 2022, the previous-generation models for all languages other than Arabic and Japanese were deprecated. At that time, the deprecated models were to remain available until 15 September 2022. To allow users more time to migrate to the appropriate next-generation models, the deprecated models will now remain available until 3 March 2023. As with the initial deprecation notice, the Arabic and Japanese previous-generation models are not deprecated. For complete list of all deprecated models, see the [15 March 2022 (Version 4.0.6) service update](https://cloud.ibm.com/docs/speech-to-text?topic=speech-to-text-release-notes-dataspeech-to-text-data-15march2022).
* [Security Bulletin: IBM Watson Speech Services Cartridge for IBM Cloud Pak for Data is vulnerable to a denial of service in protobuf (CVE-2022-1941)](https://www.ibm.com/support/pages/node/6890835)
* [Security Bulletin: IBM Watson Speech Services Cartridge for IBM Cloud Pak for Data is vulnerable to a buffer overflow in GNU glibc (CVE-2021-3999)](https://www.ibm.com/support/pages/node/6890837)
* [Security Bulletin: IBM Watson Speech Services Cartridge for IBM Cloud Pak for Data is vulnerable to a security bypass in GNU gzip (CVE-2022-1271)](https://www.ibm.com/support/pages/node/6890841)
* [Security Bulletin: IBM Watson Speech Services Cartridge for IBM Cloud Pak for Data is vulnerable to a denial of service in Golang Go (CVE-2022-27664)](https://www.ibm.com/support/pages/node/6890843)
* [Security Bulletin: IBM Watson Speech Services Cartridge for IBM Cloud Pak for Data is vulnerable to a denial of service in Golang Go (CVE-2022-2879)](https://www.ibm.com/support/pages/node/6909749)
* [Security Bulletin: IBM Watson Speech Services Cartridge for IBM Cloud Pak for Data is vulnerable to query parameter smuggling in Golang Go (CVE-2022-2880)](https://www.ibm.com/support/pages/node/6890847)
* [Security Bulletin: IBM Watson Speech Services Cartridge for IBM Cloud Pak for Data is vulnerable to a denial of service in Golang Go (CVE-2022-32189)](https://www.ibm.com/support/pages/node/6890849)
* [Security Bulletin: IBM Watson Speech Services Cartridge for IBM Cloud Pak for Data is vulnerable to a denial of service in Golang Go (CVE-2022-41715)](https://www.ibm.com/support/pages/node/6890851)
Data security and compliance 

Event Notifications service has data security strategies in place to meet your compliance needs and ensure that your data remains secure and protected in the cloud.



  Security readiness 

Event Notifications ensures security readiness by adhering to IBM best practices for systems, networking, and secure engineering.

To learn more about security controls across IBM Cloud, see [How do I know that my data is safe?](https://cloud.ibm.com/docs/overview?topic=overview-securitysecurity).

To learn more about how your data is secured in Event Notifications, see [securing your data in Event Notifications](https://cloud.ibm.com/docs/event-notifications?topic=event-notifications-en-mng-data).



  Data encryption 

Event Notifications stores and encrypts details that are related to your destinations like email (sender, recipients, subject), or SMS (sender, recipient, details).

Access to Event Notifications takes place over HTTPS and uses Transport Layer Security (TLS) to encrypt data in transit.

For more information on supported TLS ciphers, see [TLS cipher support](https://cloud.ibm.com/docs/event-notifications?topic=event-notifications-en-cipher-support).

If you attempt to use a cipher that is not on this list, you may experience connectivity issues. Update your client to use one of the supported ciphers. If you are using openssl, you can use the command openssl ciphers -v at the command line (or, for some installations of openssl, use the -s -v options) to show a verbose list of what ciphers your client supports.







  Compliance readiness 

Event Notifications meets controls for global, industry, and regional compliance standards, including ISO 27001/27017/27018/27701, and others.

For a complete listing of IBM Cloud compliance certifications, see [Compliance on the IBM Cloud](https://ibm.com/cloud/compliance).



  ISO 27001, 27017, 27018, 27701 

Event Notifications is ISO 27001, 27017, 27018, and 27701 certified. You can view compliance certifications by visiting [Compliance on the IBM Cloud](https://ibm.com/cloud/compliance).
(You cannot use the updateUserID() instance method to set the user ID if web chat security is enabled.) The same user ID is also used as the customer ID, which can be used to make requests to delete user data. Because the customer ID is sent in a header field, the ID you specify must meet the requirements for header fields as defined in [RFC 7230](https://tools.ietf.org/html/rfc7230section-3.2).

If you are required to comply with GDPR requirements, you might need to persistently store any generated anonymous user IDs, especially for anonymous users who later log in with user credentials. Storing these user IDs makes it possible for you to later delete all data associated with an individual customer if requested to do so.

For more information about user-based billing, see [User-based plans explained](https://cloud.ibm.com/docs/watson-assistant?topic=watson-assistant-admin-managing-planadmin-managing-plan-user-based). For more information about deleting user data, see [Labeling and deleting data](https://cloud.ibm.com/docs/watson-assistant?topic=watson-assistant-admin-securingsecuring-gdpr-wa).

If your customers are required to log in before starting a web chat session, you can use the authenticated user ID as the value of the sub claim when you create the JWT. Because the web chat integration validates the JWT and uses the sub claim to set the user ID, your assistant can now rely on context.global.system.user_id for secure access control to functions that require authorization.

After you specify the JWT for the web chat, you cannot change to a JWT with a different sub claim during the session. If you need to add authenticated login information in the middle of a session, you can store it as part of the user payload instead. For an example of how to do this, see [Tutorial: Authenticating a user in the middle of a session](https://cloud.ibm.com/docs/watson-assistant?topic=watson-assistant-web-chat-develop-security).





 Logging out
Compression can maximize the amount of data that you can send with a single request. Especially if the audio is in WAV or FLAC format, converting it to a lossy format can make an appreciable difference.



* For more information about audio formats that use compression, see [Audio formats](https://cloud.ibm.com/docs/speech-to-text?topic=speech-to-text-audio-formatsaudio-formats-list).
* For more information about the effects of compression and about converting your audio to a format that uses it, see [Data limits and compression](https://cloud.ibm.com/docs/speech-to-text?topic=speech-to-text-audio-formatsaudio-formats-limits) and [Audio conversion](https://cloud.ibm.com/docs/speech-to-text?topic=speech-to-text-audio-formatsaudio-formats-conversion).
* For more information about transcribing the audio from a multimedia file that contains both audio and video, see [Transcribing speech from video files](https://cloud.ibm.com/docs/speech-to-text?topic=speech-to-text-audio-formatsaudio-formats-video).







 Using the WebSocket interface 

[The WebSocket interface](https://cloud.ibm.com/docs/speech-to-text?topic=speech-to-text-websockets) offers an efficient implementation that provides low latency and high throughput over a full-duplex connection. All requests and responses are sent over the same WebSocket connection.

To use the WebSocket interface, you first use the /v1/recognize method to establish a connection with the service. You specify parameters such as the language model and any custom models that are to be used for requests that are sent over the connection. You then register event listeners to handle responses from the service. To make a request, you send a JSON text message that includes the audio format and any additional parameters. You pass the audio as a binary message (blob), and then send a text message to signal the end of the audio.
* Check whether App ID email dispatchers are using HTTPS only
* Check whether Cloud Object Storage is accessible only through HTTPS
* Check whether Application Load Balancer for VPC is configured to convert HTTP client requests to HTTPS
* Check whether App ID webhooks are using HTTPS only
* Check whether App ID redirect URIs are using HTTPS only
* Check whether Cloud Internet Services (CIS) has TLS mode set to End-to-End CA signed
* Check whether Application Load Balancer for VPC pool uses the HTTPS protocol for HTTPS listeners
* Check whether Application Load Balancer for VPC uses HTTPS (SSL & TLS) instead of HTTP







 NIST supplemental guidance 

This control applies to both internal and external networks and all types of information system components from which information can be transmitted (e.g., servers, mobile devices, notebook computers, printers, copiers, scanners, facsimile machines). Communication paths outside the physical protection of a controlled boundary are exposed to the possibility of interception and modification. Protecting the confidentiality and/or integrity of organizational information can be accomplished by physical means (e.g., by employing protected distribution systems) or by logical means (e.g., employing encryption techniques). Organizations relying on commercial providers offering transmission services as commodity services rather than as fully dedicated services (i.e., services which can be highly specialized to individual customer needs), may find it difficult to obtain the necessary assurances regarding the implementation of needed security controls for transmission confidentiality/integrity. In such situations, organizations determine what types of confidentiality/integrity services are available in standard, commercial telecommunication service packages. If it is infeasible or impractical to obtain the necessary security controls and assurances of control effectiveness through appropriate contracting vehicles, organizations implement appropriate compensating security controls or explicitly accept the additional risk.
It is the responsibility of the external service to check for and verify the secret. If the external service does not require a token, specify any string you want. You cannot leave this field empty.

If you want to see the secret as you enter it, click on the Show password icon ![view icon](https://cloud.ibm.com/docs-content/v1/content/icons/view.svg) before you start typing. After you save the secret, the string is replaced by asterisks and can't be viewed again.

For more information about how this field is used, see [Webhook security](https://cloud.ibm.com/docs/watson-assistant?topic=watson-assistant-webhook-prewebhook-pre-security).
8. In the Timeout field, specify the length of time (in seconds) you want the assistant to wait for a response from the webhook before returning an error. The timeout duration cannot be shorter than 1 second or longer than 30 seconds.
9. In the Headers section, add any headers that you want to pass to the service one at a time by clicking Add header.

For example, if the external application that you call returns a response, it might be able to send a response in multiple different formats. The webhook requires that the response is formatted in JSON. The following table illustrates how to add a header that indicates that you want the resulting value to be returned in JSON format.



Header example

 Header name Header value 

 Content-Type application/json 



The service automatically sends an Authorization header with a JWT; you do not need to add one. If you want to handle authorization yourself, add your own authorization header and it will be used instead.

After you save the header value, the string is replaced by asterisks and can't be viewed again.



Your webhook details are saved automatically.





 Testing the webhook 

Do extensive testing of your webhook before you enable it for an assistant that is being used in a production environment.

The webhook is triggered when a message is sent to your assistant to be processed.
* [Security Bulletin: IBM Watson Speech Services Cartridge for IBM Cloud Pak for Data is vulnerable to a heap-based buffer overflow in Perl (CVE-2020-10543)](https://www.ibm.com/support/pages/node/6610240)
* [Security Bulletin: IBM Watson Speech Services Cartridge for IBM Cloud Pak for Data is vulnerable to an integer overflow in Perl (CVE-2020-10878)](https://www.ibm.com/support/pages/node/6610242)
* [Security Bulletin: IBM Watson Speech Services Cartridge for IBM Cloud Pak for Data is vulnerable to a buffer overflow in Perl (CVE-2020-12723)](https://www.ibm.com/support/pages/node/6610283)
* [Security Bulletin: IBM Watson Speech Services Cartridge for IBM Cloud Pak for Data is vulnerable to a denial of service in urllib3 (CVE-2021-33503)](https://www.ibm.com/support/pages/node/6610285)
* [Security Bulletin: IBM Watson Speech Services Cartridge for IBM Cloud Pak for Data is vulnerable to injection attacks in Ansible (CVE-2021-3583)](https://www.ibm.com/support/pages/node/6610287)
* [Security Bulletin: IBM Watson Speech Services Cartridge for IBM Cloud Pak for Data is vulnerable to a denial of service in Golang Go (CVE-2022-23772)](https://www.ibm.com/support/pages/node/6610289)
* [Security Bulletin: IBM Watson Speech Services Cartridge for IBM Cloud Pak for Data is vulnerable to incorrect access control in Golang Go (CVE-2022-23773)](https://www.ibm.com/support/pages/node/6610291)
* [Security Bulletin: IBM Watson Speech Services Cartridge for IBM Cloud Pak for Data is vulnerable to a denial of service in Golang Go (CVE-2022-23806)](https://www.ibm.com/support/pages/node/6610293)
To prevent IBM from accessing your data for general service improvements, specify true for the parameter. If you opt out, the service logs no user data from your requests, saving no audio or text to disk. You can also opt out at the account level. For more information, see [Request logging](https://cloud.ibm.com/docs/speech-to-text?topic=speech-to-text-data-securitydata-security-request-logging).



Table 31. The X-Watson-Learning-Opt-Out parameter

 Availability and usage Description 

 Previous-generation models Generally available for all languages. 
 Next-generation models Generally available for all languages. 
 WebSocket x-watson-learning-opt-out query parameter of /v1/recognize connection request 
 Synchronous HTTP Request header of each request 
 Asynchronous HTTP Request header of each request 







 X-Watson-Metadata 

An optional string that associates a customer ID with data that is passed for recognition requests. The parameter accepts the argument customer_id={id}. By default, no customer ID is associated with the data. For more information, see [Information security](https://cloud.ibm.com/docs/speech-to-text?topic=speech-to-text-information-security).



Table 32. The X-Watson-Metadata parameter

 Availability and usage Description 

 Previous-generation models Generally available for all languages. 
 Next-generation models Generally available for all languages. 
 WebSocket x-watson-metadata query parameter of /v1/recognize connection request. (You must URL-encode the argument, for example, customer_id%3dmy_customer_ID.) 
 Synchronous HTTP Request header of POST /v1/recognize request 
 Asynchronous HTTP Request header of POST /v1/register_callback and POST /v1/recognitions requests
* [Security Bulletin: IBM Watson Speech Services Cartridge for IBM Cloud Pak for Data is vulnerable to a heap-based buffer overflow in Perl (CVE-2018-18312)](https://www.ibm.com/support/pages/node/6610122)
* [Security Bulletin: IBM Watson Speech Services Cartridge for IBM Cloud Pak for Data is vulnerable to a heap-based buffer overflow in Perl (CVE-2018-18313)](https://www.ibm.com/support/pages/node/6610124)
* [Security Bulletin: IBM Watson Speech Services Cartridge for IBM Cloud Pak for Data is vulnerable to a heap-based buffer overflow in Perl (CVE-2018-18314)](https://www.ibm.com/support/pages/node/6610126)
* [Security Bulletin: IBM Watson Speech Services Cartridge for IBM Cloud Pak for Data is vulnerable to a heap-based buffer overflow in Perl (CVE-2018-6913)](https://www.ibm.com/support/pages/node/6610128)
* [Security Bulletin: IBM Watson Speech Services Cartridge for IBM Cloud Pak for Data is vulnerable to CRLF injection in Python (CVE-2019-11236)](https://www.ibm.com/support/pages/node/6610234)
* [Security Bulletin: IBM Watson Speech Services Cartridge for IBM Cloud Pak for Data is vulnerable to a denial of service in GNU Tar (CVE-2019-9923)](https://www.ibm.com/support/pages/node/6610238)
* [Security Bulletin: IBM Watson Speech Services Cartridge for IBM Cloud Pak for Data is vulnerable to a heap-based buffer overflow in Perl (CVE-2020-10543)](https://www.ibm.com/support/pages/node/6610240)
* [Security Bulletin: IBM Watson Speech Services Cartridge for IBM Cloud Pak for Data is vulnerable to an integer overflow in Perl (CVE-2020-10878)](https://www.ibm.com/support/pages/node/6610242)
If you set the redaction parameter to true, the service automatically forces the smart_formatting parameter to be true, and it disables the keywords, keywords_threshold, max_alternatives, and (for the WebSocket interface) interim_results parameters. For more information, see [Numeric redaction](https://cloud.ibm.com/docs/speech-to-text?topic=speech-to-text-formattingnumeric-redaction).



Table 22. The redaction parameter

 Availability and usage Description 

 Previous-generation models Beta for US English, Japanese, and Korean. 
 Next-generation models Beta for US English, Japanese, and Korean. 
 WebSocket Parameter of JSON start message 
 Synchronous HTTP Query parameter of POST /v1/recognize method 
 Asynchronous HTTP Query parameter of POST /v1/recognitions method 







 smart_formatting 

An optional boolean that indicates whether the service converts dates, times, numbers, currency, and similar values into more conventional representations in the final transcript. For US English, the feature also converts certain keyword phrases into punctuation symbols. By default (false), smart formatting is not performed. For more information, see [Smart formatting](https://cloud.ibm.com/docs/speech-to-text?topic=speech-to-text-formattingsmart-formatting).



Table 23. The smart_formatting parameter

 Availability and usage Description 

 Previous-generation models Beta for US English, Japanese, and Spanish (all dialects). 
 Next-generation models Beta for US English, Japanese, and Spanish (all dialects). It also also available for the en-WW_Medical_Telephony model when US English audio is recognized. 
 WebSocket Parameter of JSON start message 
 Synchronous HTTP Query parameter of POST /v1/recognize method 
 Asynchronous HTTP Query parameter of POST /v1/recognitions method 







 speaker_labels 

An optional boolean that indicates whether the service identifies which individuals spoke which words in a multi-participant exchange.
If you have a web chat integration, for example, you will know that your webhook has an issue if every test message you submit returns a message such as, There is an error with the message you just sent, but feel free to ask me something else. If this message is displayed, use a REST API tool, such as cURL, to send a test /message API request, so you can see the error code and full message that is returned.



Error code details

 Error code and message Description 

 422 Webhook responded with invalid JSON body The webhook's HTTP response body could not be parsed as JSON. 
 422 Error validating webhook response The webhook's HTTP response body was not a valid /message body. 
 422 Webhook responded with [500] status code There's a problem with the external service you called. The code failed or the external server refused the request. 
 500 Processor Exception : [connections to all backends failing] An error occurred in the webhook microservice. It could not connect to backend services. 







 Webhook security 

To authenticate the webhook request, verify the JSON Web Token (JWT) that is sent with the request. The webhook microservice automatically generates a JWT and sends it in the Authorization header with each webhook call. It is your responsibility to add code to the external service that verifies the JWT.

For example, if you specify purple unicorn in the Secret field, you might add code similar to this:

const jwt = require('jsonwebtoken');
...
const token = request.headers.authentication; // grab the "Authentication" header
try {
const decoded = jwt.verify(token, 'purple unicorn');
} catch(err) {
// error thrown if token is invalid
}





 Request body 

It is useful to know the format of the request body of the premessage webhook so that your external code can process it.

The payload contains the request body of the /message (stateful and stateless) v2 API request.