|
1 | | -import { EncodecFeatureExtractor, MimiModel } from "../../../src/transformers.js"; |
| 1 | +import { EncodecFeatureExtractor, MimiModel, MimiEncoderModel, MimiDecoderModel } from "../../../src/transformers.js"; |
2 | 2 |
|
3 | 3 | import { MAX_MODEL_LOAD_TIME, MAX_TEST_EXECUTION_TIME, MAX_MODEL_DISPOSE_TIME, DEFAULT_MODEL_OPTIONS } from "../../init.js"; |
4 | 4 |
|
@@ -42,4 +42,47 @@ export default () => { |
42 | 42 | await model?.dispose(); |
43 | 43 | }, MAX_MODEL_DISPOSE_TIME); |
44 | 44 | }); |
| 45 | + |
| 46 | + describe("MimiEncoderModel and MimiDecoderModel", () => { |
| 47 | + const model_id = "hf-internal-testing/tiny-random-MimiModel"; |
| 48 | + |
| 49 | + /** @type {MimiEncoderModel} */ |
| 50 | + let encoder_model; |
| 51 | + /** @type {MimiDecoderModel} */ |
| 52 | + let decoder_model; |
| 53 | + /** @type {EncodecFeatureExtractor} */ |
| 54 | + let feature_extractor; |
| 55 | + let inputs; |
| 56 | + let encoder_outputs; |
| 57 | + |
| 58 | + beforeAll(async () => { |
| 59 | + encoder_model = await MimiEncoderModel.from_pretrained(model_id, DEFAULT_MODEL_OPTIONS); |
| 60 | + decoder_model = await MimiDecoderModel.from_pretrained(model_id, DEFAULT_MODEL_OPTIONS); |
| 61 | + feature_extractor = await EncodecFeatureExtractor.from_pretrained(model_id); |
| 62 | + inputs = await feature_extractor(new Float32Array(12000)); |
| 63 | + }, MAX_MODEL_LOAD_TIME); |
| 64 | + |
| 65 | + it( |
| 66 | + "encode", |
| 67 | + async () => { |
| 68 | + encoder_outputs = await encoder_model(inputs); |
| 69 | + expect(encoder_outputs.audio_codes.dims).toEqual([1, encoder_model.config.num_quantizers, 7]); |
| 70 | + }, |
| 71 | + MAX_TEST_EXECUTION_TIME, |
| 72 | + ); |
| 73 | + |
| 74 | + it( |
| 75 | + "decode", |
| 76 | + async () => { |
| 77 | + const { audio_values } = await decoder_model(encoder_outputs); |
| 78 | + expect(audio_values.dims).toEqual([1, 1, 13440]); |
| 79 | + }, |
| 80 | + MAX_TEST_EXECUTION_TIME, |
| 81 | + ); |
| 82 | + |
| 83 | + afterAll(async () => { |
| 84 | + await encoder_model?.dispose(); |
| 85 | + await decoder_model?.dispose(); |
| 86 | + }, MAX_MODEL_DISPOSE_TIME); |
| 87 | + }); |
45 | 88 | }; |
0 commit comments