Skip to content

Commit

Permalink
generateLabelFileData関数をutility.tsに移動
Browse files Browse the repository at this point in the history
  • Loading branch information
sigprogramming committed Dec 27, 2024
1 parent 9278dbf commit 881bd9c
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 29 deletions.
25 changes: 0 additions & 25 deletions src/helpers/fileDataGenerator.ts
Original file line number Diff line number Diff line change
Expand Up @@ -91,28 +91,3 @@ export async function generateTextFileData(obj: {

return await textBlob.arrayBuffer();
}

export async function generateLabelFileData(
phonemes: FramePhoneme[],
frameRate: number,
) {
let labString = "";
let timestamp = 0;

const writeLine = (phonemeLengthSeconds: number, phoneme: string) => {
labString += timestamp.toFixed() + " ";
timestamp += phonemeLengthSeconds * 1e7; // 100ns単位に変換
labString += timestamp.toFixed() + " ";
labString += phoneme + "\n";
};

for (const phoneme of phonemes) {
if (isVowel(phoneme.phoneme) && phoneme.phoneme !== "N") {
writeLine(phoneme.frameLength / frameRate, phoneme.phoneme.toLowerCase());
} else {
writeLine(phoneme.frameLength / frameRate, phoneme.phoneme);
}
}

return await generateTextFileData({ text: labString });
}
4 changes: 2 additions & 2 deletions src/store/singing.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ import {
currentDateString,
DEFAULT_PROJECT_NAME,
DEFAULT_STYLE_NAME,
generateLabelFileDataFromFramePhonemes,
sanitizeFileName,
} from "./utility";
import {
Expand Down Expand Up @@ -111,7 +112,6 @@ import { ufProjectToVoicevox } from "@/sing/utaformatixProject/toVoicevox";
import { uuid4 } from "@/helpers/random";
import { generateWriteErrorMessage } from "@/helpers/fileHelper";
import {

Check failure on line 114 in src/store/singing.ts

View workflow job for this annotation

GitHub Actions / lint

Replace `⏎··generateWavFileData,⏎` with `·generateWavFileData·`

Check failure on line 114 in src/store/singing.ts

View workflow job for this annotation

GitHub Actions / build-test

Replace `⏎··generateWavFileData,⏎` with `·generateWavFileData·`
generateLabelFileData,
generateWavFileData,
} from "@/helpers/fileDataGenerator";
import path from "@/helpers/path";
Expand Down Expand Up @@ -3064,7 +3064,7 @@ export const singingStore = createPartialStore<SingingStoreTypes>({
const entirePhonemes = phonemeTimingsToPhonemes(
filteredEntirePhonemeTimings,
);
const labFileData = await generateLabelFileData(
const labFileData = await generateLabelFileDataFromFramePhonemes(
entirePhonemes,
frameRate,
);
Expand Down
30 changes: 28 additions & 2 deletions src/store/utility.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,11 @@ import {
StyleType,
ToolbarButtonTagType,
} from "@/type/preload";
import { AccentPhrase, Mora } from "@/openapi";
import { AccentPhrase, FramePhoneme, Mora } from "@/openapi";
import { cloneWithUnwrapProxy } from "@/helpers/cloneWithUnwrapProxy";
import { DEFAULT_TRACK_NAME } from "@/sing/domain";
import { DEFAULT_TRACK_NAME, isVowel } from "@/sing/domain";
import { isMac } from "@/helpers/platform";
import { generateTextFileData } from "@/helpers/fileDataGenerator";

export const DEFAULT_STYLE_NAME = "ノーマル";
export const DEFAULT_PROJECT_NAME = "Untitled";
Expand Down Expand Up @@ -513,3 +514,28 @@ export const filterCharacterInfosByStyleType = (

return withoutEmptyStyles;
};

export async function generateLabelFileDataFromFramePhonemes(
phonemes: FramePhoneme[],
frameRate: number,
) {
let labString = "";
let timestamp = 0;

const writeLine = (phonemeLengthSeconds: number, phoneme: string) => {
labString += timestamp.toFixed() + " ";
timestamp += phonemeLengthSeconds * 1e7; // 100ns単位に変換
labString += timestamp.toFixed() + " ";
labString += phoneme + "\n";
};

for (const phoneme of phonemes) {
if (isVowel(phoneme.phoneme) && phoneme.phoneme !== "N") {
writeLine(phoneme.frameLength / frameRate, phoneme.phoneme.toLowerCase());
} else {
writeLine(phoneme.frameLength / frameRate, phoneme.phoneme);
}
}

return await generateTextFileData({ text: labString });
}

0 comments on commit 881bd9c

Please sign in to comment.