Click here for the Dwell On It, Second Life comic archives!

We have moved!


(pardon our dust)

Showing posts with label technology. Show all posts
Showing posts with label technology. Show all posts

Thursday, April 23, 2009

Voice direction for word splicing

Ever been really hacked-off by those machines that put sentences together by splicing words? Telephone recordings, elevators, that sort of thing? Even if you've got a good ear, they're generally really annoying to listen to.

The solution to them is also very simple, yet nobody seems to ever do it.

There are two major ways of stressing a word in normal speech. Say "nine seven nine".

No, really. Give it a try.

See how the first nine sounds different from the last nine? The first nine and the seven use ongoing stress emphasis. That's the way we say a word when another word is going to follow it. The last nine uses a different emphasis, because you're going to stop speaking. It's how we sound words that occur at the end of sentences, or when we're otherwise done speaking. So there are two ways to say a word: Regular and final.

Those devices that speak by splicing together words always use only finals. Essentially, the person they recorded spoke each word as a standalone (final) word. Those were recorded, and chopped up and stored for the software to reproduce.

Wrong!

To get it to sound right, and to sound more natural, you record the speaker using regular emphasis.

Get them to repeat the word several times as a sentence, and chop out one from the middle that you like. Then you take the last one, and record that as a final. That gives you two sound-banks of recorded words. One set of regulars, and one set of finals. Then it's just a matter of setting up your data tables for each sentence to select a regular for each word, except the last word of a sentence, and pick the sound out of the list of finals for that one.

It sounds so much more natural, is easier on the ear and requires less concentration to understand. It's also quite simple, doesn't add much to the time with your voice-actor, and only requires double the storage (and in many of these systems, the storage is vastly underutilized).

So why does nobody ever actually do this?

Wednesday, April 15, 2009

Internet Explorer marketshare

Judging by the website stats that I have to hand, more of my readers are using Internet explorer than back in January 2007, when it was a mere 2% plus change. It's about 20% of you these days, so that's about an order-of-magnitude increase. There's even some folks using MSIE v8 (err, both of you).


Seems like Microsoft's not too happy with the take-up of v8, and is going to push it through the automatic update channel. It's still completely opt-in. It'll ask you, and presumably respect your decision.

Interestingly it seems like few users who still run v6 have migrated towards v7 or v8. V8's only really taking users away from v6, and Internet Explorer seems to be losing marketshare globally, while other web-browsers surge at the moment.

v6 seems to be the standard version of IE maintained in corporate offices with few of them using v7 or v8.

Corporate IT administrators can add values to the registry to suppress installs or offers of later versions by automatic update:

reg ADD "HKLM\SOFTWARE\Microsoft\Internet Explorer\Setup\7.0" /v DoNotAllowIE70 /d 1 /t REG_DWORD /f

reg ADD "HKLM\SOFTWARE\Microsoft\Internet Explorer\Setup\8.0" /v DoNotAllowIE80 /d 1 /t REG_DWORD /f

MSIE users - you're still happy with your browser -- I assume so, anyway, otherwise you'd likely not be using it. I'm curious as to why you're sticking with the version you have (or why you upgraded).

Thursday, June 28, 2007

Todd Holmdahl demonstrates a train-wreck.

So, you know, I read a bit. The web, blogs, news, that sort of thing. I don't have a fifth gen gaming console, like the Wii, or Xbox-360, or PS3. Those things are way beyond my means, but you see a lot of news about them, bluster, sabre-rattling and failure rates.

It's pretty much axiomatic that after the launch of a new gizmo you'll get a lot of news pieces on the web about failures of this device or that. Too fragile, screen scratches too easily, unit sets fire to the cat, blows up grannies, and so on. It doesn't necessarily mean that there's actually any problem.

Dean Takahashi has a Q&A posted with Xbox hardware guy Todd Holmdahl. Go read it.

Now, this is how you don't deal with a unit-failure issue like this (real or imagined). Reading Holmdahl's responses, the reasonable reader can reasonably infer that there's a huge failure problem. Maybe there isn't, but Holmdahl makes it seem like there is one. He's practically screaming it in your face, so much so that it looks like a really, really big one.

How do you reasonably infer that? Imagine that you were in Holmdahl's position, and there was no problem at all. How would you answer the questions, in that case?

Now compare them with Holmdahl's answers - or perhaps I should say answer (singular) since he's really holding the line on this. See the difference? That difference is a disaster. Either from an actual unit-failures perspective, or from a PR perspective.

Whether there's a problem or not, he's just made a whole lot of people certain there is.

Monday, January 08, 2007

Disruptive technology

Well, if my day is anything to go by, the Open Source release of the Second Life viewer is most certainly a disruptive technology. I'm flooded with IMs and emails. My machine's gone ping a dozen times typing the first two sentences.

Sunday, August 06, 2006

What would you like to see LL implement in SL?

Akela Talamasca asked me that question. Here's a fuller answer, focused on technical items.

  • Better interobject communications. Right now, the best, most reliable method is llEmail(). Reliable instant messaging for objects, from objects.
  • Talking to your own objects only: /num speaks on a channel. How about \num to speak on a channel, but only objects owned by you can hear it?
  • Revoke permissions! Let me pop up a list of objects that have successfully requested permissions from me, let me see which objects, where they are and what permissions. Allow me to revoke those permissions.
  • A Stop Animations button!
  • LSL hooks into the IM system. I don't really care to have scripts that can access the content of IMs. But I wouldn't mind seeing a hook that fired when a new IM session opened, or an existing one closed. That would at least give me the option to fire off customised busy messages when I had more than 20, 30, 50 IM tabs running.
  • Finer-grained permissions. Most of the permissions at the moment allow everyone or only me. llAllowInventoryDrop(), as an example, is of extraordinarily limited use.
  • Variable chat distance. Either an option to confine chat to a parcel, and/or an estate setting to modify the range of chat. Perhaps more than 20m. Perhaps less. This would need to be indicated somewhere obvious on the chat bar. Imagine a virtual office, built in SL to allow people to collaborate. Imagine two meetings going on in that little office building - with chat ranges at 20m. Plus a discussion or two outside. The crosstalk would be hellish.
  • Scripted avatars. This would really need a window as a sort of a task manager and a Stop all Avatar Scripts button. Let me script my speech, gestures, movement, and rezzing objects from inventory, if need be. Let me cancel all of that at the touch of a button if it gets out of hand.
  • Find my objects! Where did it go? Where did I drop it? Did I accidentally send that object across the sim? Into the air? Into the ground? If I lost it on my own land, I've got virtually no way to retrieve it. If it's spamming me from some other sim, I've got no way to find it. There's a relational database cluster under the hood. Even if my L$ account is billed for the cost of a fat query.
  • A Help button on the UI - The Help menu has 13 options right now, in categories that are not obvious to the user. Either present a few of the most common (Basic Help, Knowledge Base, Live Help) linked off a single Help button (in addition to the menu, of course) or present a window with the help options groups, and explained, so the user can easily find and select the sort of help that they feel they actually need.
  • Collaborative communication is difficult. Allow each Role in the new group tools to have an optional IM channel. Some roles won't need one. In other cases, more targetted IM channels will help reach the right people, without bothering the rest.
  • Persistent data storage! Even if it's limited to (say) one string, one integer, one key, and one float per script or object. Or limited in size to (say) 1K.
I could go on and on. I probably will later.

Tuesday, August 01, 2006

Back to the cages

Cage-guns seem to be back on the menu.

Sure, push-weapons and orbiters have been the gizmo of choice for griefers and louts for a while now. Pretty much because of such a good cost/benefit ratio. Minimum effort for maximum annoyance.

Since push-restrictions became available, a pretty large chunk of the grid has gone the no-push route, destroying the usefulness of push-weapons and orbiters (though you'll still find one or two hopeful push-snipers hanging around push-enabled parcels waiting to orbit the first person to venture onto or over the unsafe land).

Suddenly the cage-gun is back, becoming the tool of choice for the lazy inconsiderate griefer.

It'd be interesting to see if there's any significant evolution in griefertech, but honestly - it's not hugely likely, unless the cost of griefing with existing tools becomes too high.

Tuesday, July 11, 2006

Visible objects

It's strangely surreal to see a complicated software system...to actually see it. All the software objects actually in front of you, appearing and disappearing and doing their thing.

Object oriented programming, with visible objects. Beats that 'visual' programming guff for sheer niftiness, I must say.

Monday, June 12, 2006

Sore Thumb

Sometimes the SL toolset is a bit like trying to hammer in a nail with a half-brick. You can do it, sure, but only after some bent nails, and you'd better watch out for your fingers.

Terrain textures are a big one. They interact with the terrain heightmaps, and offer a fair bit of versatility - sim-wide, anyway.

If you want to handle only part of a sim's terrain textures, you're into ugly workarounds. Otherwise you get something like this...


Much as I wanted to find a way to make this work, it doesn't, and that blows a part of the plan :(

Wednesday, June 07, 2006

Take Inventory

Yikes.

Why didn't I spot these behavioural changes in preview?

The new tab? Very cool.

The way search behaviour has changed? Not so cool.

My traditional inventory search pattern has been:

  • Open inventory.
  • Tap in search key for something I know is in the vicinity of what I want.
  • That item appears right up near the top in most cases.
  • Select item.
  • Tap show all.
  • The inventory view expands but I'm still looking at the place I marked.
  • Browse for what I want.
This has always allowed me to find something quickly...even if I couldn't quite remember what it's exact name was...so long as I could remember the significant text of the folder name, or something I got around the same time.

Not anymore.
  • Open inventory.
  • Tap in search key for something I know is in the vicinity of what I want.
  • That item appears...somewhere. I may have to scroll down through a few hundred folders to see it now.
  • Select item.
  • Tap the little X
  • The inventory view expands, the folders close away, and I'm looking at the top of my inventory again.
  • Sigh and manually scroll and open folders until I find where I remember seeeing it from the search.
  • Then browse for what I want.

Also, interestingly the order of objects returned by llGetInventoryName() has changed, necessitating some rapid rewriting of scripts - yes...foolishly I had come to rely on that ordering alphabetically by name. Now...it doesn't. It might be ordering by UUID, or by something else. I'd have to experiment some. So, suddenly the birthday signs stopped working the way they should, and I had to wedge some extra code into the server. Done. Working.

Third. Sort by Date, Folders Always By Name.

New folders can wind up nearly anywhere, apparently. Created a new folder to pass some textures on, named it (beginning with a B for birthday). New folder, right? Sort by date should put that at the top? No. Went to the bottom.

So I checked Folders Always By Name. Nope! Still at the bottom.

About a half hour later, it finally bubbled up to where it was supposed to be. But I spent that half hour just trying to locate things in my inventory for people. Things whose exact locations, and precise names I'd never needed to know before, because I had a rapid scheme for locating anything.

Hmmmm.

Why not?

Sleepy thought. When you edit something that you can't move, there should be more feedback. At the time when it's deciding whether or not to draw the positioning arrows, there should be some sort of popup.

You can't adjust this object because you do not own it, and do not have modify permissions from the owner.
You can't adjust this object because it is locked.
Or whatever.

Think of the questions that would answer right there.

Wednesday, May 31, 2006

Incremental steps towards HTML

We've got our first steps towards integrated HTML now. A pretty new help system (albeit built on a rather odd looking content management system). Still. Pretty. Works well, is responsive. Some of the text in the help system isn't.....right. But that should be a matter of hours or days.

I can hardly wait to see what we get next :) The integrated browser is spiffy enough with help text. Imagine it with llLoadURL()!

But make it work with my mousewheel, darn it!

Thursday, April 20, 2006

Are you the Keymaster?

In case nobody's noticed, LL seems to be ramping up the web-services that are supported by more recent versions of the SL client UI. Hooray. Been looking forward to it.

The most visible service is the update to the friends online page, where you can now optionally have your online SL friends listed by their profile pic, through the magic of SL web services. Granted, the images should be displayed in 4:3 instead of 1:1, otherwise they squoosh up like the opening of a Sergio Leone western.

Mind you, you the web service exposes the key of the friend. Now I'd like you to think about that for a second....and then not panic. Stop it! Right now! There. Now take a deep breath. And another. Okay. Better.

Because there isn't any reason to panic or freak out. If someone wants your database key, they can have it. Get within 100metres of any scripter, or scripter's object, or talk within 20 metres of one, and they've got it. Or touch any scripted object, or spend any cash. Or let anyone within 100metres or so of any object you've rezzed.

Keys by the dozen! Keys by the thousand! Keys for all occasions!

So listen up to Momma Tat: Don't worry about it. Upcoming second-life web-services can be expected to expose more keys. Big deal. SL does that already, because that's how SL works.

Publishing those keys might be an issue. Misusing them certainly will be...but then, it always has been. Nothing changes. We just get more toys.