Skip to content

Commit

Permalink
Speaker selection fully up and running
Browse files Browse the repository at this point in the history
  • Loading branch information
DavidMockler committed Aug 7, 2024
1 parent a22c3b4 commit f459f7e
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 24 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -27,31 +27,30 @@
<mat-menu #dialects="matMenu">
<button mat-menu-item
[matMenuTriggerFor]="gender"
[matMenuTriggerData]="{dialect : 'Connacht'}"
(menuOpened)="dialectMenuOpened('Connacht')">
[matMenuTriggerData]="{dialect : 'Connacht'}">
<span>{{ts.l.connacht}}</span>
</button>
<button mat-menu-item
[matMenuTriggerFor]="gender"
[matMenuTriggerData]="{dialect : 'Ulster'}"
(menuOpened)="dialectMenuOpened('Ulster')">
[matMenuTriggerData]="{dialect : 'Ulster'}">
<span>{{ts.l.ulster}}</span>
</button>
<button mat-menu-item
[matMenuTriggerFor]="gender"
[matMenuTriggerData]="{dialect : 'Munster'}"
(menuOpened)="dialectMenuOpened('Munster')">
[matMenuTriggerData]="{dialect : 'Munster'}">
<span>{{ts.l.munster}}</span>
</button>
</mat-menu>
<mat-menu #gender="matMenu" aria-label="Gender choice menu">
<ng-template matMenuContent let-dialect="dialect">
<button mat-menu-item
(click)="speakerSelected(dialect, 'm')">
(click)="speakerSelected(dialect, 'm')"
[disabled]="!speakerExists(dialect, 'm')">
{{ ts.l.male }}
</button>
<button mat-menu-item
(click)="speakerSelected(dialect, 'f')">
(click)="speakerSelected(dialect, 'f')"
[disabled]="!speakerExists(dialect, 'f')">
{{ ts.l.female }}
</button>
</ng-template>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ const dialectToVoiceIndex = new Map<string, number>([
["Ulster f", 1],
["Connacht m", 2],
["Munster f", 3],
["Munster m", 4],
//["Munster m", 4], // there is a problem with the male Munster voice (Colm)
]);

@Component({
Expand Down Expand Up @@ -69,13 +69,7 @@ export class DigitalReaderStoryBuilderComponent implements OnInit {
public currentSentence:Element | null = null;
public currentWord:Element | null = null;

public listOfAudios:any = [ // 5 sub-arrays, 1 for each voice option
[],
[],
[],
[],
[]
]
public listOfAudios:any = []

public audio:HTMLAudioElement;
public timings:any[] = []
Expand All @@ -101,16 +95,19 @@ export class DigitalReaderStoryBuilderComponent implements OnInit {
public ts: TranslationService,
protected sanitizer: DomSanitizer,
private drStoryService: DigitalReaderStoryService,
) {

//this.audio = document.createElement('audio')

}
) {}

async ngOnInit() {

this.forceTrustedHTML = this.sanitizer.bypassSecurityTrustHtml(this.content.innerHTML)

console.log(dialectToVoiceIndex)
for (let entry of dialectToVoiceIndex.entries()) {
//const key = entry[0];
const voiceIndex = entry[1];
this.listOfAudios[voiceIndex] = [];
}

// only for testing
const firstSentSpans = this.content?.querySelectorAll('.sentence')
for (let i=0;i<3;i++) {
Expand All @@ -126,8 +123,20 @@ export class DigitalReaderStoryBuilderComponent implements OnInit {

}

speakerExists(dialect:string, gender:string) {
const speaker:string = dialect + ' ' + gender;
return dialectToVoiceIndex.get(speaker) !== undefined;
}

speakerSelected(dialect:string, gender:string) {
console.log(dialect, gender);
const speaker:string = dialect + ' ' + gender;
const voiceIndex:number|undefined = dialectToVoiceIndex.get(speaker);
if (voiceIndex!==undefined) {
this.voiceIndex = voiceIndex;
}
if (this.audioPlaying) {
this.playFromCurrentWord();
}
}

getWordPositionIndex(word:Element, childWordSpans:NodeList) {
Expand Down Expand Up @@ -472,9 +481,9 @@ export class DigitalReaderStoryBuilderComponent implements OnInit {
const sentAudioObj = await this.getCurrentAudioObject();


console.log(this.audio)
/*console.log(this.audio)
console.log(this.audio.paused)
console.log(this.audio.ended)
console.log(this.audio.ended)*/
//if (sentAudioObj && (this.audio && (!this.audio.paused || this.audio.ended))) {
if (sentAudioObj && !this.audioPaused) {
this.timings = this.getWordTimings(this.currentWord, this.currentSentence, sentAudioObj)
Expand Down

0 comments on commit f459f7e

Please sign in to comment.