Skip to content

Add a 6-layer tier for French Pocket TTS (only 24-layer exists today) #913

Description

@Abusayid693

What problem does this solve?

Every other Pocket TTS language has both a lightweight 6-layer tier and a larger 24-layer tier, but French only has the 24-layer option. In PocketTtsConstants.swift, the PocketTtsLanguage enum defines:

public enum PocketTtsLanguage: String, Sendable, CaseIterable {
    case english
    case french24L = "french_24l"
    case german
    case german24L = "german_24l"
    case italian
    case italian24L = "italian_24l"
    case portuguese
    case portuguese24L = "portuguese_24l"
    case spanish
    case spanish24L = "spanish_24l"

English/German/Italian/Portuguese/Spanish all have a plain 6-layer case alongside their *24L counterpart. French's only case is french24L — there's no case french. transformerLayers confirms this isn't just a naming quirk:

public var transformerLayers: Int {
    switch self {
    case .english, .german, .italian, .portuguese, .spanish:
        return 6
    case .french24L, .german24L, .italian24L, .portuguese24L, .spanish24L:
        return 24
    }
}

This makes French a meaningful outlier for anyone building a per-language download picker: the four other non-English languages are a consistent ~527MB (6-layer, fp16), while French is the only option at the much larger 24-layer size — no smaller/consistent option exists for it at all.

Proposed solution

Publish a 6-layer French pack (same tier/size class as the existing German/Italian/Portuguese/Spanish 6-layer packs) so French isn't forced into the 24-layer-only tier, and add the corresponding case french to PocketTtsLanguage.

Alternatives considered

If a 6-layer French model isn't feasible for a quality or availability reason, it'd help to know that explicitly (e.g. a doc comment on french24L explaining why), since right now it reads like an oversight rather than a deliberate constraint.

Additional context

Noticed this while wiring up per-language Pocket TTS packs in an app that depends on this SDK — every other language mapped cleanly to a small, consistent download size, and French was the one exception.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions