Skip to content

Commit b0a1159

Browse files
committed
Initial release
0 parents  commit b0a1159

10 files changed

+16208
-0
lines changed

.gitignore

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
sync.sh
2+
main
3+
*.o

Makefile

+109
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
main: ggml.o main.o
2+
g++ -o main ggml.o main.o
3+
4+
ggml.o: ggml.c ggml.h
5+
gcc -O3 -mavx -mavx2 -mfma -mf16c -c ggml.c
6+
7+
main.o: main.cpp ggml.h
8+
g++ -O3 -std=c++11 -c main.cpp
9+
10+
# clean up the directory
11+
clean:
12+
rm -f *.o main
13+
14+
# run the program
15+
run: main
16+
./main
17+
18+
# download the following audio samples into folder "./samples":
19+
.PHONY: samples
20+
samples:
21+
@echo "Downloading samples..."
22+
mkdir -p samples
23+
@wget --quiet --show-progress -O samples/gb0.ogg https://upload.wikimedia.org/wikipedia/commons/2/22/George_W._Bush%27s_weekly_radio_address_%28November_1%2C_2008%29.oga
24+
@wget --quiet --show-progress -O samples/gb1.ogg https://upload.wikimedia.org/wikipedia/commons/1/1f/George_W_Bush_Columbia_FINAL.ogg
25+
@wget --quiet --show-progress -O samples/hp0.ogg https://upload.wikimedia.org/wikipedia/en/d/d4/En.henryfphillips.ogg
26+
@echo "Converting to 16-bit WAV ..."
27+
@ffmpeg -loglevel -0 -y -i samples/gb0.ogg -ar 16000 -ac 1 -c:a pcm_s16le samples/gb0.wav
28+
@ffmpeg -loglevel -0 -y -i samples/gb1.ogg -ar 16000 -ac 1 -c:a pcm_s16le samples/gb1.wav
29+
@ffmpeg -loglevel -0 -y -i samples/hp0.ogg -ar 16000 -ac 1 -c:a pcm_s16le samples/hp0.wav
30+
31+
.PHONY: tiny.en
32+
tiny.en: main
33+
@echo "Downloading tiny.en (75 MB just once)"
34+
mkdir -p models
35+
@if [ ! -f models/ggml-tiny.en.bin ]; then \
36+
wget --quiet --show-progress -O models/ggml-tiny.en.bin https://ggml.ggerganov.com/ggml-model-whisper-tiny.en.bin ; \
37+
fi
38+
@echo "==============================================="
39+
@echo "Running tiny.en on all samples in ./samples ..."
40+
@echo "==============================================="
41+
@echo ""
42+
@for f in samples/*.wav; do \
43+
echo "----------------------------------------------" ; \
44+
echo "[+] Running base.en on $$f ... (run 'ffplay $$f' to listen)" ; \
45+
echo "----------------------------------------------" ; \
46+
echo "" ; \
47+
./main -m models/ggml-tiny.en.bin -f $$f ; \
48+
echo "" ; \
49+
done
50+
51+
.PHONY: base.en
52+
base.en: main
53+
@echo "Downloading base.en (142 MB just once)"
54+
mkdir -p models
55+
@if [ ! -f models/ggml-base.en.bin ]; then \
56+
wget --quiet --show-progress -O models/ggml-base.en.bin https://ggml.ggerganov.com/ggml-model-whisper-base.en.bin ; \
57+
fi
58+
@echo "==============================================="
59+
@echo "Running base.en on all samples in ./samples ..."
60+
@echo "==============================================="
61+
@echo ""
62+
@for f in samples/*.wav; do \
63+
echo "----------------------------------------------" ; \
64+
echo "[+] Running base.en on $$f ... (run 'ffplay $$f' to listen)" ; \
65+
echo "----------------------------------------------" ; \
66+
echo "" ; \
67+
./main -m models/ggml-base.en.bin -f $$f ; \
68+
echo "" ; \
69+
done
70+
71+
.PHONY: small.en
72+
small.en: main
73+
@echo "Downloading small.en (466 MB just once)"
74+
mkdir -p models
75+
@if [ ! -f models/ggml-small.en.bin ]; then \
76+
wget --quiet --show-progress -O models/ggml-small.en.bin https://ggml.ggerganov.com/ggml-model-whisper-small.en.bin ; \
77+
fi
78+
@echo "==============================================="
79+
@echo "Running small.en on all samples in ./samples ..."
80+
@echo "==============================================="
81+
@echo ""
82+
@for f in samples/*.wav; do \
83+
echo "----------------------------------------------" ; \
84+
echo "[+] Running base.en on $$f ... (run 'ffplay $$f' to listen)" ; \
85+
echo "----------------------------------------------" ; \
86+
echo "" ; \
87+
./main -m models/ggml-small.en.bin -f $$f ; \
88+
echo "" ; \
89+
done
90+
91+
.PHONY: medium.en
92+
medium.en: main
93+
@echo "Downloading medium.en (1.5 GB just once)"
94+
mkdir -p models
95+
@if [ ! -f models/ggml-medium.en.bin ]; then \
96+
wget --quiet --show-progress -O models/ggml-medium.en.bin https://ggml.ggerganov.com/ggml-model-whisper-medium.en.bin ; \
97+
fi
98+
@echo "==============================================="
99+
@echo "Running medium.en on all samples in ./samples ..."
100+
@echo "==============================================="
101+
@echo ""
102+
@for f in samples/*.wav; do \
103+
echo "----------------------------------------------" ; \
104+
echo "[+] Running base.en on $$f ... (run 'ffplay $$f' to listen)" ; \
105+
echo "----------------------------------------------" ; \
106+
echo "" ; \
107+
./main -m models/ggml-medium.en.bin -f $$f ; \
108+
echo "" ; \
109+
done

0 commit comments

Comments
 (0)