{"id":15640547,"url":"https://github.com/pinto0309/whisper-onnx-cpu","last_synced_at":"2025-04-07T11:10:17.635Z","repository":{"id":169180848,"uuid":"644911442","full_name":"PINTO0309/whisper-onnx-cpu","owner":"PINTO0309","description":"ONNX implementation of Whisper. PyTorch free.","archived":false,"fork":false,"pushed_at":"2024-11-21T06:29:54.000Z","size":1346,"stargazers_count":92,"open_issues_count":0,"forks_count":9,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-03-31T10:05:45.943Z","etag":null,"topics":["cpu","numpy","onnx","whisper"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PINTO0309.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-05-24T14:05:42.000Z","updated_at":"2025-02-12T05:29:38.000Z","dependencies_parsed_at":"2024-12-26T18:30:50.095Z","dependency_job_id":"b44a3e08-c49d-4901-aff2-eab523ab9025","html_url":"https://github.com/PINTO0309/whisper-onnx-cpu","commit_stats":null,"previous_names":["pinto0309/whisper-onnx-cpu"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PINTO0309%2Fwhisper-onnx-cpu","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PINTO0309%2Fwhisper-onnx-cpu/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PINTO0309%2Fwhisper-onnx-cpu/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PINTO0309%2Fwhisper-onnx-cpu/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PINTO0309","download_url":"https://codeload.github.com/PINTO0309/whisper-onnx-cpu/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247640465,"owners_count":20971557,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpu","numpy","onnx","whisper"],"created_at":"2024-10-03T11:37:16.638Z","updated_at":"2025-04-07T11:10:17.614Z","avatar_url":"https://github.com/PINTO0309.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# whisper-onnx-cpu\nPyTorch free.\n\nThis repository has been reimplemented with ONNX using [zhuzilin/whisper-openvino](https://github.com/zhuzilin/whisper-openvino) as a reference.\n\nNo need to install PyTorch or TensorFlow. All backend logic using PyTorch was rewritten to a Numpy implementation from scratch.\n\nClick here for GPU version: https://github.com/PINTO0309/whisper-onnx-tensorrt\n\n## 1. Environment\nAlthough it can run directly on the host PC, I strongly recommend the use of Docker to avoid breaking the environment.\n\n1. Docker\n2. onnx 1.16.1\n3. onnxruntime 1.18.1\n4. etc (See Dockerfile.xxx)\n\n## 2. Converted Models\nhttps://github.com/PINTO0309/PINTO_model_zoo/tree/main/381_Whisper\n\n## 3. Docker run\nDo not use this Docker container in its raw, unprocessed form for operations. It is intended for simple testing only, so administrative privileges have been effectively disabled.\n```bash\ngit clone https://github.com/PINTO0309/whisper-onnx-cpu.git \u0026\u0026 cd whisper-onnx-cpu\n\ndocker run --rm -it \\\n-v `pwd`:/workdir \\\n--device /dev/snd:/dev/snd \\\npinto0309/whisper-onnx-cpu\n```\n\n## 4. Docker build\nIf you do not need to build the docker image by yourself, you do not need to perform this step.\n### 4-1. CPU ver\n```bash\ndocker build -t whisper-onnx-cpu -f Dockerfile.cpu .\n```\n### 4-2. docker run\n```bash\ndocker run --rm -it \\\n-v `pwd`:/workdir \\\n--device /dev/snd:/dev/snd \\\nwhisper-onnx-cpu\n```\n\n## 5. Transcribe\n- `--mode` option\n    ```\n    mic  : Microphone\n    audio: Audito File\n    ```\n- `--language` option\n\n    Fixes the language to be recognized to the specified language. See: [6. Languages](#6-languages)\n\n- `--model` option\n\n  I have a Large size model committed [here](https://github.com/PINTO0309/PINTO_model_zoo/tree/main/381_Whisper), but I was too lazy to provide it to you guys, so I excluded it as an option.\n    ```\n    tiny.en\n    tiny\n    base.en\n    base\n    small.en\n    small\n    medium.en\n    medium\n    ```\n- command\n\n    The onnx file is automatically downloaded when the sample is run. If `--language` is not specified, the tokenizer will auto-detect the language. If you are using a CPU with Hyper-Threading enabled, the code is written so that onnxruntime will infer in parallel with `(number of physical CPU cores * 2 - 1)` to maximize performance. I don't have a high-end CPU, so please try it with a wealthy CPU with about 128 threads.\n    ![image](https://github.com/PINTO0309/whisper-onnx-cpu/assets/33194443/7e9c972b-24c6-4b45-9dc7-a06564ce976e)\n    If you are using a CPU with Hyper-Threading disabled, you may need to comment out the `sess_options` line below.\n    1. https://github.com/PINTO0309/whisper-onnx-cpu/blob/94535cb1ea78ff78c3b8e4cad8dc4e9363f591dc/whisper/model.py#L103-L112\n    2. https://github.com/PINTO0309/whisper-onnx-cpu/blob/94535cb1ea78ff78c3b8e4cad8dc4e9363f591dc/whisper/model.py#L141-L150\n\n    e.g.\n    ```python\n    # From:\n    sess_options = ort.SessionOptions()\n    sess_options.intra_op_num_threads = psutil.cpu_count(logical=True) - 1\n\n    # To:\n    # sess_options = ort.SessionOptions()\n    # sess_options.intra_op_num_threads = psutil.cpu_count(logical=True) - 1\n    ```\n    ```python\n    # From:\n    sess_options=sess_options,\n\n    # To:\n    # sess_options=sess_options,\n    ```\n    Run.\n    ```bash\n    python whisper/transcribe.py --audio xxxx.mp4 --model medium --beam_size 3\n    ```\n- results\n    ```\n    [00:00.000 --\u003e 00:07.240] ステレオ振動推定モデルの最適化 としまして 後半のパート2は 実践\n    [00:07.240 --\u003e 00:11.600] のデモを交えまして 普段 私がどのようにモデルを最適化して 様々な\n    [00:11.600 --\u003e 00:15.040] フレームワークの環境へデプロイ してるかというのを 実際に操作\n    [00:15.040 --\u003e 00:18.280] をこの画面上で見ていただきながら ご理解いただけるように努めたい\n    [00:18.280 --\u003e 00:23.640] と思います それでは早速ですが こちらのGitHubの方に 本日の講演\n    [00:23.640 --\u003e 00:27.120] 内容については 全てチュートリアル をまとめてコミットしております\n    [00:27.120 --\u003e 00:33.880] 2021.0.28 Intel Deep Learning Day HITNET DEMO というちょっと長い名前なんですけ\n    [00:33.880 --\u003e 00:39.120] れども 現状はプライベートになって ますが この講演のタイミングでパブリック\n    [00:39.120 --\u003e 00:43.280] の方に変更したいと思っております 基本的にはこちらの上から順番\n    [00:43.280 --\u003e 00:49.240] にチュートリアルをなぞっていく という形になります まず 本日\n    [00:49.240 --\u003e 00:53.480] 対象にするモデルの内容なんですけ れども Google Researchが公開している\n    [00:53.480 --\u003e 00:58.240] ヒットネットというステレオ振動 推定モデルになります ステレオ\n    [00:58.240 --\u003e 01:01.600] 振動推定って何だよっていう話 なんですけれども こういう一つ\n    [01:01.600 --\u003e 01:09.480] のカメラに二つのRGBのカメラが ついてるタイプの撮影機器を使って\n    [01:09.480 --\u003e 01:13.600] 左目と右目の両方から画像を同時に 取得して記録していくと そういう\n    [01:13.600 --\u003e 01:18.240] シチュエーションにおいて2枚の 画像を同時にモデルに入力する\n    ```\n- parameters\n    ```\n    usage: transcribe.py\n        [-h]\n        [--mode {audio,mic}]\n        [--audio [AUDIO [AUDIO ...]]]\n        [--model {tiny.en,tiny,base.en,base,small.en,small,medium.en,medium}]\n        [--output_dir OUTPUT_DIR]\n        [--verbose VERBOSE]\n        [--task {transcribe,translate}]\n        [--language {af, am, ...}]\n        [--temperature TEMPERATURE]\n        [--best_of BEST_OF]\n        [--beam_size BEAM_SIZE]\n        [--patience PATIENCE]\n        [--length_penalty LENGTH_PENALTY]\n        [--suppress_tokens SUPPRESS_TOKENS]\n        [--initial_prompt INITIAL_PROMPT]\n        [--condition_on_previous_text CONDITION_ON_PREVIOUS_TEXT]\n        [--temperature_increment_on_fallback TEMPERATURE_INCREMENT_ON_FALLBACK]\n        [--compression_ratio_threshold COMPRESSION_RATIO_THRESHOLD]\n        [--logprob_threshold LOGPROB_THRESHOLD]\n        [--no_speech_threshold NO_SPEECH_THRESHOLD]\n\n    optional arguments:\n      -h, --help\n        show this help message and exit\n      --mode {audio,mic}\n        audio: Audio file, mic: Microphone\n        (default: audio)\n      --audio [AUDIO [AUDIO ...]]\n        Specify the path to at least one or more audio files (mp4, mp3, etc.).\n        e.g. --audio aaa.mp4 bbb.mp3 ccc.mp4\n        (default: None)\n      --model {tiny.en,tiny,base.en,base,small.en,small,medium.en,medium}\n        name of the Whisper model to use\n        (default: small)\n      --output_dir OUTPUT_DIR, -o OUTPUT_DIR\n        directory to save the outputs\n        (default: .)\n      --verbose VERBOSE\n        whether to print out the progress and debug messages\n        (default: True)\n      --task {transcribe,translate}\n        whether to perform X-\u003eX speech recognition ('transcribe') or\n        X-\u003eEnglish translation ('translate')\n        (default: transcribe)\n      --language {af, am, ...}\n        language spoken in the audio, specify None to perform language detection\n        See: [6. Languages](#6-languages)\n        (default: None)\n      --temperature TEMPERATURE\n        temperature to use for sampling\n        (default: 0)\n      --best_of BEST_OF\n        number of candidates when sampling with non-zero temperature\n        (default: 5)\n      --beam_size BEAM_SIZE\n        number of beams in beam search, only applicable when temperature is zero\n        (default: 5)\n      --patience PATIENCE\n        optional patience value to use in beam decoding,\n        as in https://arxiv.org/abs/2204.05424,\n        the default (1.0) is equivalent to conventional beam search\n        (default: None)\n      --length_penalty LENGTH_PENALTY\n        optional token length penalty coefficient (alpha) as in\n        https://arxiv.org/abs/1609.08144, uses simple lengt normalization by default\n        (default: None)\n      --suppress_tokens SUPPRESS_TOKENS\n        comma-separated list of token ids to suppress during sampling;\n        '-1' will suppress most special characters except common punctuations\n        (default: -1)\n      --initial_prompt INITIAL_PROMPT\n        optional text to provide as a prompt for the first window.\n        (default: None)\n      --condition_on_previous_text CONDITION_ON_PREVIOUS_TEXT\n        if True, provide the previous output of the model as a prompt for the next window;\n        disabling may make the text inconsistent across windows, but the model becomes\n        less prone to getting stuck in a failure loop\n        (default: True)\n      --temperature_increment_on_fallback TEMPERATURE_INCREMENT_ON_FALLBACK\n        temperature to increase when falling back when the decoding fails to meet either of\n        the thresholds below\n        (default: 0.2)\n      --compression_ratio_threshold COMPRESSION_RATIO_THRESHOLD\n        if the gzip compression ratio is higher than this value, treat the decoding as failed\n        (default: 2.4)\n      --logprob_threshold LOGPROB_THRESHOLD\n        if the average log probability is lower than this value, treat the decoding as failed\n        (default: -1.0)\n      --no_speech_threshold NO_SPEECH_THRESHOLD\n        if the probability of the \u003c|nospeech|\u003e token is higher than this value AND\n        the decoding has failed due to `logprob_threshold`, consider the segment as silence\n        (default: 0.6)\n    ```\n## 6. Languages\nhttps://github.com/PINTO0309/whisper-onnx-tensorrt/blob/main/whisper/tokenizer.py\n\n\u003cdetails\u003e\u003csummary\u003eLanguages List\u003c/summary\u003e\u003cdiv\u003e\n\n```\nLANGUAGES = {\n    \"en\": \"english\",\n    \"zh\": \"chinese\",\n    \"de\": \"german\",\n    \"es\": \"spanish\",\n    \"ru\": \"russian\",\n    \"ko\": \"korean\",\n    \"fr\": \"french\",\n    \"ja\": \"japanese\",\n    \"pt\": \"portuguese\",\n    \"tr\": \"turkish\",\n    \"pl\": \"polish\",\n    \"ca\": \"catalan\",\n    \"nl\": \"dutch\",\n    \"ar\": \"arabic\",\n    \"sv\": \"swedish\",\n    \"it\": \"italian\",\n    \"id\": \"indonesian\",\n    \"hi\": \"hindi\",\n    \"fi\": \"finnish\",\n    \"vi\": \"vietnamese\",\n    \"iw\": \"hebrew\",\n    \"uk\": \"ukrainian\",\n    \"el\": \"greek\",\n    \"ms\": \"malay\",\n    \"cs\": \"czech\",\n    \"ro\": \"romanian\",\n    \"da\": \"danish\",\n    \"hu\": \"hungarian\",\n    \"ta\": \"tamil\",\n    \"no\": \"norwegian\",\n    \"th\": \"thai\",\n    \"ur\": \"urdu\",\n    \"hr\": \"croatian\",\n    \"bg\": \"bulgarian\",\n    \"lt\": \"lithuanian\",\n    \"la\": \"latin\",\n    \"mi\": \"maori\",\n    \"ml\": \"malayalam\",\n    \"cy\": \"welsh\",\n    \"sk\": \"slovak\",\n    \"te\": \"telugu\",\n    \"fa\": \"persian\",\n    \"lv\": \"latvian\",\n    \"bn\": \"bengali\",\n    \"sr\": \"serbian\",\n    \"az\": \"azerbaijani\",\n    \"sl\": \"slovenian\",\n    \"kn\": \"kannada\",\n    \"et\": \"estonian\",\n    \"mk\": \"macedonian\",\n    \"br\": \"breton\",\n    \"eu\": \"basque\",\n    \"is\": \"icelandic\",\n    \"hy\": \"armenian\",\n    \"ne\": \"nepali\",\n    \"mn\": \"mongolian\",\n    \"bs\": \"bosnian\",\n    \"kk\": \"kazakh\",\n    \"sq\": \"albanian\",\n    \"sw\": \"swahili\",\n    \"gl\": \"galician\",\n    \"mr\": \"marathi\",\n    \"pa\": \"punjabi\",\n    \"si\": \"sinhala\",\n    \"km\": \"khmer\",\n    \"sn\": \"shona\",\n    \"yo\": \"yoruba\",\n    \"so\": \"somali\",\n    \"af\": \"afrikaans\",\n    \"oc\": \"occitan\",\n    \"ka\": \"georgian\",\n    \"be\": \"belarusian\",\n    \"tg\": \"tajik\",\n    \"sd\": \"sindhi\",\n    \"gu\": \"gujarati\",\n    \"am\": \"amharic\",\n    \"yi\": \"yiddish\",\n    \"lo\": \"lao\",\n    \"uz\": \"uzbek\",\n    \"fo\": \"faroese\",\n    \"ht\": \"haitian creole\",\n    \"ps\": \"pashto\",\n    \"tk\": \"turkmen\",\n    \"nn\": \"nynorsk\",\n    \"mt\": \"maltese\",\n    \"sa\": \"sanskrit\",\n    \"lb\": \"luxembourgish\",\n    \"my\": \"myanmar\",\n    \"bo\": \"tibetan\",\n    \"tl\": \"tagalog\",\n    \"mg\": \"malagasy\",\n    \"as\": \"assamese\",\n    \"tt\": \"tatar\",\n    \"haw\": \"hawaiian\",\n    \"ln\": \"lingala\",\n    \"ha\": \"hausa\",\n    \"ba\": \"bashkir\",\n    \"jw\": \"javanese\",\n    \"su\": \"sundanese\",\n}\n```\n\n\u003c/div\u003e\u003c/details\u003e\n\n## 7. Benchmark\n- Intel(R) Core(TM) i9-10900K CPU @ 3.70GHz\n- [youtube](https://www.youtube.com/watch?v=P6UKhR0T6cs)\n  ```\n  python whisper/transcribe.py --audio carmack.mp3 --model tiny.en --beam_size 3\n  ```\n  |audio length|whisper onnx cpu|\n  |:-:|:-:|\n  |92 min|16.43 min|\n  ```\n  Hello, everybody\n  we have a good crowd for John's second talk. It's very exciting. This is the first year that\n  John will be talking twice. A couple things to know. John will talk for about an hour or so\n  and then we'll have 30 minutes for questions. The mic is right there. That's actually just right there.\n  And so just line up when we get to the questions. Try to keep your questions on what John talked about.\n  If you get up and ask them and do them for us coming out, I'm going to kick you in the knee. So right there.\n  So I will not waste any more time but you guys in the back because John's going to write\n  in the board and we have plenty empty seats here. You can file in. Don't worry that there's\n  reserved seats there. Just go ahead and sit in them. All right, I will give you guys Mr. Carmack.\n  Okay, so I guess this is sort of going to be like a schoolroom session. I diluted myself for a little\n  while that this would be the first talk where I ever actually made slides to present but it didn't\n  actually come to pass. So it's going to be notes and talking and some scribbling on the board again.\n  So almost all of what we do in game development is really more about artistry. It's about trying\n  to appeal to people but there's the small section of the small section of what goes into the\n  games that's drawing the pictures on the screen that you can at least make some ties to the\n  you know the hardest of hard sciences and while you know it's great that people are\n  researching the psychology in the different ways that people think about\n    :\n    :\n  ```\n  ```\n  python whisper/transcribe.py --audio carmack.mp3 --model tiny.en --beam_size 2\n  ```\n  |audio length|whisper onnx cpu|\n  |:-:|:-:|\n  |92 min|11.61 min|\n  ```\n  Hello, everybody\n  we have a good crowd for John's second talk. It's very exciting. This is the first year that\n  John will be talking twice. A couple things to know. John will talk for about an hour or so\n  and then we'll have 30 minutes for questions. The mic is right there. That's actually just right there.\n  And so just line up when we get to the questions. Try to keep your questions on what John talked about.\n  If you get up and ask Lynn Doom for us coming out, I'm going to kick you in the knee. So right there.\n  So I will not waste any more time but you guys in the back because John's going to write\n  in the board and we have plenty empty seats here. You can file in. Don't worry that there's\n  reserved seats there. Just go ahead and sit in them. All right, I will give you guys Mr. Carmack.\n  Okay, so I guess this is sort of going to be like a school room session. I diluted myself for a little\n  while that this would be the first talk where I ever actually made slides to present but it didn't\n  actually come to pass. So it's going to be notes and talking and some scribbling on the board again.\n  So almost all of what we do in game development is really more about artistry. It's about trying\n  to appeal to people but there's the small section of the small section of what goes into the\n  games that's drawing the pictures on the screen that you can at least make some ties to the\n  you know the hardest of hard sciences and while you know it's great that people are\n  researching the psychology in the different ways that people think about\n    :\n    :\n  ```\n  ```\n  python whisper/transcribe.py --audio carmack.mp3 --model tiny.en --beam_size 5\n  ```\n  |audio length|whisper onnx cpu|\n  |:-:|:-:|\n  |92 min|28.45 min|\n  ```\n  Hello, everybody\n  we have a good crowd for John's second talk. It's very exciting. This is the first year that\n  John will be talking twice. A couple things to know. John will talk for about an hour or so\n  and then we'll have 30 minutes for questions. The mic is right there. That's actually just right there.\n  And so just line up when we get to the questions. Try to keep your questions on what John talked about.\n  If you get up and ask them and do them for us coming out, I'm going to kick you in the knee. So right there.\n  So I will not waste any more time but you guys in the back because John's going to write\n  in the board and we have plenty empty seats here. You can file in. Don't worry that there's\n  reserved seats there. Just go ahead and sit in them. All right, I will give you guys Mr. Carmack.\n  Okay, so I guess this is sort of going to be like a schoolroom session. I diluted myself for a little\n  while that this would be the first talk where I ever actually made slides to present but it didn't\n  actually come to pass. So it's going to be notes and talking and some scribbling on the board again.\n  So almost all of what we do in game development is really more about artistry. It's about trying\n  to appeal to people but there's the small section of the small section of what goes into the\n  games that's drawing the pictures on the screen that you can at least make some ties to the\n  you know the hardest of hard sciences and while you know it's great that people are\n  researching the psychology in the different ways that people think about\n    :\n    :\n  ```\n  ```\n  python whisper/transcribe.py --audio carmack.mp3 --model base.en --beam_size 3\n  ```\n  |audio length|whisper onnx cpu|\n  |:-:|:-:|\n  |92 min|40.51 min|\n  ```\n  Hello everybody.\n  We have a good crowd for John's second talk.\n  It's very exciting.\n  This is the first year that John will be talking twice.\n  A couple of things to know.\n  John will talk for about an hour or so,\n  and then we'll have 30 minutes for questions.\n  The mic is right there.\n  So just line up when we get to the questions.\n  Try to keep your questions on what John talked about.\n  If you get up and ask when Doom 4 is coming out,\n  I'm going to kick you in the knee.\n  So right there.\n  So I will not waste any more time,\n  but you guys in the back,\n  because John's going to write in the board,\n  and we have plenty empty seats here, you can file in.\n  Don't worry that there's reserved seats there.\n  Just go ahead and sit in them.\n  Alright, I will give you guys Mr. Carmack.\n  APPLAUSE\n  OK, so I guess this is sort of going to be like a school room session.\n  I deluded myself for a little while that this would be the first talk\n  where I ever actually made slides to present,\n  but it didn't actually come to pass,\n  so it's going to be notes and talking and some scribbling on the board again.\n  So almost all of what we do in game development\n  is really more about artistry.\n  It's about trying to appeal to people,\n  but there's the small section of the small section of what goes into the game\n  that's drawing the pictures on the screen\n  that you can at least make some ties to the hardest of hard sciences.\n  And while it's great that people are researching the psychology\n    :\n    :\n  ```\n  ```\n  python whisper/transcribe.py --audio carmack.mp3 --model base.en --beam_size 2\n  ```\n  |audio length|whisper onnx cpu|\n  |:-:|:-:|\n  |92 min|27.68 min|\n  ```\n  Hello everybody.\n  We have a good crowd for John's second talk.\n  It's very exciting.\n  This is the first year that John will be talking twice.\n  A couple of things to know.\n  John will talk for about an hour or so,\n  and then we'll have 30 minutes for questions.\n  The mic is right there.\n  So just line up when we get to the questions.\n  Try to keep your questions on what John talked about.\n  If you get up and ask when Doom 4 is coming out,\n  I'm going to kick you in the knee.\n  So right there.\n  So I will not waste any more time,\n  but you guys in the back,\n  because John's going to write in the board,\n  and we have plenty empty seats here, you can file in.\n  Don't worry that there's reserved seats there.\n  Just go ahead and sit in them.\n  Alright, I will give you guys Mr. Carmack.\n  APPLAUSE\n  OK, so I guess this is sort of going to be like a school room session.\n  I deluded myself for a little while that this would be the first talk\n  where I ever actually made slides to present,\n  but it didn't actually come to pass,\n  so it's going to be notes and talking and some scribbling on the board again.\n  So almost all of what we do in game development\n  is really more about artistry.\n  It's about trying to appeal to people,\n  but there's the small section of the small section of what goes into the game\n  that's drawing the pictures on the screen\n  that you can at least make some ties to the hardest of hard sciences.\n  And while it's great that people are researching the psychology\n    :\n    :\n  ```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpinto0309%2Fwhisper-onnx-cpu","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpinto0309%2Fwhisper-onnx-cpu","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpinto0309%2Fwhisper-onnx-cpu/lists"}