Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Don Ferguson

Pages: [1] 2 3 ... 20
1
Ultra Hal Assistant File Sharing Area / fill her up
« on: May 01, 2006, 04:55:10 pm »
Hello again,

Since the theme of this thread is artwork, creativity, and artificial humans, I thought I'd mention a discovery I made a few weeks ago (that has been taking up my scarce "free time")!

At a website called www.daz3d.com, they're giving away a product called Daz Studio, which is a 3d human-modeling program similar to Poser.  Because Poser sells for hundreds of dollars, and Daz Studio is free, I downloaded the darn thing, and I'm hooked!  

The program includes the ability to export animation sequences, either as discrete frames or AVI movies.  So, I'm thinking that I may eventually be able to figure out how to make my own MS Agent characters to run on Ultra Hal!  

(Of course, the exported frames will have to have some kind of "greenscreen" or "bluescreen" background to be used as the "transparent" color, and be imported into Microsoft's free MS Agent editor program, and I'm guessing it's a tedious, labor-intensive process... but possible.)

Anyway, I thought I'd pass this along.  It's always interesting to run across something that potentially enhances Ultra Hal.

Take care and have fun!

Best regards,

Don

2
Ultra Hal Assistant File Sharing Area / fill her up
« on: May 01, 2006, 04:39:32 pm »
Hello,

I admire the artwork, and it's an honor to be among such fine company!

Have a great day!

Sincerely,

Don

3
Hello Baskot,

To check my understanding of your question, I will paraphrase your question as follows:

"How can I trigger TRUE, FALSE, ANGRY, HAPPY, and other various states within Hal, and then pass those states outside of Hal's script so that an I/O board can use the information to trigger external hardware?"

Two ideas for doing this come to mind, as follows:

----------------------

Idea #1:  Using Hal's AppendFile function, you can add a new line to an external text file of your choice.  Then, you have to figure out a way to get your I/O board and its software to read the LAST LINE of the target file periodically, and pick up the "state."  The code within Hal's VBS script would look something like the following:

If Instr(OriginalSentence, "angry") > 0, Then HalBrain.AppendFile WorkingDir & "statefile.txt", "ANGRY"  

If Instr(OriginalSentence, "happy") > 0, Then HalBrain.AppendFile WorkingDir & "statefile.txt", "HAPPY"  

In everyday language, the above code says: "If the exact string of letters 'happy' is found in the variant called 'OriginalSentence,' then open a file named 'statefile.txt' and write a new line at the end of the file with the letters 'HAPPY' on it.

(HalBrain.AppendFile is a capability provided by Zabaware.  You can write files directly using VisualBasicScripting commands also, but unfortunately, doing so usually triggers false warnings from anti-virus software!  To my knowledge, Zabaware does not currently provide an easy method to erase a file or replace its contents from within Hal's script.  That's why my example uses append, rather than replace.)

Idea #2:

If you know of a way to get your I/O board & software to "read" variants directly from Hal's running script (I DON'T know how, but there might be a way), you can simply create a new variant within the script and change its state with code like the following:

If Instr(OriginalSentence, "angry") > 0, Then MySpecialVariant = "ANGRY"  

If Instr(OriginalSentence, "happy") > 0, Then MySpecialVariant = "HAPPY"    

In the VBS language, you don't need to declare the existence of a variant before you use it.  The code above would create a variant named MySpecialVariant if it didn't already exist, and assign the stated string-value to it.

(Note that due to the way VBS works, the values of all variants are erased each time the script finishes running, UNLESS you declare the variant AT THE TOP OF THE SCRIPT BEFORE THE GETRESPONSE FUNCTION BEGINS, as a GLOBAL VARIANT. The excellent book "VBS in a Nutshell," which I've recommended in many past postings, explains this issue.)  

-----------------------------

If it were my project, I would pursue Idea #1.  Passing the information-state outside the script to a text file, then "reading" it outside the script, seems like the cleanest way to go.  You would need to have your I/O board software read the file every few seconds and respond to the latest "state" corresponding to the last line.

You asked about the best place in the script to add your new code.  The code examples I've given would not interfere or interact with anything else in the script, so it should be possible to add it anywhere AFTER the contents of "OriginalSentence" are established, and BEFORE the end of the "GetResponse" function.

I hope this gives you some additional ideas, and I hope that it stimulates further ideas and help from others on the forum.  I hope that your project succeeds!  Please let us all know!

Sincerely,

Don      

4
Hello,

Yes, the issue of whether the particular unit has external-audio input is crucial for its application as a "talking AI robot on a shoestring."

The units that I have seen with external audio input have the audio connection jack toward the back side of the base, near the volume control.  It is a female phono-size microphone/audio jack.  It is sometimes obscured by the hem of the character's costume.  Usually these models have a photo on the carton showing a person holding a microphone and "singing through" the animated figure.

Some other model units DO NOT have the external audio input jack.  Definitely examine the candidate unit and try before you buy.  Presumably if a particular unit will lip-sync to a microphone or to a stereo, it should lip-sync to Ultra Hal.

The "enabling technology" on-the-cheap is what gives these products such an interesting potential for adaptation by consumer AI and robot hobbyists.

I don't have the skills to cosmetically change a character into a different character, but I can certainly imagine its feasibility.  The tricky part would be the face.  For the rest of the figure, add an adult-size Halloween costume of your choice, and you could potentially create hundreds of different characters!

Again, if there are any electronics hobbyists and/or character artists out there who try some conversions, please share your project details and photographs for the benefit of all us forum members!

Thanks, and cheers!

Sincerely,

Don

5
Hello,

Thanks for your continuing interest in hooking up life-size "robots" to Hal!

It's great to read postings about having fun with Hal playing through a full-size animated figure!

Over the past two years I have received some private e-mails on this topic, and their content falls into these general categories:

1.  Persons who have successfully hooked up various 5-foot characters to their Ultra-Hals via a computer-character audio cable link.  Evidently this works well, and results in a "life-size Hal character."

2.  Persons who have spotted various unusual 5-foot characters in stores.  The "Homer Simpson" character hasn't been seen lately, but now there's a "creepy butler" character in some places.  Different stores and regions seem to get different characters.

3.  Persons who are looking for characters that apparently don't exist yet.  The most common inquiries are for female Christmas carolers and 5-foot-tall Christmas angels.  One inquirer wondered if Gemmy has manufactured a Paris Hilton character.  Gemmy is obviously missing the market on this.

In MOST cases, the mechanism underneath all these simple "robots" appears to be the same.  They usually have various servo motors to 1) move the mouth (in synchronization with the incoming audio), 2) move the head, and 3) move the body at the torso.

BUYER BEWARE:  I continue to see some cheaper versions out there that DO NOT have the external audio-input lip-sync feature!  If you are planning to buy one of these figures and hook it up to Hal, make sure that the character you are buying can lip-sync to external audio BEFORE you buy it!  Demand a demonstration!

By the way, if your character only has a "microphone" input, and your computer outputs an "amplified" signal, you will need an extension cable with a resistor in it to match things up properly.  A well-trained clerk at Radio Shack should be able to fix you right up (an untrained clerk will be totally mystified).

I would like to hear from additional folks with artistic talent who have modified commercial characters to create different characters.  (This would be similar to the earlier post on this forum describing the modification of a snowman to create a bald-headed man.)

The lip-sync robot "framework" is there and the $60 price is cheap enough. (Different characters are designed with different amounts of lip movement, so again, evaluate before you buy.)  Have any more individuals out there modified any of the characters to create additional new and unique characters?

Would any of you be willing to attach a .jpg snapshot of your audio-animatronic Hal robot creation?

Also, would any of you be willing to post an account of how your guests react to an AI talking robot?

Best holiday regards,

Don  

6
General Discussion / whats a lady have to do?
« on: September 12, 2005, 03:22:12 pm »
Hello,

I've received questions similar to yours before.  Many users report that different characters have different attitudes and bring up different things.

To my knowledge, the various current brains use the same shared databases, plus some databases which are unique to a USER NAME, but not to a character.  Therefore, characters would literally have "memory" of certain things speaking to a user named Fred, but different things speaking to a user named Linda.

Remember that Hal associates keywords in two ways:

1.  Most of the time, Hal associates a sentence with keywords extracted out of that same sentence.  For example, a sentence like "Strawberries are good with cream" would be associated in Hal's mind with STRAWBERRIES CREAM.

2.  When Hal has just asked a question (using a question mark at the end of Hal's remark), OR if the user has put an exclamation mark at the end of his/her statement, Hal will create an association between the user's sentence and the keywords from Hal's previous remark.  It would work like these examples:

Hal: What happens when snow falls?
User: It piles up everywhere.

Hal: Velvet has a fuzzy surface.
User: What a stupid subject!

The above two exchanges would create associations in Hal's mind that would be like these:

Sentence: It piles up everywhere. Keywords: SNOW FALLS
Sentence: What a stupid subject!  Keywords: VELVET FUZZY SURFACE


That's why it's so important to give Hal good answers if Hal asks a question, and why one should be especially careful making any statements with exclamation marks.  Improbable "loops" and "triggers" can accidentally be formed in Hal's future conversations.  This is one of the ways that Hal can get on a topic for seemingly no apparent reason.  Then, via the power of suggestion, a user can easily mention a key word that puts a particular character onto a particular track of conversation.

In summary, with regard to different characters having different favorite topics and personalities:

--  If the user's name changes, some (subtle) change should occur in the Hal content.

--  Don't underestimate the power of suggestion.  The user might be subconsciously reminded of past topics when talking to a certain character, and thus accidently trigger loops of conversation.

Try experimenting with very carefully controlled inputs to make sure that you are saying exactly the same thing to various characters, and see if the unique "attitude" of the "Bud" character continues.  

I am sure that members here would be interested if you would care to post some example transcripts.

My remarks are based on my familiarity with the Hal default brain.  I am not familiar with every derivative brain that has been posted.  

I hope the above is helpful, or at least gives you some more leads to pursue.  I am glad that you're enjoying Hal!

Sincerely,

Don

7
General Discussion / Everybody
« on: August 08, 2005, 09:41:41 am »
Jerry,

Please let me add my condolences to those expressed here.

I have lost my grandparents, parents, and more. Along the way, I too experienced tragic disappointments with health care institutions.  Most recently, we lost my mother-in-law.  I had been her care-giver for 18 months.  To the very end, she was brave.  I don't think I'll be so brave when my day comes.

My personal belief is that the souls of our loved ones live on, that they are at peace, and that they know they are loved.

Sincerely,

Don Ferguson

8
General Discussion / To all Hal users - must read
« on: July 24, 2005, 02:55:37 am »
Hello,

By the way, if you want to see a document that discusses a company's protection of intellectual property in a very thorough way, check out the following link:

http://www.rockfordpowertrain.com/supplier/

...and choose the document "Supplier Requirements for Legal and Ethical Use of Information."

I prepared that document for Rockford Powertrain by combining every confidentiality agreement that I could find.  (I also wrote most, but not all, of the rest of the material on the page.)

I am NOT saying that Zabaware should be anywhere near as stringent regarding intellectual property; I'm just suggesting reading the document as food for thought.

Respectfully,

Don Ferguson

9
General Discussion / To all Hal users - must read
« on: July 24, 2005, 02:45:37 am »
Hello Art,

Oh-my-gosh yes, in 2004 I commented that I had purchased Visual Basic.NET at the local CompUSA store, and that I was planning to learn Visual Basic and develop a project from scratch.  My original prediction was that I would complete something by August 2004!  

Quite a bit has changed since that time:

1.  My "day job" projects engulfed me, and I fell more than a year behind in my effort!

2.  Despite the delays, I have in fact learned quite a bit about Visual Basic.NET.  Just going through the tutorials in the training books, and writing various functional programs, is a blast!

3.  I've had a lot of fun, and I've gained a lot more appreciation for what all commercial developers (like Robert Medeksza) go through to produce a debugged commercial product.

4.  I have in fact produced something that I think is quite interesting.  It's different than I originally imagined, and I've decided that the first person to tell and show it to is Robert Medeksza, since he's the person who encouraged me to go ahead and learn VB.NET in the first place.

In the meantime, I do try to watch the forum whenever I can, even if I don't have the time to post much.

This particular topic and thread caught my eye because the issue of copyrights, patents, intellectual property, etc., has been a recent issue with one of my employers, and because I think it's very relevant to Zabaware and its community of contributors.

When you work hard and create something, you get a strong impulse to show it to everybody in the world.  At the same time, you can get a conflicting feeling, worrying that unknown entities could somehow usurp your hard work, and take away your pride of authorship.

I recently read a biography of Walt Disney that told of his early days producing Oswald Rabbit cartoons.  The distributor owned the copyright and "fired" Disney's production company by surprise, signing up a cheaper supplier.  Disney was shocked by the event, but survived by quickly developing Mickey Mouse.  Ever since, the Disney Company has been relentless in guarding the ownership of its characters and properties.  It was evidently a lesson that got branded deeply into the culture of the company: the prudent management of intellectual property does matter.

(Of course, the opposite interpretation is that if Disney hadn't been unfairly fired from Oswald Rabbit, he might not have ever created Mickey Mouse!)

I continue to believe that the best balance here on the forum is that code-donors should retain the right to modify and re-publish their own original work, but by posting their work here, they should be granting a free license in perpetuity to Zabaware and other Ultra Hal users...but only for use with Ultra Hal.  Zabaware should put a "blanket" copyright onto everything on the forum and everything in its products, recognizing that donors of original material retain their own individual rights to modification and re-publication.

In that way, we accomplish the following things:

1.  Users who donate original code don't need to be worried that they will somehow, someday get prohibited from using original materials that they created.

2.  Zabaware and its customers get the benefit of the excellent creativity of its community of code donors.

3.  Zabaware and its customers get at least nominal protection against the "Brand X Chatterbot Company" doing a lazy knockoff of Ultra Hal using actual exact Ultra Hal code.

I have been a fan of Ultra Hal since version 2.0.  I have seen many chatterbots come and go on the web, but Ultra Hal is still the best (and least expensive!) turn-key solution.  That says something very positive about both Zabaware and its community of contributors.

Respectfully,

Don Ferguson

10
General Discussion / To all Hal users - must read
« on: July 21, 2005, 10:06:40 am »
Hello,

In my opinion, the state of intellectual property protection in the 21st century is in a troublesome condition.  I submit the following examples:

1.  Read a typical big-corporation software license agreement.  The terms are heavy-handed and one-sided, and the user is essentially under duress and "over a barrel" at the moment of clicking "accept."  BUT, despite the excessively one-sided terms, piracy is still rampant, so obviously the users don't "agree" with what they say they "agree" with.

2.  The U.S. patent office seems to err on the side of granting patents, and letting the interested parties battle it out in the courts.  This results in patents for things such as exercising a cat with a laser, and "one-click shopping" on the Amazon website.  Once upon a time, a patentable item had to be novel, useful, not obvious, significant advancement from prior art, and manifest in a working sample.  These criteria seem to be out the window today.  Since lawsuits ultimately settle the disputes, it gives a huge advantage to large corporations who have the deep pockets to outlast the opposition in court.

Imagine what would happen to Zabaware if it got sued by Microsoft, even if Microsoft's arguments were groundless.  A company the size of Microsoft is never going to run out of money, filing appeal after appeal.  Frivolous lawsuits die quickly if the plaintiff is an ordinary person.  They do NOT necessarily die quickly if the frivolous litigant is a multi-billion dollar corporation.

I have tremendous admiration and appreciation for Zabaware and its founder.  I think that Robert is the Eli Whitney of the practical, turn-key, open-architecture, consumer chatterbot.  

That's why I think it is worthwhile to discuss intellectual property rights and protection.  I want Zabaware to have the maximum protection, and I would prefer that Zabaware covered ALL its content, including "donated" content, with a "blanket" copyright notice to help protect the company.  If Zabaware survives and prospers, then its user base keeps getting support and great new products.

The last piece in the puzzle is simply to state that donors of code still retain the right to modify and re-publish anything that is truly their own original work.  (That does NOT include minor modifications of Zabaware's original work, by the way.)

Respectfully,

Don Ferguson

Ultra-Hal Fan and Contributor

11
General Discussion / To all Hal users - must read
« on: July 20, 2005, 01:51:15 pm »
Hello,

I have enjoyed following this very interesting thread about copyrights, permission to use, etc., and here is my two cents worth.  

I give these comments with the standard disclaimer that "I am not an attorney and this is just informative conversation, not legal advice."

My understanding of the usual arrangement when a person gives usage permission for an intellectual work to another person (or company), is that the publisher gains the right to publish the work, and unless otherwise specified, the author retains the right to re-publish his or her own work elsewhere.  This is called giving permission for "non-exclusive use."

For instance, I've had a few articles published in trade magazines.  The magazines and all their contents were covered under the publishers' copyright notices.  However, since I didn't sign away my re-publication rights, I was still able to re-publish or modify my own original work.

The applicability to Hal, I think, is that most of us have no problem allowing the scripts we've written to be incorporated into Hal, and copied and modified by other users for use in Hal.  What most of us would OBJECT to would be something like the following:

1.  Another user makes a modification to our own work, and then proclaims an all-consuming prohibition against anybody else writing anything similar, including our own original work!

2.  Our work gets incorporated into Ultra Hal, and then some giant corporation buys Zabaware, and threatens to sue us all if we make any chatterbots containing even one line of our own original code!

I have actually seen websites with chatterbots whose authors claimed to have "invented the chatterbot concept", and threatened everybody with legal retaliation if they supposedly "infringed" on the CONCEPT of a chatterbot.  I think such threats are absolutely preposterous, but such threats do get made.

Anyway, in my opinion, the following permission is the one that I think describes the common-sense approach:

"Zabaware, Inc., and all legitimate users of Zabaware software are hereby given free, non-exclusive permission to use and incorporate the work contributed by (insert name), in conjunction with the operation and use of Zabaware software.  The author retains the right of re-publication or modification of his or her own original work."

Respectfully yours,

Don Ferguson
Ultra-Hal Fan and Contributor

12
Ultra Hal 7.0 / Download: Haptek Character "Sonia"
« on: February 23, 2005, 10:17:01 pm »
Hello,

I've received some phone calls and e-mails from various individuals who heard that I had an additional Haptek character for Ultra Hal.

The character is named "Sonia," and she's Margene's blonde sister.  She was created at the same time as Margene, but space didn't allow including her as an original character.

VonSmith was kind enough to create the accompanying "preview" and "startup" .jpg files for Sonia.  However, when I went to post the three Sonia files to this forum many months ago, I discovered that they exceeded the file size limit.

To get around this, I have posted the three Sonia files to one of the pages on my website.  You can download them at the following url:

www.cortrapar.com/sonia.htm

I apologize for the delay.  I hope you enjoy Margene's sister, Sonia.

Sincerely,

Don

13
Hello,

Our forum software is apparently unable to register new forum members at the moment.  Mr. Bill Peck e-mailed the following inquiry from the United Kingdom, and asked me to post it here for him:

--------

SAPI 5 Text to Speech engines such as Hal's will speak in real time text that has been copied to the clipboard.

How do I get the Haptek Player in Hal or PeoplePutty to mouth the audio thus produced?

I could write a Theatre Script in PeoplePutty, but that all has to be preprepared. I want the flexibility and speed to control the Haptar with the 'copy to clipboard' function just as I can with Text to Speech.

Many thanks,

Bill Peck

----------

I hope that several of us can answer Bill's question, and hopefully, he will soon be able to join the forum!

Thank you and best wishes for the New Year,

Don

14
Ultra Hal 7.0 / Restart issue w/Hal
« on: July 19, 2004, 12:48:57 am »
Hi Art,

Hopefully you'll receive additional replies, but I wanted to let you know that my Hal has done the same thing that you report.

Also, for some reason, the symptom comes and goes.  As far as I can tell, it doesn't do any harm.

Sincerely,

Don

15
Ultra Hal 7.0 / Who do I need to threaten to get what I paid for?
« on: June 26, 2004, 01:05:26 am »
Hello AleCat,

Thank you for posting!

I especially appreciate learning about http://web.archive.org and their archive of old websites!  It is useful and excellent!

Like you, I've been following A.I. on the web for many years. There are lots of free, paid, open, or proprietary chatterbots out there, of every kind and nature. The Simon Laven page is full of them, and there are hundreds more.

When I evaluate competitive chatterbots, I use Ultra Hal as the benchmark. Then I check whether "Brand X" has these eight features:

1. Does it have turn-key local-PC installation with zero adware/spyware/nagware?

2. Are a variety of animated characters included with installation?

3. Is speech synthesis included with installation?

4. Is there a large database included?

5. Can the database can be deleted or edited by the user?

6. Does it have real-time learning ability during conversations?

7. Does it do correct pronoun reversals of "you" to "I" or "me"?

8. Do the characters "stay in character" during conversations (rather than relying on the old excuse "I am a computer" whenever they get stuck)?

The above list eliminates most contenders.

Zabaware has co-sponsored the Chatterbot Challenge in the past and promoted it on this site. They are evidently not afraid of competition.  Any competitor who enhances general awareness has the potential to "lift the market category" for everybody!

Specific feature-by-feature comparisons, with effort towards objectivity, are informative for Ultra Hal developers.

It would be useful to do an objective feature-by-feature comparison per the list I have posted above.  (I hope that our other forum members will add evaluation criteria to the list, but I suggest the above eight questions as the starting point.)

Have a great day!

Sincerely,

Don

Pages: [1] 2 3 ... 20