Browsed by
Category: AI

Local installation of Fish Audio on Windows 10

Local installation of Fish Audio on Windows 10

I’ve been exploring

Fish Audio S2 Pro is one of (if not the) best text-to-speech solutions. Getting it installed locally and working, however, isn’t so straightforward on Windows 10. There are at least 2 different ways to get this working. One of which is to download/run

Method 0: Use the free online version

It’s not hard – but expect to be limited in usage. https://fish.audio/app/text-to-speech

Method 1: Fish S2 Pro Zero Docker

  1. Go to the Huggingface Fish Audio S3 Pro project page.
  2. Ensure you’re logged into Huggingface, and you should see the ‘Run Locally’ option Go up in the link
  3. Ensure Docker is installed on the Windows desktop and WSL support is enabled in the Docker options.
  4. Open a WSL session running Ubuntu 24.04 or similar.
  5. Enter the docker command:
docker run -it -p 7860:7860 --platform=linux/amd64 --gpus all \
registry.hf.space/artificialguybr-fish-s2-pro-zero:latest python app.py

6. You’ll see the docker container download along with the models and start up:

(base) me@DESKTOP:/mnt/c/fish-audio-s2$ docker run -it -p 7860:7860 --platform=linux/amd64 --gpus all registry.hf.space/artificialguybr-fish-s2-pro-zero:latest python app.py
Cloning into 'fish-speech'…
remote: Enumerating objects: 6605, done.
remote: Counting objects: 100% (1088/1088), done.
remote: Compressing objects: 100% (292/292), done.
remote: Total 6605 (delta 905), reused 796 (delta 796), pack-reused 5517 (from 2)
Receiving objects: 100% (6605/6605), 28.21 MiB | 10.42 MiB/s, done.
Resolving deltas: 100% (4328/4328), done.
Warning: You are sending unauthenticated requests to the HF Hub. Please set a HF_TOKEN to enable higher rate limits and faster downloads.
Fetching 13 files: 100%|████████████████████████████████████████████████████████████████| 13/13 [02:19<00:00, 10.72s/it]Fetching 13 files: 62%|████████████████████████████████████████ | 8/13 [02:19<01:13, 14.78s/itYou are using a model of type fish_qwen3_omni to instantiate a model of type `. This may be expected if you are loading a checkpoint that shares a subset of the architecture (e.g., loading asam2_video checkpoint intoSam2Model), but is otherwise not supported and can yield errors. Please verify that the checkpoint is compatible with the model you are instantiating. Download complete: : 11.0GB [02:19, 79.0MB/s] 2026-07-03 18:59:16.787 | INFO | fish_speech.models.text2semantic.llama:from_pretrained:504 - Injected Semantic IDs into Config: 151678-155773 2026-07-03 18:59:16.787 | INFO | fish_speech.models.text2semantic.llama:from_pretrained:520 - Loading model from /home/user/.cache/huggingface/hub/models--fishaudio--s2-pro/snapshots/1de9996b6be38b745688de084d87a5633f714e4e, config: DualARModelArgs(model_type='dual_ar', vocab_size=155776, n_layer=36, n_head=32, dim=2560, intermediate_size=9728, n_local_heads=8, head_dim=128, rope_base=1000000, norm_eps=1e-06, max_seq_len=32768, dropout=0.0, tie_word_embeddings=True, attention_qkv_bias=False, attention_o_bias=False, attention_qk_norm=True, codebook_size=4096, num_codebooks=10, semantic_begin_id=151678, semantic_end_id=155773, use_gradient_checkpointing=True, initializer_range=0.01976423537605237, is_reward_model=False, scale_codebook_embeddings=True, audio_embed_dim=2560, n_fast_layer=4, fast_dim=2560, fast_n_head=32, fast_n_local_heads=8, fast_head_dim=128, fast_intermediate_size=9728, fast_attention_qkv_bias=False, fast_attention_qk_norm=False, fast_attention_o_bias=False, norm_fastlayer_input=True) 2026-07-03 18:59:46.228 | INFO | fish_speech.models.text2semantic.llama:from_pretrained:552 - Loading sharded safetensors weights 2026-07-03 18:59:46.717 | INFO | fish_speech.models.text2semantic.llama:from_pretrained:588 - Model weights loaded - Status: <All keys matched successfully> 2026-07-03 18:59:48.707 | INFO | fish_speech.models.text2semantic.inference:init_model:366 - Restored model from checkpoint 2026-07-03 18:59:48.708 | INFO | fish_speech.models.text2semantic.inference:init_model:371 - Using DualARTransformer/usr/local/lib/python3.10/site-packages/torch/nn/utils/weight_norm.py:144: FutureWarning:torch.nn.utils.weight_normis deprecated in favor oftorch.nn.utils.parametrizations.weight_norm`.
WeightNorm.apply(module, name, dim)
* Running on local URL: http://0.0.0.0:7860, with SSR ⚡ (experimental, to disable set ssr_mode=False in launch())
* To create a public link, set share=True in launch().

7. Open a browser to localhost:7860

Method 2: Build and run locally

  1. Clone the github project: https://github.com/fishaudio/fish-speech
  2. Open a WSL Ubuntu 24.04 installation.
  3. Ensure you have nVidia support in WSL installed. Rebooting after this is often required.
  4. Follow the installation/build instructions.
    • Run the conda setup steps
    • Run the UV steps for CPU or GPU depending on your install
    • Skip the docker part
  5. WebUI On the left menu, select the ‘Inference’ from the list of items
    • Download the model weights with the hf command
      • You can test using the command line inference steps if you want to test it
    • Scroll down to the WebUI inference
    • Install Gradio if you want the older style (not so much recommended, but easier than Awesome WebUI)
    • Install the ‘Awesome WebUI’
    • Start the ‘Awesome WebUI’ using the python command
  6. Server
    • Select the ‘Server’ item from the list of left-hand items
    • Run the python command to start the server locally.
    • Try out one of the api_client.py commands to test it out

Things you can do with the server:

Other links:

People aren’t buying 5090’s for game features

People aren’t buying 5090’s for game features

After 18 months, graphics features like multi-frame generation are working really well, but only a handful of games support path tracing to use it. How few? 7 titles. Even worse, the Steam list of top 100 most anticipated titles – only 1 has path tracing that allows multi-frame generation.

And yet, the price of 5090’s continues to remain sky high and selling better than ever; but almost certainly because of the 32gb of RAM for AI usage. I know that’s why I got my 5090.

With the huge implosing of the game development world, the rise of faster and cheaper to develop indie titles, its no wonder top-end graphics is taking a back seat.

Claude Design to replace the UI marketplace?

Claude Design to replace the UI marketplace?

Claude Design has hit the scene – and Figma stock dropped 7.7% the same day.

A small team with access to a frontier model can reach “good enough” on a design tool in a matter of weeks. The question being priced in isn’t “will Figma die?” It’s “what is Figma’s moat, actually?”

Learn more about Claude Design here or read a step-by-step walkthrough in this Medium article.

VibeOS – the fully hallucinated AI operating system

VibeOS – the fully hallucinated AI operating system

While this was a parody/joke – it’s actually pointing in the direction software is likely headed. You can tell some of the folks in the video are seeing it. What if you just type in the application you want and it’s generated for you? Sure this is flaky now, but given the advancements as well as putting guard rails on things to guide it – this is all very much a possible future. You don’t buy software anymore and SaaS companies don’t exist either – you make the software you want by asking for it and the system generates exactly the app you need.

Download it here: https://vibeos.sh

CUDA with WSL2+Docker on Windows for Kokoro

CUDA with WSL2+Docker on Windows for Kokoro

In order to get Kokoro text-to-speech to work with my 5090 GPU inside a Docker container on Windows, I had to get the CUDA setup inside WSL2 using Docker images on Windows. Here were the helpful links:

Setup the WSL image with CUDA and Docker support.

  1. Ensure you have WSL2 installed on your Windows desktop
  2. Install Docker for Windows
  3. Reboot
  4. Ensure you have the latest NVidia GPU driver installed on your Windows desktop
  5. Ensure you have the latest NVidia CUDA sdk installed on your Windows desktop
  6. A system reboot here is a good idea
  7. Ensure you have Microsoft Visual Studio installed for best results
    • The CUDA sdk requires you have Visual Studio 2019, 2022, or 2026 installed. I have found 2022 is a solid version and seems to work well, but haven’t tried 2019 or 2026 recently.
    • Note you need to use the ‘Visual Studio x64 Native tools for VS2022’ command prompt if you expect to run command line compiler operations.
  8. Now you need to install CUDA support inside WSL NVidia guide
    • First follow the instructions to ensure Docker support
    • Second follow the installation of CUDA Toolkit and CUDA Developer Tools inside WSL2 on an Ubuntu 24.04 (or later) WSL distro.
  9. Optional: install nvcc so y
    • sudo apt install nvidia-cuda-toolkit
    • nvcc –version
      • This prints out the version and ensures the nvcc sdk compiler is working inside your WSL image
  10. Ensure Docker Desktop for Windows is running on your desktop
  11. Turn on support for Docker in WSL
    • Settings -> From the General tab, enable Use WSL 2 based engine.
    • Reboot
  12. Ensure your WSL image inside WSL has Docker support enabled
    • Settings -> Resources -> WSL integration tab -> Find and enable the slider for the WSL image under ‘Enable integration with additional distros’
  13. I had to reboot my system at this point to get both the WSL and Windows Docker Desktop to see each other properly
  14. After reboot, ensure Windows Docker Desktop is running
  15. Set the user permissions in the WSL session to enable access (permission denied while trying to connect to the docker API at unix:///var/run/docker.sock)
    • sudo usermod -a -G docker <username>

Now run the Kokoro docker command inside your WSL2 image:

  • CPU only:
    • docker run –gpus all -p 8880:8880 ghcr.io/remsky/kokoro-fastapi-cpu:latest
  • NVidia gpu:
    • docker run –gpus all -p 8880:8880 ghcr.io/remsky/kokoro-fastapi-gpu:latest-cu128

Connect with the default web link:

Subsequent runs:

  1. Ensure the Docker Desktop is running
  2. Start the WSL -d <image> you set up in the first part that’s has all the CUDA stuff installed
  3. run the Kokoro docker command inside WSL
  4. Connect your web browser to the localhost address

Raw WSL history (commands in WSL)

You can’t follow this 100% directly. Note you have to stop and restart/reboot WSL and desktop as you do the other steps above.

# NVidia CUDA setup inside WSL2 Ubuntu 24.04 image
wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin
sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/13.3.0/local_installers/cuda-repo-wsl-ubuntu-13-3-local_13.3.0-1_amd64.deb
sudo dpkg -i cuda-repo-wsl-ubuntu-13-3-local_13.3.0-1_amd64.deb
sudo cp /var/cuda-repo-wsl-ubuntu-13-3-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda-toolkit-13-3
exit
sudo apt install nvidia-cuda-toolkit
nvcc --version
exit
sudo usermod -a -G docker matt
exit
docker run --gpus all -p 8880:8880 ghcr.io/remsky/kokoro-fastapi-gpu:latest-cu128

Untested but possibly interesting:

Wielder’s Edge Series’ Articles

Wielder’s Edge Series’ Articles

This is a really interesting set of DEV articles written by a software engineer. Initially a set of 8 articles, it’s expanded to 21 and counting. It does an excellent job of describing and analyzing exactly the conditions engineers are going through – from watching an AI agent do a week’s worth of work in 1 hour while they were in a meeting to seeing 27.5% of programmer jobs disappear in 2 years.

Definitely a good read.

Running Gemma 4 with a 5090 on llama.cpp

Running Gemma 4 with a 5090 on llama.cpp

First, grab a trustworthy Gemma 4 gguf model (unsloth is great). I have been fooling around with Q4, Q6, Q8 models of gemma-4-26B and gemma-4-31B models.

opertyE2BE4B31B Dense
Total Parameters2.3B effective (5.1B with embeddings)4.5B effective (8B with embeddings)30.7B
Layers354260
Sliding Window512 tokens512 tokens1024 tokens
Context Length128K tokens128K tokens256K tokens
Vocabulary Size262K262K262K
Supported ModalitiesText, Image, AudioText, Image, AudioText, Image
Vision Encoder Parameters~150M~150M~550M
Audio Encoder Parameters~300M~300MNo Audio

Grab the latest version of llama.cpp and compile it with CUDA support for GPU usage (or CPU if you don’t have a CUDA enabled GPU).

Then set up your server command line and it seems some get about 600 Tok/s using 26B on a 5090, or maybe try out the turbo-quant variant of llama-cpp (I have not).

Then take off and make some nifty projects with it.