[ art / civ / cult / cyb / diy / drg / feels / layer / lit / λ / q / r / sci / sec / tech / w / zzz ] archive provided by lainchan.jp

lainchan archive - /λ/ - 12688

File: 1449955749813.png (68.06 KB, 300x225, coplandos.jpg)


Given Cortana and Siri (and others) becoming smarter and smarter, what's keeping anyone from creating a linux OS with voice recognition integration?

I'm proposing a Navi-styled linux OS, which has voice commands for everything you can do normally with a keyboard

Obviously, voice recognition software is very finicky and often not as good as a real interface, but it seems that the technology is approaching the point where it's actually usable.

So our questions are:
>What are the open source/free options for voice recognition software?

>What are the problems of these, and how can we improve upon them?

>And how can this software be integrated into the operating system, in a stable, usable, and efficient way?

The most mandatory things are turning it on by saying hello and playing a track
Oh, and naming it "navi"


I'd like to have a companion like Siri as a CLI. I don't want to talk to computers.




That would be clever, have two types of terminal, one normal one, and one as the interpreter for Navi. Type a command into it and it will do what you say.

So playing a music file would be quicker, as you would set it up to look at specific files when you tell it to "play".

Then when speech is enabled, what you say is put right into that terminal (in the background)

Yes, I've taken a look at these, but they all seem dead and not very useful

Seems to be the most full featured of all these. Clunky, but a good place to start.


Yes, something along these lines. Like "Play song Wonderwall". Or "Define ambidextrous" or "Where is Pisa", returning wiki snippets. Or "Remind me in five minutes to call Grandma" or "Delete appointment at 2015-12-27, 10:00". That'd be the very least necessary to be useful.

But really, in all honesty, I would simply love to have a light, supportive AI which could also understand natural language and articulate it itself, so you could throw thoughts like rubberducks with it, and generally helps with everyday activities and such.


This would be far more exciting.



So it would have programs set to default for it. For example playing the music would have it open cmus, find the word "wonderwall" in all music files in ~/Music and play it.

For definitions it could be a local dictionary, but web seems like one of our first problems.

To ask for a fact, it should grab from, say, the wikipedia entry for it and answer one line, similar to how google does it. It could also run a search in a user-defined ise (or wikipedia) and open that in lynx

Maybe it would be smarter to scale this down, and make a swiss-army-knife assistant cli. Like a portal that connects all tasks by running them through it


It would be interesting to develop the core, as well as a standard so that you can write modules (having rules that guarantee their cross compatiblity) for it.


>Maybe it would be smarter to scale this down, and make a swiss-army-knife assistant cli. Like a portal that connects all tasks by running them through it

But why make it one bloated tool if you could also split it up into one command per task?
That's the same conclusion I end up at whenever thinking about building an assistant AI: In the end of the day, a good shell is all you really need.


You got that exactly as I imagined,
and this sounds like an integral part of the swiss-army-knife approach.

I really like the idea of having this, since I spend all my time in terminal windows anyway. Currently, I am the human equivalent of the portal, knowing each and all commands, how to query information and so on. While I love that and love the feeling of a shell, ie being close to the OS metal, an assistant CLI sounds like having the best of both worlds: being in a shell where you are the almighty operator, and delegating minuscule and tedious task towards a companion.


File: 1450016752295.png (3.33 MB, 200x113, 2015-12-13-072133_1920x1080_scrot.png)

the biggest issue for playing songs is that albums/artists/titles are in all sorts of different languages, and lots of them use made-up or composite words. you'd have to train a system to recognise every one of them individually.

i guess the best approach to something like that would be a musicbrainz-esque database where people upload their own pronunciations for each track, but there are some things that would still be a huge issue because they're just not pronounceable. getting another human to recognise what you mean and play the right thing would be a challenge in itself.


True. A simple way to get around this is having "english" artist/album/titles added manually by the user.


File: 1450101743128.png (48 KB, 169x200, AI abuse.jpg)

Cortana sends your voice to M$ ot *cough* improve itself no?
What about that but instead of centralized server making it marginally more efficient for everyone, make it way better at understanding YOU w/o any telemetry.

>Navi starts dumb like an intern

>You have to ask her things and show her how to do it
>She then remembers how you pronounced the name of that song.
>If uncertain, she will present you a list of close calls and refine her judgement.

If we do this for the AI also, it could end up like:
>It's the third time I misinterpreted a command today. Is that really you Lain?
>Yes it's me, I'm just a little hoarse.
>Oh alright then, get well soon.
[a month later you're sick again]
>Hello lain, you sound sickly today. I suggest limiting work and resting. Shall I adjust the settings of F.lux to make the screen easier on your tired eyes?


Check out elon misks openAI project


Possibly the last barrier of AI systems is their ability to interpret input. Every time you say something to one of these things, they first have to write it down, then analyze what they have written down, then execute the task. This takes long enough for you to think "i could be doing this myself"

Learning is definitely the most integral part of this, so after a long amount of use it becomes your own (then your hard drive crashes and you have to start from a stupid clean one)
I think manual settings would be best fit for most big things, but prompts for changing outdated settings, or invisible automatic changes would be made after it notices a consistent difference.

Have they done anything with it? Maybe it could be implemented into the learning part


>then your hard drive crashes and you have to start from a stupid clean one)
Always remember to back up your waifu.


gave me a smile


Please remember that AI is not for lewds.
It it at its most intimate state to fusion with as you upload your conscience into the machine and become your trusty second half.


File: 1450140625546.png (13.28 KB, 200x150, 8EIPOWt.jpg)



>upload your conscience into the machine and become your trusty second half
Thats just a weird way of saying "marriage"~


Does that mean Wintermute and Neuromancer are married?


That sounds much better than marriage.


I wish I could do that with my current fiancee.


File: 1450142478065.png (61.8 KB, 150x200, Everything not saved will be lost.jpg)

I want to force it to compose the next Great American Novel.


>tfw learning lots of languages and my english accent changes over time because of it
just noticed this was a thing while going to see my parents' recently and they couldn't tell what i was saying. adapting over time is definitely a must


"Navi, write the next great american novel"
"I'll do my best, anon"

>each time you run her a command, navi adds a word to a text file, with an algorithm to make somewhat well structured sentences


File: 1450144240383.png (1.17 MB, 200x150, Greatest story ever told.jpg)

>It makes absolutely no sense but you get it published as if a human actually wrote it
>It turns into a national bestseller


And that's where Twilight came from.


My Spanish accent went from Dominican to Mexican in under a year.
My Mandarin went from standard to Taiwanese do Beijing in 3.
I know the feeling man.

Also I'd be excited to contribute if anyone has a jumping off point. If we renamed a few console commands to be easier to pronounce rather than easier to type ("list" instead of ls), that alone would be great. Interacting with a cli over voice would be something I'd be willing to do. I feel sort of weird talking to my phone to have it do something. CLI would feel a little more natural.


Mexico have a lot of acents. I suppouse you mean the accent of the north.



Probably that area. I live in Oregon, so I picked it up from Mexican immigrants. Not sure from where though.


Shouldn't be too hard to setup if you keep it simple.

Download an offline version of wikipedia and an offline dictionary, tell it where your music, tv, anime, and movie libraries are and index them (assuming you have enough metadata in the file name or tags) and then setup basic commands.

navi "Play Serial Experiments Lain episode one"
The keyword 'play' tells it you want to play something so it searches your index for a filename containing the words 'serial' + 'experiments' + 'lain' + '01' (episode number), looks at the extension or mime-type and sees that it's a video file and opens it in your preferred video player (eg. mpv /home/user/Videos/Anime/Serial Experiments Lain/Serial_Experiments_Lain_01_1080p_x265_RARBG.mkv). If you wanted to play episode 26 or something you'd need to make sure it knows how to parse things and not play everything with 'x265' in the file name.

navi "Play Music by Justin Bieber on shuffle"
Same process, but see's the keyword 'shuffle' and opens your preferred audio player with all songs with the words 'justin' + 'bieber' and passes the shuffle argument. Could also pass it to the mpd daemon or whatever.

navi "Define internet"
Sees the keyword define which tells it you want to define something, runs the command 'dict internet' and shows the output. Let's say dict is a command line dictionary that you configured to use an offline database.

navi "What's the weather like in New York City"
Sees the keyword weather and does an online search of a weather website using something like curl, wget, or an api and searches 'New York City' and returns the forecast. If you add the keyword 'tomorrow' it only shows tomorrow's weather.

Granted it's more complex then this and you'd have to deal with parsing input so it doesn't search for weather in the city of 'like in New York City'. It seems like input parsing and figuring out what the user wants to do without messing up seems like the hardest part, once you figure that out and have sane search terms you just need to pipe things to other programs. If you want speech to text or text to speech there are a lot of open source libraries out there but you'd need to clean the outputs so your computer doesn't say the useless information, if it just outputs the information as text it's fine because we naturally gloss over it unimportant information anyways.


>Shouldn't be too hard to setup
>not hard as fuarrrk
It's not impossible and we're slowly getting better at it, but what you just described is much harder than it sounds.


i'm impressed


Anyone here should first look at the current state of artificial intelligence and machine learning.
Many propositions look like what may have been designed a couple of decades ago.

Let's be productive:
There are two possibilities. Either the assistant shall reproduce the behaviour according to some predefined pattern. This means that our agent will try to do something and we will tell what it should have done. This is called supervised learning and it works pretty well. The only problem is that, well, there has to be a specific target goal/value which we should be able to provide.
The other possibility is that our agent doesn't know WHAT we expected it to do. We give an input, it returns an action and we tell how good, or bad, this action was. This is called reinforcement learning. It works pretty well, except that it learns even slower than supervised learning and that we don't have good algorithms to handle large data sets (for instance text).
As far as I know, you can not combine the two.

We decided to use supervised learning. This means that we have a neural network that works for us. Nice.
We push in the string "play serial experiments lain episode 1" and expect the output "mpv '/home/user/Videos/Serial Experiments Lain 01.mkv'". So, we (the user, during the query) provided both and push the input through our neural network.
Of course the output is going to be "auierst urnite aurnsietuariset rn" (or something like that).
So we force feed our expected output a couple million of times until the output looks like "mpv '/homauieauieVideosuieuierimenaui Lain 01.mkv'" and we decide to stop our learning (because the training already took long enough) and we watch our episode.
After some repetitions ad nauseam, we may get, at some point, some result (if our network is neither too small nor too big).

That's it more or less.


File: 1450839855064.png (187.07 KB, 200x150, 1426181204769-1.gif)

I'm not talking about AI or machine learning. Just pre-programmed commands.

You type in 'play youtube never gonna give you up'

if firstwordinstring = 'play' then {
if secondwordinstring = 'youtube' then {
delete 'play' and 'youtube' from beginning of string
delete and unnecessary spaces in the beginning and end of the screen and strip out or replace and invalid characters
execute some script in whatever language that uses wget/curl or a some api to search youtube for the string and get the url to the top result
run 'mpv url'
} else {
tell the user the command isn't recognized


Sorry, I'm drunk, that was terrible.

string = 'play youtube never gonna give you up'

if firstwordinstring = play && if secondwordinstring = youtube then {
## using sed and awk
remove play && youtube from beginning of string
remove any spaces at beginning and end of the string
remove or replace and invalid characters in the string
use an api to query youtube for the string and grab the url of the most relevant result that is 720p or higher. a script that uses curl or wget would work too
use youtube-dl to download that url or just execute it in your prefered player
} else {
sorry lainon, i don't recgonize that command

and on with other functions like weather or searching your library for a certain song and playing it in your music player


And after you have a bunch of scripts for various functions you can add on some text to speech or speech to text library to listen to commands or say the output of a command. I don't know if there are any high quality FOSS libraries out there for that kind of stuff.



Sorry for the flooding my waifu's fuarrrked up. We could create a plugin system that uses scripts to carry out various duties. Distribute the load, everyone writes one or two scripts and soon we'd have support for a fair bit on stuff. Of course it won't be as good as Cortana or Siri, but it'd be free software and respect your privacy and work (mostly) offline.


I'm imagining we use some soykaf service, like google voice or one of those ilk, for simplicity sake. We can swap it out for something that isn't soykaf later.

After that, I'm imaging the text to speach output goes into a fuzzy regex matcher. Python has one, but it's not very well documented.

Instead of trying to match a particular string, we have it pick which string is closest to what it heard. That should make it a lot more flexable.

We do that all the way down. You have a command that's something like "move track 44 to music" and it listens for something like "move (.*) to (.*)". Of course those captured groups also get fuzzy matched.

It doesn't matter if it interpreted your speech *correctly*, just that nothing else is too close to what you said.

From that, I think we can construct grammars, where it asks for clarification when confused.


can get that effect pretty easily with espeak. male whisper voice, and then just tweak pitch / speed / etc


what happens when you want to define 'define' or search your music library for 'the sound of music'? also, see >>12710 . this system would be pretty fuarrrking biased towards english speakers who don't listen to anything but "pippity pop stars"


also, the phoneme output from speech parsing doesn't always translate to intelligible text. you can try to fix this on the fly, but that requires something like fuzzy find in a dictionary, which can only return common words and will fail on things that you won't see in that dictionary, like strlen()

on a sort of related note, here's a cool thing: https://youtu.be/8SkdfdXWYaI


I like this.

We don't NEED perfect voice recognition set up. Remember, even humans have trouble communicating across our various accents in the same language.

I think machine learning without telemetry is our best option.


>what happens when you want to define 'define'
When you type 'echo "hello world!"' it doesn't output the 'echo'. For example, sdcv is a command line dictionary program. 'define' is a key word so it's ignored 'define define' tells it to run the command 'sdcv define' and show the output.

>or search your music library for 'the sound of music'?

Same thing. Lets say you give the command 'play the sound of music' it sees that you want to play something so it searches your library for 'the sound of music' and opens it with whatever player and options you set in the config file. You could have it open different file formats based on the mime. If it finds more than one match it can ask you which one.

>also, see >>12710 .

>this system would be pretty fuarrrking biased towards english speakers who don't listen to anything but "pippity pop stars"
Speech recognition is hard and I doubt any of us would want to tackle that problem. The typical trend is to have a lot of capital, some smart mathematician, engineers, programmers, translators, linguists, etc., gathering as much data as possible and then some and then analyzing the fuarrrk out of it on really expensive computers and coming up with good algorithms. Obviously we can't do this so we'd have to use whatever 3rd party open source options there are. It'll improve in time but open source communities just don't have the resource to keep up with our corporate overlords.


What I think most voice-controlled "assistants" lack is the ability to use user-specified voice commands to execute something. Voice makros.
It's not that hard, just allow users to record a phrase and whenever they use it, run a program.


Writing programs to recognize matches isn't exactly easy, or everyone would be doing it. It goes right along with any voice recognition software, because that's literally what it is.

Source: have spent many long nights pondering and researching a project just like this. There aren't a whole lot of good freeware/opensource voice recognition programs. Voice synthesis is pretty easy to do, but recognition just isn't quite there yet.


Unfortunately, really one of the first big issues I see with this is fringe cases.

If Navi is looking for "move (.*) to (.*)", then the sentence "move this_file_with_to_in_the_name.txt to place" would probably not work, unless it was told to wait for the sound of known file extensions before listening for "to'


>Shouldn't be too hard
>Granted it's more complex than this

Yes, a program "understanding" anything past a giant block of IF statements is hard as fuarrrk. There's a reason MS/Google/Appul collect all your assistant data, and no, it's not (primarily) to spy on you. It's to train their assistants, probably via bigass markov chains or similar.

>le deep learning meme
This only works with large data sets. If you're trying to run some sort of machine learning by yourself for voice recognition and nlp, kek, maybe in 5 years your python waifu will finally understand "play the first episode of lain".

Just think of how, say, Siri/Apple works. Think of the number of users. Think of the amount of data they're processing, the hundreds of thousands of hours of voice data, the number of worldwide users, the amount of resources they're piling on the project. Then think of how soykaf Siri is.

Machine learning is far, far, far more difficult than you think, and not nearly as advance as uni papers make it out to be.


Well, sort of. Think of how this works IRL though. If I wanted you to move big_to_small.txt, and I was talking to you via phone, I'd say, "move big to small dot tee ex tee to home", how would your brain process it? You'd either 1) notice there's 2 "to/too/two"s in the sentence, realize moving something twice wouldn't make sense, so you check if either the first or second "to/too/two" is in a file name or not, or 2) notice earlier that one of the files in the current folder has a "to" in it, and you know "to" will be a keyword soon, so you keep in mind ambiguity is possible and double-check if there's more than one outcome based on my sentence.

So really, it comes down to our Navi 1) always knowing a list of "keywords", or "operator words" -- words that actually *do* stuff, and 2) checking for ambiguity when these keywords come up in parameters.


this is close to how i think it should be done, but i would simplify it even further :

if the purpose of a program like this is to act as a personal assistant ai is not really necessary, what would be less cool but more useful is a simple programming language through which you can define phrases the ai recognizes and actions.

the flow would be like this:

- a daemon is listening for starting keyword on the mic
- you say something like navi
- some popup / notification informs you the software has recognized the keyword and is listening
- you say the command "set alarm tomorrow 10"
- speech is passed to the speech-to-text translation module, which ideally should be an external application so that you can use whatever service you want
- text is returned to navi, which searches in a conf file looking kinda like this :

command {
set alarm $day $hour
set alarm $hour
do {
*some shell command that check existance of $day and sets an alarm accordingly*


you would have to write the conf file yourself, but that would allow you to put in the exact commands that you need, as it gets popular it will become easy to find preconfigured files online including different sets of commands.

you can put different phrases for each command to make it more error proof, and since you choose the commands you can make it sound more natural or make it so that the pattern is simpler and quicker, also personal assistant ricing threads where people share their configurations would be cool.

the program could also compile this file instead of reading it on the go combining command into a three structure or putting them into a database or whatever to make reading huge conf files really quick, so that you could eventually find online confs containing a ton of possible patterns for a few commands.

there could also be online databases of commands to which you ask to generate a conf file specifying what commands you need.


Really I'd be more interested in having it work with technical tasks than playing music files.

"Navi, restart nginx"
"Navi, open filename.txt with vim"


I programmed and stitched other code together to make a decent voice recognition system once. Although ultimately I kept running into issues and just never continued with it. It was a lot of impractical things that kept it working the way I wanted.

One issue I constantly kept running into was I did not want to wear a headset or anything. I temporarily mounted a mic to a central location and would give it commands. I'd say 80% of the time it was successful, however when playing music it dropped to about 30% or the time. Just for an example.

Also most the time I naturally just did things myself and forgot that it was set up. So after awhile I just deconstructed the system and forgot about it.


I'd rather not trust bloody TTS to actual commands.

>"Navi, restart nginx"

>Input: restart en gin x
>could not find service en
>could not find service gin
>assuming x = x11
>restarting x11

Just bind a terminal to a keyboard shortcut instead of trying to do stupid soykaf like this, because you'll get bored of it once the novelty wears off and you realize you're wasting three seconds per command waiting for TTS to work. The assistant should help you with complex tasks that *aren't* a single line console command.



The entire thing is a novelty anyway. We're so far off from an actual AI OS that all this can be is something entertaining



check this out. it's all about using individual components of code and then pipelining them together and into other applications. Very interesting. but lets be honest Pocketshpinx is FUN AS A BUN to fuarrrking set up.


Should not be too hard, except when I say not play, but 'I'd like to hear' or 'play me' or whatever. When instead of saying download I just say 'load'. When I ask 'what does internet mean' instead of your precise wording.

There was a terminal program a little like this that tried to translate natural language to commands. But this was there it got troubles.

There are so many ways to say even basic commands that it will quickly get to the stage of useless novelty, or require huge datasets and libraries to try to make logical guesses as to intention.

This might be more helpful on a terminal, where you type a request and it executes a complex group of commands for you.

Wait, we already have that--its called shell scripting.


Thoe reason that Free/libre (or proprietary but offline speech recognition is so horrible is due to the fact that it usually needs human based training voicebanks. There is a good free one being built here (http://www.voxforge.org/). You can donate your voice to speed up the development.


i saw a project that allows you to ask it a question, then it searches an offline wikipedia dump. all i remember was a demonstration asking who harry potter was and it said voldemort.


>Wait, we already have that--its called shell scripting.

You can say that about all this. Voice commands will never be something that could not easily replaced by a script, or just clicking. It will always just be something fun or convenient.



When I'm working on a 3D printer I'll often recruit someone to be the voice interface.

Move +10mm on the Y axis, Motors off, etc.


Possible solution to this would be an assistant that starts with a set of defined rules and uses machine learning to watch the user's activity and suggest new rules (more complicated macros) which the user can then confirm.


That sounds helpful, actually. So it might watch what you do, and after tracking patters propose to the user its own macros for the user to accept and implement, seeing large patterns that it may be difficult for an individual person to notice and put in a shell script.



I found this, isn't it basically what we're talking about?




I think the reason that nobody is getting really excited over stuff like this is that it's really fuarrrking awkward to talk to your computer in person and that computers still suck at language in general, and I doubt that you can really solve the latter without achieving strong AI anyway, and then we'll have much more interesting things to get excited about.


it's not his project, he's merely on the list of supporters. I don't think it has done anything interesting let alone really started to actually exist yet.


See: N.U.D.E@
Natural Ultimate Digital Experiment


Personally, I'd like both.

What language should it be in?
For intelligent software it seems like most agree Lisp is the way to go, but I don't know anything about that. I only know the very basics of C.

But I'd like to work on this kind of thing one day, so it'd be nice to know which language would be the best.


File: 1462809494258.png (168.76 KB, 167x200, smug00015.png)

>> A.I
>> Not for Lewds


I don't think there's a "best language" for AI anymore as most modern AI techniques are just number manipulation.


This article might fit the topic: http://www.smh.com.au/technology/innovation/professor-reveals-to-students-that-his-assistant-was-an-ai-all-along-20160513-gou6us.html
> Artificial intelligence: students were surprised to learn they had been dealing with a bot all semester.


I've heard a talk about the AI the people who made Siri are developing now, called Viv. Apparently it works by assembling programs on the fly, so Lisp would still be one of the best languages to do it, because of homoiconicity and all that.


The big bad evil boys on the net released their parser as open source.
I wonder how much of a boost this can be for naiv navi?



all programs are 'just number manipulation'



What I gathered from the presentation it was more like blocks of code that you can combine together to form a program. Developers can extend it by modeling the domain (as a knowledge graph?). I am interested in seeing how developers can generate the programs, would they be able to create new blocks?


Google just revealed their new AI assistant at Google I/O


How so?
As far as I know computing is deeply rooted in binary(ternary/n-ary) systems which are numerical systems.
Am I missing something?


I'm not them, but analog computers exist.


Anything that is computable (i.e. that a computer can do) can be represented by a turing machine. A turing machine manipulates symbols, that's it. Any symbol can be represented by a number. Therefore, any possible computation is "just number manipulation"


By analog computers I assume you refer to the hardware they operate on?
Almost all human made computers hinge on boolean-logic i.e. binary.
The only example I can think of (which some may argue is not even a computer) would be that 4 rat brain matrix some madman made.


I'm referencing actual analog computers, which involve gears and slopes and whatnot.

You could argue that those computers operate on numbers of a sort, but that just returns to the "everything that exists is a number" philosophy, which is perfectly valid.


Oh, wow, yeah I forgot about those.
That kind of computer is for me the most elegant kind (sadly they are not general purpose).


It is a moot point.

Anything that is computable (i.e. that a computer can do) can be represented by a turing machine. A turing machine manipulates symbols, that's it. Any symbol can be represented by a series of cats lined up on my deck. Therefore, any possible computation is "just cat manipulation"


>Any symbol can be represented by a series of cats lined up on my deck.

Not necessarily. It is quite possible that you might need infinite different symbols to complete a function, and representing an infinite amount of symbols is impossible with a finite amount of cats. However, there are an infinite amount of rational numbers.


File: 1463674009066.png (43.09 KB, 150x200, 1332021888691.jpg)

A rational number can be represented as a row of 64 black-or-white cats, where one column (formerly referred to as a "bit", now referred to as a "kibble") of cats represents the sign (black for positive, white for negative), fifty-two kibbles of cats represent the exponent value of the number, and eleven kibbles of cats represent the significand as a fractional value + 1. I hereby call this format the MEEEW Floating-Point standard for Kitty Computation.

In fact, I hereby declare the existence of the system called Automatic Computation of Arbitrary Things, or "a cat" for short. A cat consists of:
>A number of cats, each next to another, each representing a symbol and extending arbitrarily left and right
>A hand, which pets the cats one at a time
>A kitty pen, which stores the state of a cat machine
>A set of instructions, which when given the state of a cat machine and the cat currently being pet, can: represent a new symbol as a cat, or remove a cat; move the hand petting the cat left or right; and/or maintain or create a new state by putting or removing some cats in the kitty pen
I hereby declare that any arbitrarily large grouping of cats is Turing Complete and can represent any finite and discrete series of computations.


>A rational number can be represented as a row of 64 black-or-white cats...
No, it cannot.


No one mentioning jasper... do you even try?

It does not do the recognition by itself but offers a python (I think) interface to write simple or complex modules.
was written for the pi and already has a module for important stuff like google calendar, cock jokes, etc.


Sorry bud, that's the way computers represent floating point numbers. Like it or lump it really. If you want to talk Turing you're just gonna have to get used to it.


File: 1463695233434.png (236.15 KB, 200x142, i-have-a-solution-for-that-600x426.png)


this is in the vein of opensource personal assistants.



I like your cat idea, and indeed we can say that any possible computation is "just cat manipulation", as there is a bijection (an isomorphism) between what a turing machine does and your nekomputer.


You're talking about computations that normal (electronic) computers can't do either.
As far as I know no computer can compute an infinite algorith.
You could, however, represent infinities with finite cats, as we do with finite symbols on paper.


Excelent, I shall adopt "a cat" for my computing needs.


Don't confuse mathematics and computing. Computing theory (as of now) is a subset of mathematics.
A rational can be represented with a kibblebyte, but only with limited accuracy, as a normal byte can and does.




>You could, however, represent infinities with finite cats

you couldn't represent an infinite *amount* of things. There are a finite amount of ways to arrange a finite amount of cats.

Besides that, yeah. Cats may indeed be exactly as representative of computations as numbers, but going back to my original point, every computation done today(with a few rare outliers) uses numbers to do computation, so it's stupid to say AI is "just number manipulation"


>every computation done today(with a few rare outliers) uses numbers to do computation, so it's stupid to say AI is "just number manipulation"
I don't follow.
Do you mean to say that AI is the theory behind that number manipulation?
Sure, we need to know how to manipulate numbers, but implementation boils down to actually moving numbers around.


It was response to

>most modern AI techniques are just number manipulation.


Explicit voice recog training of commands as part of the man-db triggers for installing packages that have CLI executables.

If Navi had that I'd guarantee she'd become legendary overnight.


still gets me


There are two aspects of a reasonable AI sim that would affect the language choice.

1. It will be YUGE.
2. It will be YUGE.


Since it will be yuge, it needs to be a very maintenance-friendly language, since managing the codebase will be no trivial task.
Since it will be yuge, it needs to be a very high-performance language, since the runtime performance will make or break the interactivity element.

My money is on C++, primarily because of the latter point, and the fact that extensive techniques for managing YUGE (>100M+ lines) codebases are already commonly used.


b-but muh lisp...


ugh, muh bait

But since this is an AI project, lisp is a good choice:
1. As we all know, projects have unpredictable stuff, or they change, and we have to adapt. An interactive language such as lisp is in order
2. Greenspun's tenth rule.
I don't know much about benchmarks of lisp against C++. I am thinking that with modern processing power + lisp compilation technology, the performance issues will only add up to be relevant after a significant amount of logic has been implemented.
A solution could be using external C modules (not C++) for located bottlenecks which are also well defined problems that can be done in a low level language


>As we all know, projects have unpredictable stuff, or they change, and we have to adapt. An interactive language such as lisp is in order

Why is an interactive language any more useful here? In any real-world project, the program code is going to be stored in a text file and version controlled.


what? is "huge" filtered?


How about jasperproject ? À friend told me about that and i will set it up on my raspberry with a bot that i'll call navi


I don't see the point of this. Voice interface is annoying and inefficient.

If I must talk to the computer, I want it to be my friend. An actual AI.


Voice is annoying, but itd be cool to have a terminal chatbot thats also smart enough to preform some tasks.
Though the chatbot part'd be more fun, really, but being able to actually do stuff would provide a veneer of practicality and purpouse that'd make it feel less like a toy to be used temporarially and thus feel cooler.


My fictional inspiration are the netnavis from rockman.exe series. They represent the user's alter ego and exist in devices that correspond to our smartphones. They can enter computer networks and manipulate the devices within.

The comfiest part of it is how everyone has one. It's normal. They're people's friends. I really like this social aspect even if its because it's a children's video game