IBMStreams / administration

Umbrella project for the IBMStreams organization. This project will be used for the management of the individual projects within the IBMStreams organization.
Other
19 stars 10 forks source link

Proposal to create a new streamsx.sttgateway repository #136

Closed nysenthil closed 5 years ago

nysenthil commented 5 years ago

Objective I make this request to create a new streamsx.sttgateway repository. This will contain a new toolkit named com.ibm.streamsx.sttgateway with a new C++ operator named WatsonSTT. Primary purpose of this toolkit is to do speech to text conversion by invoking the "Watson Speech To Text" cloud service via the Websocket interface.

Justification This new toolkit is needed for the following business reasons:

  1. This will help our Streams customers who want to use the Watson SpeechToText (STT) service on the IBM public cloud to get the full range of multi-language support and other value added features such as keyword spotting, profanity filtering, smart formatting, custom speech model creation and using them to improve transcription accuracy etc.

  2. IBM Watson Speech team is creating their own ICP (IBM Cloud Private) container to sell it as an on-prem offering very soon. It is important for IBM Streams to provide an option for customers to extend their Streams applications to work with that ICP container. This new toolkit will be instrumental in enabling that strategy.

  3. This toolkit will be useful in embedding the Streams product in other products such as the IBM Voice Gateway etc. that in turn will integrate with the Watson STT public cloud service or ICP.

  4. IBM speech team advised the Streams team to create this toolkit for more closely bridging Streams and the Watson STT service.

  5. Providing access to the Watson STT service on cloud (public and private) from within Streams will expand the customer adoption possibilities for both Streams and Watson STT.

Related information Following points provide useful details to position this new repository in a proper context.

  1. There is already an existing toolkit named com.ibm.streams.speech2text that has an operator named WatsonS2T. Please note the difference in the name of the proposed toolkit (com.ibm.streamsx.sttgateway) that will have a different name for its C++ operator (WatsonSTT). STT here stands for the Watson STT service on public or private cloud.

  2. The existing com.ibm.streams.speech2text toolkit is not shipped with the Streams product. It has a restricted availability via a secure download from an IBM product catalog URL only for those customers who already bought Streams licenses. One of the reasons for this is due to the inclusion of licensed materials owned by the IBM speech group (core speech libraries, speech model files etc.). In the proposed com.ibm.streamsx.sttgateway toolkit, there is no need for shipping the core speech libraries and speech model files since it will use the external STT service via Websocket for performing the speech to text conversion.

  3. In the IBMStreams GitHub, there is already a repository named streamsx.speech2text. It is not named correctly since it doesn't contain any speech2text toolkit of its own. Instead, it simply contains supporting reference applications that could be used in speech to text related usecases. In contrast, the newly proposed streamsx.sttgateway repository will have full fledged speech to text functionality by invoking the Watson STT service via the Websocket interface.

Conclusion Initial development work for the code artifacts of the newly proposed streamsx.sttgateway repository is nearing completion in collaboration with the IBM speech team. Please create this new repository so that I can push the new toolkit code under this repository. That will speed up the realization of the business goals outlined above. Thank you.

ddebrunner commented 5 years ago

Why not use the existing streamsx.speech2text repo and just have the new toolkit com.ibm.streamsx.speechtotext there?

nysenthil commented 5 years ago

The existing streamsx.speech2text repo has been inactive for a year now and the contents present there don't fit very well with the new toolkit we are planning. If possible, please rename that existing repo to streamsx.s2tapps. After that, please create a new repo I requested in this proposal.

joergboe commented 5 years ago

Prerequisite is that there are no licensing problems. I would propose that the name of the new toolkit should reflect the function as an gateway like: streamsx.s2tgateway ..

nysenthil commented 5 years ago

Joerg: Very good suggestion. Thank you. I changed it to streamsx.sttgateway throughout my proposal. We have to go with stt instead of s2t just because our friends in the speech team prefer the acronym STT for their cloud service.

rrea commented 5 years ago

I support this. I think we also need to look at possibly wrappering other open source STT engines to support customer requirements, such as the request at a customer to support French Canadian. Where should items like that be hosted? Not in the gateway, but that would make sense I think in the speech2text repo.

ddebrunner commented 5 years ago

+1

ddebrunner commented 5 years ago

@rrea I think if there are other similar services including non-IBM ones then they would be additional operators in the proposed toolkit, or maybe in some cases additional toolkits in the proposed repo.

ddebrunner commented 5 years ago

@nysenthil Just to note you can start off with a repo in your own space which we can later fork into IBMStreams. I did that for streamsx.datetime. (I don't have auth to create the repo in IBMStreams).

schubon commented 5 years ago

If there is an agreement to start this off and that the repo name shall be streamsx.sttgateway I can create it.

schubon commented 5 years ago

I assumed there was an agreement, so I created: https://github.com/IBMStreams/streamsx.sttgateway