1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
//! Multilingual support including code-switching transducers.
//!
//! This module provides:
//! - **Code-Switching Transducers**: Model language switches in multilingual speech
//! - **Language Identification**: Detect language at word/phrase level
//! - **Language Models**: Per-language probability models
//!
//! ## Code-Switching
//!
//! Code-switching is the alternation between two or more languages within a single
//! conversation. This is common in multilingual communities and presents challenges
//! for ASR and NLP systems.
//!
//! The `CodeSwitchTransducer` models:
//! - Language-specific vocabularies
//! - Switch penalties between languages
//! - Language priors (expected frequency of each language)
//! - Per-language scoring
//!
//! ## Example
//!
//! ```rust,ignore
//! use lling_llang::multilingual::*;
//! use lling_llang::semiring::TropicalWeight;
//!
//! // Configure two languages
//! let english = LanguageConfig::new("en")
//! .with_prior(0.7)
//! .with_words(vec!["hello", "world", "the"]);
//!
//! let spanish = LanguageConfig::new("es")
//! .with_prior(0.3)
//! .with_words(vec!["hola", "mundo", "el"]);
//!
//! // Build code-switching transducer
//! let transducer: CodeSwitchTransducer<TropicalWeight> = CodeSwitchBuilder::new()
//! .add_language(english)
//! .add_language(spanish)
//! .switch_penalty(2.0)
//! .build();
//!
//! // Score a code-switched sequence
//! let score = transducer.score_sequence(&["hello", "mundo"]);
//! ```
pub use ;
pub use ;