WEBVTT

NOTE Voice commands that mishear

00:00:00.000 --> 00:00:00.888
[Sacha]: It turns out I cannot

00:00:00.948 --> 00:00:03.229
say start streaming reliably. Sometimes

00:00:03.289 --> 00:00:04.599
I say start screaming.

00:00:04.600 --> 00:00:06.218
[Linkarzu]: Or like if I say Neovim,

00:00:06.838 --> 00:00:07.819
it doesn't get it. It

00:00:07.839 --> 00:00:09.559
says "New of him".

00:00:09.952 --> 00:00:10.553
I want to take a

00:00:10.593 --> 00:00:11.374
look at what you were

00:00:11.414 --> 00:00:12.276
sharing a moment ago.

00:00:14.579 --> 00:00:16.121
The speech to text,

00:00:16.542 --> 00:00:18.985
and it happens in real time, right?

00:00:18.986 --> 00:00:20.287
[Sacha]: Oh yeah, yeah.

NOTE How the live transcript works

00:00:20.499 --> 00:00:21.880
[Linkarzu]: But I don't do stuff

00:00:22.020 --> 00:00:23.141
real-time the way that

00:00:23.161 --> 00:00:24.263
you're doing right now.

00:00:24.264 --> 00:00:25.696
The transcription happens

00:00:25.697 --> 00:00:27.161
when we're done with the call

00:00:27.162 --> 00:00:29.344
and the process starts automatically.

00:00:30.005 --> 00:00:31.446
And a few hours after,

00:00:31.586 --> 00:00:32.506
I have the clips in

00:00:32.526 --> 00:00:33.727
my dashboard that I can

00:00:33.847 --> 00:00:35.448
upload if I want, right?

00:00:35.468 --> 00:00:37.489
But it's not real-time and

00:00:37.509 --> 00:00:39.170
I'm like, oh, and I saw

00:00:39.851 --> 00:00:40.911
how you did it on

00:00:40.951 --> 00:00:41.892
your side and it's pretty

00:00:42.152 --> 00:00:43.133
accurate. Like,

00:00:43.773 --> 00:00:44.613
what's the magic?

00:00:44.994 --> 00:00:45.994
What are you doing there?

00:00:46.375 --> 00:00:47.315
You're sending it

00:00:47.675 --> 00:00:48.882
somewhere, right?

00:00:48.883 --> 00:00:50.758
[Sacha]: No, this is an entirely local

00:00:50.818 --> 00:00:51.999
model and I'm running

00:00:52.740 --> 00:00:53.701
it in a computer with

00:00:53.761 --> 00:00:55.323
hardly any GPU. So I'm

00:00:55.363 --> 00:00:56.324
actually just making it use

00:00:56.404 --> 00:00:57.285
CPU only

00:00:58.226 --> 00:00:59.868
for the speech recognition because

00:00:59.888 --> 00:01:02.531
I have a Lenovo P52 from

00:01:02.571 --> 00:01:03.091
2018, I think.

00:01:04.773 --> 00:01:05.734
So it doesn't

00:01:06.455 --> 00:01:07.798
do this GPU thing very well.

00:01:07.799 --> 00:01:08.817
I think you're usually

00:01:08.857 --> 00:01:10.738
On a Mac, so you're

00:01:10.798 --> 00:01:11.899
spoiled for choices there.

00:01:12.320 --> 00:01:13.861
But speech recognition has gotten

00:01:14.021 --> 00:01:15.442
really good over the last

00:01:15.483 --> 00:01:16.103
few years.

00:01:16.583 --> 00:01:18.025
I'm using Orukeet at

00:01:18.065 --> 00:01:18.545
the moment.

00:01:18.546 --> 00:01:19.727
It's a multilingual model,

00:01:19.728 --> 00:01:20.667
so it can handle my

00:01:21.027 --> 00:01:22.529
poor French pronunciations

00:01:23.369 --> 00:01:24.470
just as fine as my

00:01:24.510 --> 00:01:25.031
English ones.

00:01:25.791 --> 00:01:26.732
I can press my

00:01:27.033 --> 00:01:27.882
keyboard shortcut.

00:01:27.883 --> 00:01:28.554
For example,

00:01:28.594 --> 00:01:29.114
I can say,

00:01:30.015 --> 00:01:30.896
this is a test during

00:01:30.916 --> 00:01:31.877
a chat with linkarzu.

00:01:33.612 --> 00:01:34.974
And then, because

00:01:34.975 --> 00:01:37.094
I've modified my dictionary,

00:01:37.114 --> 00:01:39.375
your channel name actually shows

00:01:39.455 --> 00:01:41.496
up properly. Oh, okay. Okay,

00:01:41.516 --> 00:01:43.417
okay, okay. We are talking

00:01:43.497 --> 00:01:45.786
about speech-to-text, dictation,

00:01:45.787 --> 00:01:45.814
all sorts of other things like that.

00:01:45.815 --> 00:01:49.080
Oh, where's my phone?

00:01:51.601 --> 00:01:53.403
[Linkarzu]: Okay, yeah, so it just

00:01:53.423 --> 00:01:53.715
puts it in.

00:01:53.716 --> 00:01:54.424
It's pretty accurate.

00:01:54.805 --> 00:01:56.293
It's extremely accurate.

00:01:56.294 --> 00:01:57.187
What's the name

00:01:57.228 --> 00:01:58.849
you said? Because I use

00:01:58.889 --> 00:02:00.751
Wispr Flow, a local model as

00:02:00.791 --> 00:02:02.213
well. I do the transcript

00:02:02.253 --> 00:02:04.135
locally on my Mac. Wispr Flow

00:02:04.255 --> 00:02:05.417
is what the AI decided

00:02:05.437 --> 00:02:06.157
to use and I'm like,

00:02:06.578 --> 00:02:09.581
oh, it gets it, but not...

00:02:10.562 --> 00:02:11.823
[Sacha]: Yeah, the model I'm currently

00:02:11.923 --> 00:02:13.923
using is called Orukeet.

00:02:15.784 --> 00:02:16.865
I think it's based on

00:02:16.945 --> 00:02:18.985
Parakeet, but it's been tweaked

00:02:19.026 --> 00:02:20.206
for more performance

00:02:20.686 --> 00:02:21.466
and less memory.

00:02:21.760 --> 00:02:22.640
But there are so many

00:02:22.820 --> 00:02:23.928
new models coming out.

00:02:23.929 --> 00:02:25.347
It's really quite interesting

00:02:25.348 --> 00:02:27.042
because every day or every other day,

00:02:27.062 --> 00:02:28.122
there's like, oh, try this

00:02:28.182 --> 00:02:29.203
new model.

00:02:29.683 --> 00:02:31.984
I'm not good enough to

00:02:32.025 --> 00:02:32.745
keep on top of all

00:02:32.785 --> 00:02:33.806
those changes. If I can

00:02:33.846 --> 00:02:34.906
manage to get the AI

00:02:34.946 --> 00:02:35.647
to generate me

00:02:36.027 --> 00:02:37.068
a server that has an

00:02:37.188 --> 00:02:38.428
OpenAI interface, I

00:02:38.468 --> 00:02:39.609
can plop it right into

00:02:39.649 --> 00:02:40.470
my Emacs setup

00:02:40.870 --> 00:02:41.930
and it will just work.

00:02:42.151 --> 00:02:43.231
So I'm happy with that.

00:02:43.972 --> 00:02:45.921
And this is fast enough

00:02:45.922 --> 00:02:47.374
that I can use it to think

00:02:47.854 --> 00:02:48.694
and then when I have

00:02:48.714 --> 00:02:49.255
the text,

00:02:49.635 --> 00:02:51.096
I can rearrange it however

00:02:51.176 --> 00:02:51.636
I'd like.

NOTE Playing with voice commands

00:02:52.036 --> 00:02:52.897
So for example,

00:02:53.357 --> 00:02:54.398
"prepare to fast forward."

00:02:56.625 --> 00:02:57.305
We're here.

00:02:57.665 --> 00:02:58.785
[Linkarzu]: I have a similar command.

00:02:59.053 --> 00:02:59.687
Let me see if it

00:02:59.707 --> 00:03:00.347
works. Hold on.

00:03:01.007 --> 00:03:03.528
You see my terminal right now, right?

00:03:05.688 --> 00:03:06.368
Yes. I don't know if

00:03:06.408 --> 00:03:07.168
you can see my screen.

00:03:07.396 --> 00:03:08.396
Virgin mode off.

00:03:09.436 --> 00:03:11.197
[Sacha]: Mm hmm. Yeah, yeah, yeah.

00:03:11.297 --> 00:03:11.777
I saw that.

00:03:11.815 --> 00:03:12.433
[Linkarzu]: It didn't work.

00:03:13.213 --> 00:03:16.854
But it changes my wallpaper and

00:03:16.914 --> 00:03:17.874
it changes my...

00:03:19.343 --> 00:03:20.304
[Sacha]: I have one too.

00:03:20.704 --> 00:03:21.084
Laser.

00:03:21.610 --> 00:03:22.430
Look, I changed

00:03:22.450 --> 00:03:23.471
my cursor to a

00:03:23.511 --> 00:03:24.792
laser so I can say,

00:03:24.852 --> 00:03:25.892
here's my mouse

00:03:25.932 --> 00:03:26.573
cursor, right?

00:03:26.953 --> 00:03:29.855
[Linkarzu]: Okay. Pretty cool.

00:03:31.344 --> 00:03:32.384
[Sacha]: Yeah, so the nice thing

00:03:32.424 --> 00:03:32.805
about it...

00:03:33.265 --> 00:03:34.185
Oh, it's still listening.

00:03:34.206 --> 00:03:36.567
Okay.

00:03:37.208 --> 00:03:37.948
Let me just turn off

00:03:37.988 --> 00:03:38.909
laser mode here. Oh,

00:03:39.489 --> 00:03:39.929
ah!

00:03:40.850 --> 00:03:42.717
Laser. Laser. Laser.

00:03:43.816 --> 00:03:44.657
[Linkarzu]: It happens to me as

00:03:44.697 --> 00:03:45.170
well.

00:03:45.171 --> 00:03:48.580
[Sacha]: Edit, retry. Laser.

00:03:49.601 --> 00:03:50.602
Yeah, okay, there you go.

NOTE Speech commands enable more shortcuts

00:03:51.463 --> 00:03:52.844
The nice thing about

00:03:52.904 --> 00:03:54.486
speech commands is that it

00:03:54.606 --> 00:03:55.887
opens up a whole lot

00:03:55.927 --> 00:03:57.609
of other ways to run

00:03:57.669 --> 00:03:59.450
commands without necessarily having to

00:03:59.511 --> 00:04:00.832
memorize keyboard shortcuts.

00:04:01.232 --> 00:04:01.993
And you can have more

00:04:02.093 --> 00:04:02.914
fun with it too.

00:04:03.274 --> 00:04:04.475
So for example, now I

00:04:04.515 --> 00:04:05.196
have this command.

00:04:06.817 --> 00:04:07.717
It turns out I cannot

00:04:07.777 --> 00:04:10.058
say "start streaming" reliably. Sometimes

00:04:10.118 --> 00:04:12.198
I say start screaming. Or

00:04:12.238 --> 00:04:13.099
at least that's... Well,

00:04:13.459 --> 00:04:14.539
I know sometimes I accidentally

00:04:14.579 --> 00:04:15.559
say that and sometimes that's

00:04:15.599 --> 00:04:17.380
what the speech recognition hears.

00:04:17.740 --> 00:04:18.940
So instead, my command for

00:04:19.000 --> 00:04:20.160
starting this stream,

00:04:20.680 --> 00:04:22.341
because of course Emacs controls

00:04:22.421 --> 00:04:23.961
my OBS through WebSockets,

00:04:24.441 --> 00:04:25.641
is "let's go live".

00:04:26.142 --> 00:04:27.042
And my command

00:04:27.482 --> 00:04:29.162
for stopping the stream is

00:04:29.362 --> 00:04:30.042
"over and out".

00:04:30.663 --> 00:04:31.543
And just because it's a

00:04:31.563 --> 00:04:32.523
little more fun to say,

00:04:32.563 --> 00:04:33.523
it becomes easier for me

00:04:33.543 --> 00:04:34.684
me to remember what I

00:04:34.724 --> 00:04:35.524
need to say in order

00:04:35.544 --> 00:04:36.184
to make this happen.

NOTE Does it handle hard words?

00:04:37.364 --> 00:04:38.225
[Linkarzu]: Yeah, yeah, yeah.

00:04:38.685 --> 00:04:38.865
Now,

00:04:39.585 --> 00:04:40.926
why is it accurate? And

00:04:41.333 --> 00:04:42.733
you have a dictionary of

00:04:42.873 --> 00:04:43.594
like the

00:04:45.494 --> 00:04:46.815
difficult words. Like if I

00:04:46.835 --> 00:04:47.415
say Neovim,

00:04:48.035 --> 00:04:49.016
it doesn't get it. It

00:04:49.036 --> 00:04:50.756
says "New of him",

00:04:51.136 --> 00:04:52.597
or it just puts whatever

00:04:52.677 --> 00:04:54.077
it wants, whenever it wants.

00:04:54.117 --> 00:04:55.698
Sometimes it puts something random

00:04:55.858 --> 00:04:56.238
out there.

00:04:56.718 --> 00:04:57.579
What do you do for

00:04:57.599 --> 00:04:58.805
yours?

00:04:58.806 --> 00:05:01.360
[Sacha]: "Neovim is okay, I guess."

00:05:02.235 --> 00:05:02.995
Let's see if it does

00:05:03.075 --> 00:05:04.780
a thing. Yeah, it got

00:05:04.800 --> 00:05:05.801
that without my needing to

00:05:05.821 --> 00:05:06.821
correct things. Let's pick a

00:05:06.881 --> 00:05:07.582
harder word.

00:05:10.184 --> 00:05:11.805
Anti-disestablishmentarianism.

00:05:12.770 --> 00:05:14.292
Close enough. Okay, you know,

00:05:14.312 --> 00:05:15.653
that requires very little

00:05:15.753 --> 00:05:17.094
editing. What's a

00:05:17.194 --> 00:05:19.655
difficult word? Oh, actually, let's

00:05:19.675 --> 00:05:21.057
pick a different name.

00:05:21.777 --> 00:05:23.278
Sometimes it gets Prot's name wrong.

00:05:23.859 --> 00:05:24.619
"Prot does a lot of

00:05:24.659 --> 00:05:25.580
videos on Emacs."

00:05:26.177 --> 00:05:29.680
Oh, no, it got him too.

00:05:30.220 --> 00:05:32.863
If there was a thing that

00:05:33.063 --> 00:05:34.284
is difficult to say...

00:05:34.651 --> 00:05:35.812
What was that? Okay.

00:05:36.293 --> 00:05:38.855
"Heisenbug is making org.nvim."

00:05:39.596 --> 00:05:41.017
That one. Okay, here we go.

00:05:41.627 --> 00:05:43.649
"Heisenbug is making org.nvim."

00:05:45.318 --> 00:05:46.539
I mean, it's getting him.

NOTE Thanking sponsors and members

00:05:51.225 --> 00:05:52.133
[Linkarzu]: Let me thank my

00:05:52.993 --> 00:05:54.934
YouTube members, the CEOs are

00:05:54.974 --> 00:05:56.374
shown on screen, web2three,

00:05:56.634 --> 00:05:58.034
web2trhee.com, TED,

00:05:58.354 --> 00:06:00.835
cpnllc.com, and also

00:06:01.195 --> 00:06:01.535
Gallo,

00:06:01.915 --> 00:06:03.235
these are the three CEOs,

00:06:03.395 --> 00:06:04.015
and I just want to

00:06:04.035 --> 00:06:04.895
thank the rest of the

00:06:04.915 --> 00:06:05.575
YouTube members,

00:06:06.016 --> 00:06:07.396
which are the ones that are

00:06:07.456 --> 00:06:08.316
shown here, so

00:06:08.776 --> 00:06:09.996
just appreciate

00:06:10.516 --> 00:06:11.496
each one of the members

00:06:11.576 --> 00:06:13.497
for supporting the channel, okay?

NOTE Fixing misrecognized words with a shortcut

00:06:14.248 --> 00:06:17.473
[Linkarzu]: So, it's a local model, interesting.

00:06:17.493 --> 00:06:18.454
It is a local model.

00:06:18.474 --> 00:06:19.234
Do you feed it a

00:06:19.274 --> 00:06:20.073
dictionary at some point?

00:06:20.074 --> 00:06:20.935
[Sacha]: If I do need to change

00:06:20.975 --> 00:06:22.216
things... Okay, so if I

00:06:22.276 --> 00:06:23.177
need to change things, let's

00:06:23.197 --> 00:06:24.438
say for example, Orgzly

00:06:24.478 --> 00:06:25.478
Revived, you probably can't get

00:06:25.498 --> 00:06:25.818
that one.

00:06:26.359 --> 00:06:27.479
"I use Orgzly Revived on

00:06:27.519 --> 00:06:28.460
my phone to

00:06:28.940 --> 00:06:29.641
check my tasks."

00:06:30.583 --> 00:06:31.504
Oh yeah, so here, right?

NOTE
#+SCREENSHOT: Xk02luunlfc - Emacs Voice Control With Local AI on a 2018 Laptop - Sacha Chua's Setup.vtt-00-06-33-143.jpg
#+SCREENSHOT_TIME: 00:06:33.143
#+SCREENSHOT_CROP: 155 770 1198 869

00:06:31.544 --> 00:06:33.005
It says Orgsley Revived. What

00:06:33.125 --> 00:06:33.765
is that even?

00:06:34.226 --> 00:06:36.516
But I can press Ctrl+; and

00:06:36.517 --> 00:06:38.129
it uses substitute.el.

NOTE
#+SCREENSHOT: Xk02luunlfc - Emacs Voice Control With Local AI on a 2018 Laptop - Sacha Chua's Setup.vtt-00-06-40-066.jpg
#+SCREENSHOT_TIME: 00:06:40.066

00:06:38.729 --> 00:06:40.570
Orgzly Revived here. And

00:06:43.032 --> 00:06:44.213
what that does, in addition

00:06:44.273 --> 00:06:46.415
to the substitutions that happen

00:06:46.435 --> 00:06:47.515
throughout the buffer, so for

00:06:47.555 --> 00:06:48.416
example, if I'm adding a

00:06:48.476 --> 00:06:48.936
transcript,

00:06:49.357 --> 00:06:50.718
it will change that all

00:06:50.778 --> 00:06:51.578
throughout the

00:06:52.339 --> 00:06:54.080
transcript. I've also added some

00:06:54.160 --> 00:06:55.561
code because this is Emacs,

00:06:55.601 --> 00:06:56.402
I can just do that.

00:06:56.782 --> 00:06:58.443
that saves this in common

00:06:58.543 --> 00:07:01.185
errors or commonly misrecognized words.

00:07:01.586 --> 00:07:03.307
And then when I recognize text,

00:07:04.148 --> 00:07:05.168
whether it's before a voice

00:07:05.188 --> 00:07:05.849
command or

00:07:06.489 --> 00:07:07.350
if I'm just doing this

00:07:07.410 --> 00:07:07.870
or whatever, it

00:07:08.771 --> 00:07:09.712
will apply all of those

00:07:09.752 --> 00:07:10.512
common fixes.

00:07:11.913 --> 00:07:12.874
Common edits.

NOTE
#+SCREENSHOT: Xk02luunlfc - Emacs Voice Control With Local AI on a 2018 Laptop - Sacha Chua's Setup.vtt-00-07-16-061.jpg
#+SCREENSHOT_TIME: 00:07:16.061
#+SCREENSHOT_CROP: 4 592 1426 1080

00:07:13.314 --> 00:07:14.115
Here we go. So it

00:07:14.195 --> 00:07:15.416
automatically adds it

00:07:16.056 --> 00:07:18.118
to this thing here, which

00:07:18.178 --> 00:07:19.118
gets saved

00:07:19.338 --> 00:07:20.439
automatically for me.

00:07:20.939 --> 00:07:22.300
And that's the change

00:07:22.340 --> 00:07:24.482
that I've just added.

00:07:25.323 --> 00:07:28.706
[Linkarzu]: Interesting. Pretty cool.

00:07:28.726 --> 00:07:29.606
[Sacha]: So it's really nice to

00:07:29.647 --> 00:07:32.909
have that kind of [dictionary] shortcut

00:07:33.890 --> 00:07:34.871
built into the way that

00:07:34.911 --> 00:07:35.992
I edit things. All I

00:07:36.032 --> 00:07:37.993
know is I just hit Ctrl+;

00:07:38.554 --> 00:07:39.714
and put in what it's

00:07:39.734 --> 00:07:40.395
supposed to be.

00:07:40.915 --> 00:07:42.156
And then it gets

00:07:42.157 --> 00:07:43.397
not only fixed in

00:07:43.437 --> 00:07:44.818
my current file, but in

00:07:44.838 --> 00:07:45.699
the future as well.

00:07:46.380 --> 00:07:48.962
[Linkarzu]: Yeah, I need to

00:07:49.002 --> 00:07:50.843
work on my transcript game.

NOTE How the live transcript began

00:07:51.339 --> 00:07:54.321
[Sacha]: Like many things in Emacs,

00:07:54.381 --> 00:07:56.121
this came out of a

00:07:56.202 --> 00:07:58.383
bunch of small, seemingly unrelated

00:07:58.423 --> 00:07:58.743
hacks.

00:07:59.383 --> 00:08:01.044
One was, I was having

00:08:01.064 --> 00:08:03.445
this conversation with a French

00:08:03.505 --> 00:08:04.406
tutor and I was like,

00:08:04.906 --> 00:08:06.027
man, I am having a

00:08:06.067 --> 00:08:07.067
hard time making sure... Like,

00:08:07.507 --> 00:08:08.568
he would switch into lecture

00:08:08.588 --> 00:08:09.328
mode and I was trying

00:08:09.348 --> 00:08:10.629
to have more conversation mode

00:08:10.669 --> 00:08:13.577
so I could practice some more, right?

00:08:13.578 --> 00:08:16.472
So I think I've got this right.

00:08:16.896 --> 00:08:18.437
Anyway, so I had

00:08:19.317 --> 00:08:20.918
a large language model generate

00:08:21.038 --> 00:08:22.959
a Python server, because sometimes

00:08:22.979 --> 00:08:25.139
I'm like, I just want

00:08:25.179 --> 00:08:26.540
a proof of concept for this.

00:08:26.920 --> 00:08:28.401
I don't necessarily know all

00:08:28.421 --> 00:08:29.421
the details of how to

00:08:29.461 --> 00:08:30.742
work with the Silero voice

00:08:30.802 --> 00:08:31.856
activity detection thing.

00:08:31.857 --> 00:08:33.423
Anyway, so make me a server that

00:08:33.443 --> 00:08:34.423
can listen to my audio

00:08:34.463 --> 00:08:35.744
devices in real time without

00:08:35.784 --> 00:08:38.125
messing up my

00:08:39.085 --> 00:08:40.366
actual microphone use if I'm

00:08:40.426 --> 00:08:40.826
on stream.

00:08:41.266 --> 00:08:41.966
Okay, so I have this

00:08:42.006 --> 00:08:43.207
Python server and then I

00:08:43.247 --> 00:08:44.227
wanted to visualize it within

00:08:44.267 --> 00:08:45.187
Emacs. I got

00:08:45.227 --> 00:08:47.008
that visualizing inside Emacs.

00:08:47.048 --> 00:08:47.908
Then I wanted to say,

00:08:48.648 --> 00:08:50.369
all right, you know,

00:08:50.849 --> 00:08:51.609
why don't I have speech

00:08:51.649 --> 00:08:53.130
recognition listening on this thing

00:08:53.170 --> 00:08:53.930
so that if I say

00:08:54.010 --> 00:08:58.420
something, it can check it off,

00:08:58.421 --> 00:08:59.818
like playing bingo, you know,

00:08:59.819 --> 00:09:00.852
if I say it, then it

00:09:00.892 --> 00:09:01.813
gives me a note that

00:09:01.833 --> 00:09:02.833
I've actually said that word

00:09:03.153 --> 00:09:04.073
or phrase. And so

00:09:04.734 --> 00:09:05.274
it could show me a

00:09:05.314 --> 00:09:06.134
list of the words or

00:09:06.154 --> 00:09:07.214
phrases that I still want

00:09:07.255 --> 00:09:08.355
to say in conversation.

00:09:08.915 --> 00:09:09.336
And then, as

00:09:10.317 --> 00:09:11.719
we're preparing for this conversation,

00:09:11.739 --> 00:09:12.620
I was like, you know

00:09:12.640 --> 00:09:13.622
what would be really cool

00:09:14.122 --> 00:09:15.204
is if I could

00:09:15.605 --> 00:09:16.841
have that speech recognition,

00:09:16.842 --> 00:09:18.469
which is running anyway,

00:09:18.929 --> 00:09:20.171
give me a transcript of

00:09:20.231 --> 00:09:21.673
the current conversation in a

00:09:22.174 --> 00:09:23.808
way that I can use it.

00:09:23.809 --> 00:09:25.017
I could then clip

00:09:25.137 --> 00:09:25.998
if I wanted to

00:09:26.479 --> 00:09:27.760
because sometimes I'll be

00:09:27.880 --> 00:09:30.302
doing a live stream and

00:09:30.342 --> 00:09:30.723
I'd be like,

00:09:31.243 --> 00:09:32.044
you know, that was a

00:09:32.084 --> 00:09:33.125
really cool demo and I

00:09:33.165 --> 00:09:34.326
should grab that. So that

00:09:34.446 --> 00:09:35.347
I can just grab the

00:09:35.367 --> 00:09:36.428
screenshot or

00:09:37.269 --> 00:09:38.150
put it into

00:09:39.051 --> 00:09:39.831
a blog post or just

00:09:39.851 --> 00:09:41.633
get a text or extract

00:09:42.073 --> 00:09:42.854
a clip out of it,

00:09:42.914 --> 00:09:44.316
turn it into a video, right?

00:09:45.957 --> 00:09:46.997
And so now I have

00:09:47.037 --> 00:09:48.318
this thing where,

00:09:48.859 --> 00:09:49.679
hang on a second,

00:09:50.139 --> 00:09:51.821
if I'm somewhere else, for

00:09:51.881 --> 00:09:52.321
example,

00:09:53.081 --> 00:09:53.822
it's easy for me to

00:09:53.862 --> 00:09:53.885
get to.

NOTE Prepare to fast forward

00:09:53.886 --> 00:09:54.622
I have a

00:09:54.662 --> 00:09:55.503
voice command for it.

00:09:56.023 --> 00:09:57.284
"Prepare to fast forward",

00:09:58.765 --> 00:09:59.525
which is of course a

00:09:59.586 --> 00:10:00.592
Spaceballs reference.

00:10:00.593 --> 00:10:01.427
It'll show me then

00:10:01.867 --> 00:10:02.547
this thing.

00:10:03.428 --> 00:10:07.030
And if we are... Let me load this

00:10:07.451 --> 00:10:09.172
real quick.

00:10:10.042 --> 00:10:11.083
It will show me

00:10:11.143 --> 00:10:12.745
the video that we have

00:10:13.125 --> 00:10:14.166
or at least the recording

00:10:14.186 --> 00:10:15.187
that I've got of it.

00:10:15.908 --> 00:10:17.089
That's on the right side.

00:10:17.109 --> 00:10:18.511
Here, this MPV is controlled

00:10:18.531 --> 00:10:19.291
by Emacs.

00:10:20.032 --> 00:10:23.540
If I go here...

00:10:24.180 --> 00:10:25.690
Let's say this one.

00:10:25.691 --> 00:10:27.163
So here's your waveform for it.

00:10:27.183 --> 00:10:28.457
If I play it back:

00:10:28.458 --> 00:10:29.665
"which is of course

00:10:29.705 --> 00:10:30.904
a Spaceballs reference",

00:10:30.905 --> 00:10:32.848
it'll show me then this thing.

00:10:33.608 --> 00:10:36.291
And I can copy the text if I

00:10:36.331 --> 00:10:37.291
wanted to, or I can

00:10:37.732 --> 00:10:38.553
extract this

00:10:39.333 --> 00:10:40.875
into its own video.

NOTE
Talking with Emacs
#+SCREENSHOT: Xk02luunlfc - Emacs Voice Control With Local AI on a 2018 Laptop - Sacha Chua's Setup.vtt-00-00-00-000.jpg
#+SCREENSHOT_TIME: 00:00:00.000

00:10:41.222 --> 00:10:42.383
[Linkarzu]: What other tricks do you

00:10:42.423 --> 00:10:43.504
want to show us there?

00:10:43.644 --> 00:10:44.785
What other things do you

00:10:44.805 --> 00:10:46.287
want to share about,

00:10:47.088 --> 00:10:49.390
brag about your Emacs workflow?

00:10:50.001 --> 00:10:50.801
[Sacha]: It's really hard to say.

00:10:53.447 --> 00:10:54.388
I told you how M-x doctor

00:10:54.408 --> 00:10:55.629
was the beginning of my

00:10:56.449 --> 00:10:57.230
experience, right?

00:10:57.231 --> 00:10:57.970
[Linkarzu]: Your journey, yep.

00:10:58.270 --> 00:10:59.371
[Sacha]: Yes, yes. So this is

00:10:59.431 --> 00:11:00.252
the doctor. You can say

00:11:00.312 --> 00:11:00.912
things like,

00:11:01.953 --> 00:11:04.215
"I'm feeling happy today," as

00:11:04.295 --> 00:11:05.115
I said, right?

00:11:05.896 --> 00:11:06.917
And then it uses that

00:11:06.977 --> 00:11:08.578
to generate its response.

00:11:09.598 --> 00:11:11.220
But I have this conversation mode.

00:11:13.621 --> 00:11:14.782
"Yes, especially when I get

00:11:14.822 --> 00:11:15.783
to tinker with Emacs."

00:11:19.095 --> 00:11:21.340
And then, uh... "What happened

00:11:21.380 --> 00:11:22.162
when you get to tinker

00:11:22.182 --> 00:11:22.743
with Emacs?"

00:11:23.550 --> 00:11:25.450
Did that...? Does the TTS come

00:11:25.470 --> 00:11:26.731
through? Yeah, it does.

00:11:27.911 --> 00:11:28.591
And the reason I

00:11:29.391 --> 00:11:30.652
did this was because after

00:11:30.692 --> 00:11:31.572
I showed off my vocal

00:11:31.592 --> 00:11:33.152
commands to Emacs Paris, they

00:11:33.172 --> 00:11:34.233
were like, oh, you know,

00:11:34.313 --> 00:11:34.873
what if you can have

00:11:34.893 --> 00:11:35.613
a conversation? So

00:11:36.113 --> 00:11:36.813
I was like, OK, let's

00:11:37.173 --> 00:11:38.253
come back full circle to

00:11:38.293 --> 00:11:39.534
the thing that got me

00:11:39.574 --> 00:11:40.734
curious about Emacs in the

00:11:40.754 --> 00:11:42.554
first place, and

00:11:43.015 --> 00:11:43.895
voice enable that.

00:11:44.275 --> 00:11:45.175
And then, of course, this

00:11:45.235 --> 00:11:46.255
is a very old AI.

00:11:46.295 --> 00:11:47.216
It's much more interesting if

00:11:47.256 --> 00:11:48.256
you apply it to the

00:11:48.356 --> 00:11:49.096
new models.

00:11:49.676 --> 00:11:51.857
So if I want to, for example,

00:11:52.277 --> 00:11:52.957
practice French.

00:11:54.217 --> 00:11:55.657
This is one of

00:11:56.858 --> 00:11:58.558
my voice commands here.

00:11:59.558 --> 00:12:00.211
Then I can...

00:12:00.212 --> 00:12:00.679
[Doctor]: "What would

00:12:00.739 --> 00:12:01.919
happen? I would

00:12:01.959 --> 00:12:02.799
appreciate it if you would

00:12:02.839 --> 00:12:03.319
continue."

00:12:04.259 --> 00:12:04.919
[Sacha]: Okay, here we are.

00:12:05.560 --> 00:12:06.380
Then I might say,

00:12:08.340 --> 00:12:10.161
"Je parle avec linkarzu."

00:12:10.721 --> 00:12:12.022
And then I think...

00:12:13.322 --> 00:12:13.942
There you go. It

00:12:14.740 --> 00:12:15.741
will eventually...

00:12:16.292 --> 00:12:16.632
Maybe? Thank you.

NOTE
#+SCREENSHOT: Xk02luunlfc - Emacs Voice Control With Local AI on a 2018 Laptop - Sacha Chua's Setup.vtt-00-12-18-696.jpg
#+SCREENSHOT_TIME: 00:12:18.696

00:12:18.688 --> 00:12:20.750
[Gemini]: "Ah, c'est super de discuter

00:12:20.790 --> 00:12:22.652
avec lui ! C'est toujours enrichissant

00:12:22.672 --> 00:12:24.514
de partager (to share) ses passions

00:12:24.574 --> 00:12:26.092
en direct. Quel sujet

00:12:26.093 --> 00:12:27.757
abordez-vous ensemble aujourd'hui?"

00:12:28.307 --> 00:12:29.708
[Sacha]: Alright, so

00:12:30.808 --> 00:12:32.249
this now uses a large

00:12:32.309 --> 00:12:33.769
language model. This one uses

00:12:34.310 --> 00:12:36.791
Gemini because gptel makes it

00:12:36.851 --> 00:12:37.851
super easy to plug in

00:12:37.871 --> 00:12:38.551
different models.

00:12:39.752 --> 00:12:40.572
So if I wanted

00:12:40.612 --> 00:12:41.533
to practice

00:12:42.013 --> 00:12:43.394
French, but I don't necessarily

00:12:43.414 --> 00:12:44.254
want to bug people

00:12:45.675 --> 00:12:46.695
because I take a while

00:12:46.735 --> 00:12:47.695
to think about my words

00:12:47.775 --> 00:12:48.976
and sometimes I'm looking stuff up,

00:12:49.396 --> 00:12:50.076
then at least I can

00:12:50.116 --> 00:12:51.497
simulate that kind of conversation.

00:12:51.557 --> 00:12:52.417
And there are a gazillion

00:12:52.558 --> 00:12:53.857
apps that will sell you

00:12:53.858 --> 00:12:55.179
a subscription to do this.

00:12:55.939 --> 00:12:57.220
But because it's here and

00:12:57.280 --> 00:12:58.400
it's plain text and I

00:12:58.460 --> 00:12:59.441
can control it, then I

00:12:59.461 --> 00:13:01.181
can more easily go through it

00:13:01.261 --> 00:13:04.883
afterwards and analyze the vocabulary

00:13:05.163 --> 00:13:07.784
or correct the things

00:13:07.824 --> 00:13:08.945
that it didn't get right,

00:13:09.085 --> 00:13:10.245
which I know is because

00:13:10.345 --> 00:13:12.086
of the speech recognition and

00:13:12.126 --> 00:13:12.927
not because of me or

00:13:12.947 --> 00:13:13.507
whatever, right?

00:13:14.787 --> 00:13:15.648
So it's so much fun

00:13:15.688 --> 00:13:16.668
to be able to tinker

00:13:16.748 --> 00:13:18.229
with Emacs to do what

00:13:18.329 --> 00:13:19.169
I wanted to do.

NOTE Life in tiny time chunks

00:13:19.596 --> 00:13:20.857
[Linkarzu]: How long do you spend

00:13:20.897 --> 00:13:21.877
sitting? Like do you spend

00:13:21.897 --> 00:13:23.058
sitting most of the day?

00:13:24.327 --> 00:13:25.448
[Sacha]: Most of the time, actually,

00:13:25.468 --> 00:13:26.149
I have to go help

00:13:26.209 --> 00:13:27.370
out the kiddo, right?

00:13:28.331 --> 00:13:29.672
So that keeps me away

00:13:29.712 --> 00:13:30.753
from the computer, which is

00:13:30.853 --> 00:13:31.894
one of the reasons why

00:13:32.415 --> 00:13:33.736
I've had to learn how

00:13:33.776 --> 00:13:35.938
to deal with very fragmented time.

00:13:36.799 --> 00:13:37.980
Not much time sitting in

00:13:38.000 --> 00:13:38.881
front of the computer to

00:13:38.921 --> 00:13:40.422
focus on something. Everything that

00:13:40.562 --> 00:13:41.183
I want to do

00:13:41.583 --> 00:13:42.764
has to be something that

00:13:42.784 --> 00:13:43.265
I can do in 5,

00:13:43.325 --> 00:13:44.286
10, 15 minutes, maybe 30

00:13:44.326 --> 00:13:44.966
minutes.

00:13:46.267 --> 00:13:46.747
There might be...

00:13:47.208 --> 00:13:48.048
At the moment,

00:13:48.088 --> 00:13:50.850
she is fairly independent, but I

00:13:50.890 --> 00:13:51.970
can still be interrupted by

00:13:52.030 --> 00:13:53.671
somebody who needs breakfast or

00:13:53.711 --> 00:13:54.772
somebody who needs a hug

00:13:54.832 --> 00:13:56.573
and whatever. So I need to

00:13:56.613 --> 00:13:57.573
be able to capture a

00:13:57.613 --> 00:13:58.434
thought, get it out of

00:13:58.474 --> 00:13:59.214
the way and work on

00:13:59.234 --> 00:14:00.195
things in tiny chunks.

00:14:01.261 --> 00:14:01.702
[Linkarzu]: I've seen

00:14:02.122 --> 00:14:03.944
my wife, how she handles

00:14:04.004 --> 00:14:05.045
things. And I'm like, man,

00:14:05.865 --> 00:14:06.266
it's a lot of

00:14:07.226 --> 00:14:08.868
mental overhead, you know?

00:14:09.858 --> 00:14:12.179
That's a whole other

00:14:12.219 --> 00:14:13.521
conversation to say, see,

00:14:14.141 --> 00:14:15.482
men are the ones that

00:14:15.582 --> 00:14:17.944
make progress, build their professional

00:14:18.004 --> 00:14:19.546
careers and wives, you know,

00:14:19.606 --> 00:14:20.707
usually take care of the kids.

00:14:21.347 --> 00:14:25.200
It's a huge sacrifice.

00:14:25.201 --> 00:14:26.291
What do you think?

00:14:26.325 --> 00:14:26.956
How do you feel about

00:14:26.976 --> 00:14:27.257
all that?

00:14:28.183 --> 00:14:29.184
[Sacha]: I signed up for it

00:14:29.306 --> 00:14:30.908
totally knowing what I was

00:14:30.948 --> 00:14:32.210
getting into. I was like,

00:14:32.267 --> 00:14:33.447
okay, there's a lot involved

00:14:33.487 --> 00:14:35.168
in being the default parent,

00:14:35.228 --> 00:14:36.008
right? The primary

00:14:36.788 --> 00:14:38.549
person who patches up.

00:14:39.529 --> 00:14:40.329
But I think

00:14:40.850 --> 00:14:42.150
partly because of Org Mode

00:14:42.190 --> 00:14:42.730
and Emacs,

00:14:43.013 --> 00:14:44.454
it's been very, very helpful

00:14:44.594 --> 00:14:45.554
to me to be able

00:14:45.574 --> 00:14:45.874
to say,

00:14:46.254 --> 00:14:47.375
"Yeah, that's a great idea.

00:14:47.415 --> 00:14:48.135
I'm going to write that

00:14:48.175 --> 00:14:49.355
down in my phone or

00:14:49.395 --> 00:14:50.456
on my computer" - usually on

00:14:50.476 --> 00:14:51.196
my phone back in the early

00:14:51.536 --> 00:14:51.976
parenting days.

00:14:54.217 --> 00:14:55.098
I'm away from my computer.

00:14:55.118 --> 00:14:56.779
I'm at the playground.

00:14:57.300 --> 00:14:58.220
So the fact that I

00:14:58.260 --> 00:14:58.981
can capture

00:14:59.561 --> 00:15:00.903
a note into Org Mode

00:15:01.283 --> 00:15:02.544
and then know that I

00:15:02.604 --> 00:15:03.525
can get back to it

00:15:03.645 --> 00:15:05.186
in several years when I

00:15:05.226 --> 00:15:06.027
have more free time,

00:15:06.427 --> 00:15:07.308
or that Org Mode can

00:15:07.348 --> 00:15:08.569
keep track of the deadlines

00:15:08.649 --> 00:15:09.590
that might be a year

00:15:09.630 --> 00:15:10.430
from now, like when I

00:15:10.490 --> 00:15:10.731
need to

00:15:11.111 --> 00:15:12.032
renew my passport,

00:15:12.452 --> 00:15:13.933
and just have that surface

00:15:13.953 --> 00:15:14.874
the reminder, at the right

00:15:14.914 --> 00:15:16.195
time with the notes on

00:15:16.255 --> 00:15:17.436
exactly what I need to do,

00:15:17.936 --> 00:15:18.857
and the links to wherever

00:15:18.877 --> 00:15:19.518
I need to go, I

00:15:20.058 --> 00:15:21.259
think that has been very,

00:15:21.299 --> 00:15:22.160
very helpful for me.

NOTE Capturing tasks on phone and computer

00:15:23.000 --> 00:15:24.641
[Linkarzu]: Good point that you brought

00:15:24.721 --> 00:15:25.961
up because I don't know,

00:15:26.381 --> 00:15:27.241
quite a few days ago

00:15:27.281 --> 00:15:28.381
I just came up, well,

00:15:28.742 --> 00:15:30.642
the clanker came up with a

00:15:31.022 --> 00:15:32.202
method, we could say,

00:15:32.563 --> 00:15:34.003
of me just tapping it,

00:15:34.263 --> 00:15:35.323
saying something to it,

00:15:35.783 --> 00:15:36.543
and when I come to

00:15:36.563 --> 00:15:38.284
my computer, the task is

00:15:38.364 --> 00:15:39.404
there in Neovim,

00:15:39.784 --> 00:15:41.645
right? Yes. Because I forget,

00:15:41.925 --> 00:15:43.865
I'm outside, I'm like, okay,

00:15:43.945 --> 00:15:44.946
I have to remember this,

00:15:44.966 --> 00:15:45.886
I have to, I'm not

00:15:45.906 --> 00:15:46.926
gonna remember it, it's just

00:15:46.966 --> 00:15:48.126
gonna go away. So I

00:15:48.146 --> 00:15:48.827
do it on the phone,

00:15:49.287 --> 00:15:50.167
shows up in Neovim.

00:15:51.767 --> 00:15:53.176
It's a huge benefit.

00:15:53.177 --> 00:15:53.908
How do you do it

00:15:55.989 --> 00:15:57.269
[Sacha]: For my phone, I often

00:15:57.330 --> 00:15:58.650
just put it into

00:15:58.670 --> 00:16:01.131
Orgzly Revived, sometimes with dictation,

00:16:01.191 --> 00:16:02.291
sometimes just typing in a

00:16:02.331 --> 00:16:03.252
few keywords to help me

00:16:03.292 --> 00:16:05.112
remember. A lot of times,

00:16:05.132 --> 00:16:06.233
if I'm coming across...

00:16:06.453 --> 00:16:08.614
[Linkarzu]: Orgzly Revived, what is it?

00:16:09.074 --> 00:16:12.519
[Sacha]: (Hah, I clearly can't spell) ogrzly?

00:16:12.520 --> 00:16:13.586
[Linkarzu]: If you want to show it,

00:16:13.587 --> 00:16:14.416
I don't know.

00:16:15.576 --> 00:16:16.497
[Sacha]: It's on my phone.

00:16:17.310 --> 00:16:18.531
I'm gonna say, okay, because

00:16:18.551 --> 00:16:19.522
this is what, Orgzly.

00:16:19.523 --> 00:16:22.373
[Linkarzu]: Is it like an app?

00:16:22.413 --> 00:16:23.493
[Sacha]: Yeah, so I use an

00:16:23.593 --> 00:16:24.974
Android phone. And now there

00:16:24.994 --> 00:16:26.375
are actually a gazillion apps

00:16:26.535 --> 00:16:29.417
that talk Org Mode and can

00:16:29.437 --> 00:16:30.557
synchronize with your files and

00:16:30.577 --> 00:16:30.977
whatever.

00:16:31.438 --> 00:16:32.918
I'm currently still just using

00:16:32.979 --> 00:16:34.699
Orgzly Revived as an app

00:16:34.799 --> 00:16:36.360
on my phone with Syncthing,

00:16:36.801 --> 00:16:38.021
With Syncthing being the

00:16:38.501 --> 00:16:40.643
free synchronization that I can

00:16:40.783 --> 00:16:42.103
use to just get my

00:16:42.123 --> 00:16:42.904
files back and forth.

00:16:44.267 --> 00:16:45.327
But there are lots of

00:16:45.367 --> 00:16:46.488
other alternatives, so you can

00:16:46.528 --> 00:16:47.728
find something that fits you well.

00:16:48.228 --> 00:16:50.069
I am very tempted to figure out

00:16:50.449 --> 00:16:52.269
finally how to use Emacs

00:16:52.349 --> 00:16:54.270
native, because there's an Emacs

00:16:54.330 --> 00:16:55.250
port for Android.

00:16:56.330 --> 00:16:57.351
Especially if I can get

00:16:57.451 --> 00:16:59.191
my speech synthesis and speech

00:16:59.231 --> 00:17:00.351
recognition working on it. I

00:17:00.371 --> 00:17:01.432
think that would be amazing

00:17:01.472 --> 00:17:02.032
to have this

00:17:02.412 --> 00:17:04.092
kind of conversation with

00:17:04.793 --> 00:17:05.593
Emacs along the way.

NOTE Capturing tasks by voice

00:17:05.993 --> 00:17:06.913
And then on the computer,

00:17:06.973 --> 00:17:07.793
if I need to capture

00:17:07.814 --> 00:17:08.954
something quickly, oh, I can

00:17:08.994 --> 00:17:11.675
show you this one. Let's see. Okay.

00:17:13.555 --> 00:17:14.936
"Remind me to put together

00:17:14.956 --> 00:17:16.917
a quick description of my

00:17:18.718 --> 00:17:19.559
to-do workflow."

00:17:21.545 --> 00:17:23.566
And it will take that note

00:17:24.007 --> 00:17:24.887
and it will stick it

00:17:25.047 --> 00:17:26.848
into an inbox.

NOTE
#+SCREENSHOT: Xk02luunlfc - Emacs Voice Control With Local AI on a 2018 Laptop - Sacha Chua's Setup.vtt-00-17-36-180.jpg
#+SCREENSHOT_TIME: 00:17:36.180

00:17:27.529 --> 00:17:30.030
Here I'm in live mode

00:17:30.751 --> 00:17:35.154
so my public tasks don't get mixed in

00:17:35.194 --> 00:17:36.150
with my private tasks.

00:17:36.151 --> 00:17:36.874
If I do an agenda,

00:17:36.875 --> 00:17:37.835
it should just be limited to

00:17:37.855 --> 00:17:38.476
the public stuff.

00:17:39.196 --> 00:17:40.657
Anyway, so the remind me

00:17:40.953 --> 00:17:41.893
created the note for me.

00:17:42.093 --> 00:17:44.194
It includes the audio

00:17:44.735 --> 00:17:47.091
in case the speech recognition

00:17:47.092 --> 00:17:48.837
didn't get anything right.

00:17:49.217 --> 00:17:50.437
And it includes a screenshot

00:17:50.537 --> 00:17:51.558
so that in case I'm

00:17:51.598 --> 00:17:53.241
doing this from a different application

00:17:53.242 --> 00:17:55.120
because my keyboard shortcut is global,

00:17:55.580 --> 00:17:56.280
I can still see the

00:17:56.340 --> 00:17:57.761
context and

00:17:57.801 --> 00:17:59.142
find that sort of stuff.

00:17:59.843 --> 00:18:00.764
So yeah.

NOTE Building workflows out of little bits of time

00:18:01.304 --> 00:18:02.185
[Linkarzu]: Quite interesting.

00:18:02.565 --> 00:18:04.467
Quite advanced. Quite complex.

00:18:04.847 --> 00:18:05.808
It must have taken you

00:18:06.068 --> 00:18:08.110
months, years to set all

00:18:08.130 --> 00:18:08.570
of this up.

00:18:09.371 --> 00:18:10.012
[Sacha]: As I said, I can

00:18:10.052 --> 00:18:10.892
only work in thirty

00:18:10.912 --> 00:18:11.813
minutes or so. So this

00:18:11.933 --> 00:18:13.294
one, I think was a

00:18:14.042 --> 00:18:15.263
10, 15 minute hack.

00:18:16.032 --> 00:18:19.515
Okay. Little bits of time.

00:18:19.896 --> 00:18:21.297
This link here to whatever

00:18:21.317 --> 00:18:22.118
I was looking at, you

00:18:22.138 --> 00:18:23.078
got that free from Org

00:18:23.098 --> 00:18:25.120
Mode. This thing here with

00:18:25.220 --> 00:18:25.921
a recording,

00:18:26.542 --> 00:18:28.103
I got that because I

00:18:28.303 --> 00:18:29.384
already wanted to save my

00:18:29.424 --> 00:18:30.565
recordings anyway, so it was

00:18:30.605 --> 00:18:31.586
just a matter of adding

00:18:31.626 --> 00:18:32.607
a link to the file

00:18:32.647 --> 00:18:33.388
name that I already had

00:18:33.448 --> 00:18:33.748
saved.

00:18:34.309 --> 00:18:36.170
This screenshot, you know, another

00:18:36.210 --> 00:18:36.751
five minutes,

00:18:37.111 --> 00:18:38.432
because I already had Spectacle

00:18:39.053 --> 00:18:40.494
capturing the screenshot of both

00:18:40.534 --> 00:18:40.995
screens.

00:18:42.138 --> 00:18:43.441
So it's fairly simple.

00:18:44.102 --> 00:18:45.044
It will even work for

00:18:45.084 --> 00:18:45.585
things like,

00:18:46.086 --> 00:18:47.088
"remind me next month to

00:18:47.108 --> 00:18:48.151
follow up with linkarzu to

00:18:48.191 --> 00:18:49.173
see whether he's switched to

00:18:49.253 --> 00:18:49.573
Emacs."

NOTE
#+SCREENSHOT: Xk02luunlfc - Emacs Voice Control With Local AI on a 2018 Laptop - Sacha Chua's Setup.vtt-00-18-50-296.jpg
#+SCREENSHOT_TIME: 00:18:50.296

00:18:49.588 --> 00:18:50.233
So this one here, for

00:18:50.273 --> 00:18:51.575
example, it says, remind me

00:18:51.975 --> 00:18:52.876
next month, et cetera, et

00:18:52.916 --> 00:18:53.937
cetera. And it has scheduled

00:18:53.977 --> 00:18:54.738
it for next month.

00:18:55.279 --> 00:18:56.060
[Linkarzu]: That's pretty cool.

00:18:57.649 --> 00:18:58.670
[Sacha]: I'm not actually going to

00:18:58.710 --> 00:18:59.570
pressure you to switch the

00:18:59.610 --> 00:19:00.971
Emacs. You can keep using

00:19:00.991 --> 00:19:02.252
Neovim and just borrow all

00:19:02.272 --> 00:19:03.193
the interesting ideas.

00:19:03.194 --> 00:19:05.154
org.nvim is there,

00:19:05.594 --> 00:19:06.715
I can adapt it to

00:19:06.815 --> 00:19:07.715
do this, you know?
