From f97bd12d9fb1bf6e845f911d199ade6a3dfc4141 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ahmet=20=C3=96ner?= Date: Mon, 17 Apr 2023 01:04:31 +0200 Subject: [PATCH] Update Readme --- README.md | 11 +---------- docs/assets/img/banner.png | Bin 18306 -> 0 bytes 2 files changed, 1 insertion(+), 10 deletions(-) delete mode 100644 docs/assets/img/banner.png diff --git a/README.md b/README.md index 74aa98f..a8ee3b0 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ -![Whisper ASR Webservice](https://github.com/ahmetoner/whisper-asr-webservice/blob/main/docs/assets/img/banner.png?raw=true) ![Release](https://img.shields.io/github/v/release/ahmetoner/whisper-asr-webservice.svg) ![Docker Pulls](https://img.shields.io/docker/pulls/onerahmet/openai-whisper-asr-webservice.svg) ![Build](https://img.shields.io/github/actions/workflow/status/ahmetoner/whisper-asr-webservice/docker-publish.yml.svg) ![Licence](https://img.shields.io/github/license/ahmetoner/whisper-asr-webservice.svg) +# Whisper ASR Webservice Whisper is a general-purpose speech recognition model. It is trained on a large dataset of diverse audio and is also a multi-task model that can perform multilingual speech recognition as well as speech translation and language identification. For more details: [github.com/openai/whisper](https://github.com/openai/whisper/) @@ -173,12 +173,3 @@ The ASR model is downloaded each time you start the container, using the large m ```sh docker run -d -p 9000:9000 -e ASR_MODEL=large -v //c/tmp/whisper:/root/.cache/whisper onerahmet/openai-whisper-asr-webservice:latest ``` - - -## TODO - -- Unit tests -- Recognize from path -- Batch recognition from given path/folder -- Live recognition support with HLS -- gRPC support diff --git a/docs/assets/img/banner.png b/docs/assets/img/banner.png deleted file mode 100644 index 8948e7c903e6b8c7f588622b498b4b39ddd92172..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18306 zcma*P1zc6zw+6Zeq(ecvTUub#-6bI1CAn$o21P)myFsO-yHk*s?(T+-bZp`+Jm-JT zz3<-pesBF$*xNPdn(Lcmj5)@beaiBLfx5Qdzrq$&smzXSY!gA51!+ro3x z3jBEDtSTc8Djg!(1wJ5HiYbbLKowDFwAnMvK z+KR9FO&#o5P0SqLnzMS?IRbZsK!PG3jwYry<}MU(%`GAJLR3dhZB!HxGa)K1F2z@h zjuPfp5LquLb2Tp|byF`JQ$8~)5n&8eK@WbQ2Rm~Y6ABMITYG1I4zR&cXHy_`}V@ z4(8|L=I7v{`1_&)9!EhT=wxQWuPQ11_v3(1LR3~RE{^hZVw}=^+~QI^lCLS||h@A99vX8*R8{y*FPnWo1%69gUy3_#M{3F2mMChg>4NAc&~`62)JkR<-k zZvSp;_J0pa^8aqj_V=I!*&gTlzs&nzGWF+MK&XIEf^7dt^y8<0w8GpTPz5JI=0|ZU zQ9vMxUviRS>K=xNi%32%q?VB!#Zeh(K0Xtt|7a*40QwrV6!uaZgjOpUcA5c+5E!9*Wp!Xs9y(W4`RF*00l^_Odx_*Y>^k9 zfJoqYazUW<$FG4a0E5C23H6SP_6?=}M*?Uo8;}7Mf!ayo+(96j_6S7~C|_cwG(nAAB9PhEo;4hc0iJ>m ziRU?7X{wNQni`>9gH4LQMH9K5PaVT!8{i@qUBP_(X$+6N&}F_^MTsPGf&01l{8x*u zesKJ%9wW3!_F?Nu6~azzYZ9fM;?c&fZIv%w$#uV*0R)wT+X|2u}KK|SWSZa$eWol+W- zA_l4peE6=CE7w=QJRLrFf^OkAnS4b-X0}D5e;l{511}Ri2mu8F3IbgO!%{&YF}U|l z{Q1Jch&nS1`os= z;thWap(VlGyV7`WO`P+=GwRi~WBVu_+9Pfe2`E!?WFXM5z(?eU{vc;X;fQ7JalrH* z_4≻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