 Welcome to the Microsoft AI 16th of September DevSync. Okay, that's not really what I wanted to show you, this is just me. But so we're going to go around and ask everybody what they're up to and get a status update and then see if there's any blockers and that sort of thing. So let's go and start. Sure, so I've spent the last couple of days. Finishing my testing of the changes for the remove automated removing of Lakewood files. And that seems to be going pretty much done. And then I was also starting my work on the conversion from the precise database to the saline database. That is not quite done yet, but should be done today or tomorrow. Nothing blocking me that I can think of everything just just like it's only blocking me from doing things in the past, you know, my sprint stuff is, you know, there's always things that seem to come up recently, you know, little things, but Right, so you're not necessarily on track to finish all these things this week, but nothing in particular is Yeah, nothing's blocking those tasks from being done except for my other smaller tasks that are unscoken. All right, let's go to Ken. So let's see. I've been busy. So Chris, you got your CSV table files and you're good to go there right. I worked a bit on the noise cancellation issue with Kevin still doesn't seem to be working but I still have some experiments to do. I put that on the back burner until tomorrow when I'm expecting some new hardware, because my device is not really what we're going to produce. And it's kind of, you know, configured in a just a way for me to use it for now. So I'm waiting until I get my my stuff tomorrow and I'll put it back together again the way it's really going to be used. And then I'll continue to work on more of the enclosure and skill code. But also I'll look into why the noise cancellation doesn't seem to be working. And like I said, I followed up on it with Kevin I had a really good conversation with Kevin and Derek yesterday. That was overdue and understood a lot of stuff that you know needed to I needed to understand regarding the board and the hardware and the layout actually spend some time going over the DSP specs online to understand what maybe some of the issues could be there regarding configuration regarding the data partition where these things are default coming from regarding whether they could be forced on or off from a host and all that good stuff. And there's still more discussions we're going to have downstream I'm sure about that. And I started looking at the enclosure core version reporting ticket that I've been assigned I spoke to Chris about that this morning. I should probably be able to button that up tomorrow. I just got a little research figure out where that's at and make sure that we have some sort of, which I suspect we don't way to correlate what's reported with the enclosure type. Well, until I look at the code what it's actually doing I think Chris verified that we can get there from here regarding the version of code that's being run. Is that correct Chris that I understand you right that the encoded version of the version of core that that we're posting to you, you could derive the core version from that correct. I mean, you're on mute, but where I was going is, if I said here here's a value. Can you tell me what version of core this is it each you know to 20 to whatever is the answer to that yes. What kind of what kind of I'm not sure I understand what you're asking what kind of value are you. So the the endpoint you gave me that we're currently posting to now. The endpoint is done upon activation. There's probably not to be another endpoint that tells us that it's got to be able to be updated somehow. But that's what happens on activation so I mean, that's just the first time you activate the device right with. But you can derive the, but you can derive the core version of the code from that value that's being sent to you correct. So there's a core version value and an enclosure version value. Just being sent on that API call so core version. So if I give you a core version value that's being posted would you be able to say this is 1802. Yeah. Okay, that's what I was getting at. But we're not sure about that for the enclosure type right. I get a field called enclosure version. I just don't know how it's populated. I'm just researching that. And I'll, you know, get an update and see if we can reverse determine it and if we can't then we'll figure out a way we can in the future. There's also some weird stuff that goes on with our version number that gets reported. I think it depends on if you've got like local changes or stuff you can be 208.1. Some gibberish number at the end. There's some weird stuff going on there that I'm, you know, we might want to look at eventually. So we're talking about this reporting number is in the context of recording wake words or in terms of. No, this is the ticket that you gave me that was we want the enclosure and code version reported for prototypes. Oh, okay. And I took it one step further and said, well, what's going on for non prototype. Okay. And then the last thing I did was the yes, no investigation, which guess and I were talking about before the meeting. I didn't spend a lot of time on the weekend on it. Other than downloading the Google balance corpus that was recently released. It's about a gigabyte of I want to say a handful of words maybe 50 different words is what I got. And it's about 2500 balanced values in each of them. So I got about 2700 yeses 2700 noes that are balanced across and they don't have any problems saying gender. So balanced across gender and balanced across age groups and balanced across people with accents and non accented and so balancing is definitely something that people in this business are concerned about. So we're on the right path there with our wake word stuff. But what I was getting at with gas and I guess I don't know how much everybody heard or how much they want to know but it's a somewhat convoluted code path to get the yes no I've actually got a output here I set wait until the dialogue is finished speaking. There's a place you can set it way high up that says false. So I said the false figuring I could go in and set the configuration parameter that allowed barge in and I could stay start saying yes or no before the dialogue was finished. The problem is I've got WTF WTF WTF inside speak wait is false didn't change the code a couple of seconds later inside speak is true and then inside speak is false. It's almost as if it's a flag like a latch. So I want to chase that down. But the bottom line is that there's a guy. And probably know the right time to slide into the detail. Anyway so the point is the code path doesn't make it easy to not wait until the dialogue has fully played before it turns around the line. And so my investigation. And again I'm an English male speaker so I'm not saying this is across the board I'm just saying in my unique case. That's not the problem. But it still doesn't recognize yes no because it doesn't turn on the listener fast enough. And that seems to be the issue that I'm hitting. Okay. Now these experiments I've been doing people have obviously paid lip service to the issue or there wouldn't be a parameter wait until it's done being spoken true or false allow barge in you know true or false. So obviously this was on somebody's radar I just don't think they got it right and that's what I think the issue. So that's kind of what I've been working on. Okay. Yes. Oh I thought you meant about that issue. No. Yeah I have spent a lot of time writing documents actually. I like documentation is not as fun but I think is very important. So continuing to nut out the flesh out all of the PR processes and I've actually started splitting out the feature request and voting process from the PR process because I think it as I said before like it's going to be a big thing in itself. In terms of, you know, people are sort of throwing ideas in from all over the place like people face up on Reddit and people face up on the forums and chat and blah blah blah. But, you know, where is the place where we have the official list of these are the features that community have requested and this is where you can go and vote on what you think should or shouldn't happen and which ones you think are a bigger priority. Or not. And I think. Yeah I mean the sort of saying this in the chat. The community I think one of the issues is that like from a developer perspective, GitHub issues seems like a no brainer kind of a thing because you know that then ties into actually generating PR for it and you know all that sort of stuff. But it's also not very inclusive for a large proportion of our user base who don't use GitHub who are not developers. And so I think a more likely scenario is we have the sort of official voting probably on the forum. And then when things are ready to move to like technical discussion around how do we actually implement this thing. That's when we, we switch over to GitHub. And anyway, that's where I'm leaning at the moment, but, but yeah, a lot of my time has been sort of developing processes and thinking about that stuff. And what have I done. We also, we fixed a few bugs with them. There was some breaking breaking tests in the new skills. Because it was missing the gap breaking and some extra tweaks to the Microsoft skills kit. Getting an authentication error, which seems to have been because when you automatically grab the token when you generate the token in GitHub. Sometimes copies of white space in the end and so we strict that out. So that should set up. And the build process, the Voicomp CI. And there's a patch, I'll say from okay, which, which essentially regenerates the Voicomp Docker image from Microsoft skills repo, which I don't think is the proper long term solution but it got things going again so Yeah, I did that. Something else worth mentioning while we're talking with gaz is he and I after our last status meeting did get the Apache configs for both the test and production WordPress instances synced up and got the long term solution to the ran to the ran issue memory issue also fixed. So I closed that issue in JIRA and I also closed the outage issue that we shared out on Monday. Yeah. I think is my fuel crash. The outage on our back end website was a skill crash. The outage of our WordPress marketing website was that the my fuel database behind that WordPress crash. All continued. Sorry. It's a managed database right. It's not a managed database. Oh, I thought I heard last week our database was managed. This is not a database this is a one off database for the WordPress instances. Yeah, part of the site. Not all of it. Yeah, and so you'll you'll notice it because the homepage will be fine. But we'll start to get because we've added caching in so that you know if it happens in the site largely stays up. But you won't be able to log into the WordPress admin panel and our CLA agreement page won't return because it supplies database. Yeah, but the rest of the side will be there and so that's how you know if this has happened again. It would be great to be everyone can look out for it. That's concerning about the CLA issue. Is that do we know if that's actually been a problem for anybody trying to sign that agreement. I mean, has we don't need to be an issue, you know, while the while the stock crash which should be very rare, hopefully, and I think if we switch this debit over to checking the CLA page. We're still looking at the homepage. I thought we fit because it was it was failing consistently right so we switched some we switch something says it's not failing yet. But I don't know if that's what you're not. Maybe I'll do a little test and see if some. I'm going to pull it down. Anyway, it definitely drew an error when the when the site went down the other day though right. Yeah. Yeah, cool. That's good. That probably means that we did switch it properly actually. Because previously, so previously our monitoring setup was watching homepage and so because the taking was keeping the homepage up, it wouldn't actually tell us that the site that part of that we're down. It would, you know, just see that everything's running long smoothly. Different because I thought we had an issue where we moved some things around or rewarded something. And that's what caused. Yeah. Yeah, well causes addicts to think that the site was crashed because I changed it. We changed the title on the homepage. And that's what it was. It was essentially going to the homepage looking for this particular title string and and it didn't find that then assuming that decided crash. So that was that was that issue and so now we've changed it. Yeah. Anyway, there was also a memory issue on the on the Hudson Jenkins host. So it turns out that the the deboss image builder for the CT mark to requires quite a significant amount of memory. So as in like five and a half. Meg five and a half. Sorry. It's early here. Yeah, anyway, so at the moment, those jobs are only running manually. And so I'm just going to switch it to a single single job executor so that nothing else can come along and try and eat up Ram. We shouldn't really need to build images that often at the moment, but it's not going to need to look at in the future. We continue using the devos system. Devos is devian image building. Yeah. Right. Okay. Thanks for that update. Let's see. Derek, did I ask you for your update yet? No, not yet. Okay. So, let's see. Yeah, I was continuing my progress on kind of like two big things with a tagger and the tagger GUI design for the website and then getting our first 3D prints in version of the mark two. The only blocker is really distracting myself with trying to get my prototype running. But there's been some positive things that have come out of it. I think Ken mentioned the meeting yesterday. We have Kevin and answered many of the questions Ken had on the whole system as a, you know, Ohio and also got Kevin images of my Croft that we're currently using internally so that he can test, you know, replicate what we're doing, which I think is kind of where we need to be eventually. He's still kind of working on some hardware level things that are as we focus right now. Like the amplifier, you know, other things like that. Getting the I2S working on the other issues that we talked about is with Kevin is the current implementation using USB. For both, we're kind of using USB in two ways with the setup and it introduces latency. And there is a way to use I2S or I2S to not have that latency. The latency has to be reduced to get the margin effect because it cancels out the sound. So that's as I understand it. So some of those things are Kevin's focus. But as he gets past that, now he has a device that's like my desk. Ken will have one tomorrow and we all have copies of the same software. So my theory, we can shortly all fire up the exact same thing. So yeah, that wasn't exactly on the sprint, but that took up a good time yesterday. So yeah, I'm still hoping to get parts on the printer for this weekend and have something to look at next week. So I'm going to speak in on the sprint on that if I can. The other thing is just some updates to the slide deck for raising efforts. Just kind of throw it on there for this week too. Yeah, that's me. Okay, great. Thanks. So just to be clear, Ken is no longer trying to route to simultaneous streams of audio over the USB bus to the SJ201. Is that correct? No, that's not true. That's done. Oh, you are doing that? Just not working. Right. Okay, so let's give up on that path since that's not the path forward anyway. Well, wait a minute. So Kevin was under the impression that connecting directly to the I2C bus was causing pops. He's investigating whether that's because of mismatch capacitors or if there's other issues, but I'm not working on that. I'm saying the ability to combine the two device outputs for adaptive and device, that's been working. And it's just it's not clear that it's canceling noise. Right, so different. I'm not working on that anymore. Okay, right. Yeah. So my point is, yeah, let's not try to make that path work because I think that based on an email I got from Kevin. The I2S method should work and then they'll be exactly synchronized and we don't have to worry about it. It makes our drivers simpler and all that. So if you're going to spend any time on the SJ201 driver level stuff, you know, let's work on the LED interface and the buttons and that sort of stuff. That's exactly correct. That's what I'm working on is go back on the skill flash and closure code for the Mark II. And the reason that was put on the back burner was because I'm getting equipment tomorrow. Yeah. Okay, great. Yeah. Because I think it's promising that we're going to get this I2S thing solved because it was intended to work from the start. And I think we have to because I don't think Linux certainly not on this box can keep up with 150 milliseconds. Yeah, it's not a reasonable thing to ask. So, okay, great. I just wanted to clarify that. And if there's if it would be useful at all, you know, I'd be happy to jump on with you or maybe you can jump on with Kevin and just do some real time development, you know, pair programming kind of style. Don't be shy about that if you think that would be helpful. Yeah, you know, he seems like he's really sharp and he knows what he's doing and I would probably be an encumbrance at this point in time but where I might be helpful is he's not really that accustomed to the Linux environment in the Mark II so I can help him out there with what I know there. Okay, I'm just thinking like I know he has here a demo programs to make sure that the LEDs would do what we want them to and stuff like that. And that's the work that I will be working off of to incorporate into the enclosure stuff. Yep. Okay, yeah, yesterday we, we went over that kind of briefly and I got Ken on the shared drive that we have all the markets who related stuff on Kevin added his scripts there. So, that's, that stuff's kind of started rolling at least. We can touch upon the design of that Michael from a high level as we segue into our brainstorming sessions so you do realize that reading switches like this is going to be probably a polled request right. That sounds like a terrible way to do it but okay. I have a question because did we build the ability into them to generate interrupts on the host and I don't know the answer to that. Okay, well that sounds like good discussion that we should have with. Yeah, that's, that's how the Mark one ended up with an Arduino board. What does that mean, Josh. We didn't have the ability at the time Raspberry Pi we either didn't know how or wasn't capable of dealing with the timing issues related to the rotary encoder and picking up the interrupts from the, from the circuit. So we ended up adding an Arduino that could operate in real time, and then sending the commands back to the host controller over serial. I know I talked about this with Kevin at the time there's there's got to be a way to trigger the interrupts. So we'll figure it out. Okay, okay, so let's make that a separate issue though. Yeah, don't don't go after a polling solution there that's that's just not going to work. So what I would say is, I hear you, I don't want to. I'll be surprised if that's not how it ends up. Well, we should definitely have a separate issue for that in the system if we don't already. Do you have one? No, I'm sure Mr. ticket will cut one. By the way, Josh, were we out tending to our crops today? I got up this morning and installed internet in the south shelter. So yeah, I've been outside. But yeah, the I've been on a calls all morning between wicked and my craft and then I just got off one with Gardner the Gardner who's like a, honestly, I don't know what the hell they do. I know their sales rep is fantastic. And so Forester. Yeah, but I don't think either one of them benefits us, at least as a client at our size we've already been featured in one of their, their things about voices like a cool provider or something. I don't know man. Honestly, I'm just, I'm just, I'm trying to figure out where they could add value and then romancing their salesperson because I want to steal her. That's pretty much. She managed to get me on like three separate phone calls when I don't even want their product. Right. Like, yeah, that's a, that's a good salesperson. So anyway, And then I did build the backup server is here and formatted and happy and I will be building a permanent presence on My craft network so that I can start sucking down backups of basically everything to the house here and that will start soon. Everything's up and running. I just need to put it in a box of some kind. That's awesome. Okay. All right. Thanks for those updates. Let's just take a little break here and we'll Yeah, we'll transition to the next phase of our discussion.