Compare commits
21
Commits
No files matched your search
+11
@@ -13,6 +13,7 @@ venv/
|
||||
*.safetensors
|
||||
models/
|
||||
weights/
|
||||
ckpts/
|
||||
|
||||
# Audio I/O scratch
|
||||
*.wav
|
||||
@@ -29,3 +30,13 @@ outputs/
|
||||
# Full-size source video — keep locally, commit only compressed derivatives
|
||||
media-files/video/*.mp4
|
||||
!media-files/video/*-480p.mp4
|
||||
|
||||
# Compressed exports of demucs stems — keep committed for review without
|
||||
# local playback (the raw separated/*.wav stems stay local, per *.wav above)
|
||||
!demucs/*.mp3
|
||||
|
||||
# Small public-domain demo evidence clip for the auk voice-editing demo
|
||||
!auk/*.wav
|
||||
|
||||
# VibeVoice 4-speaker spike test clip - committed for remote review
|
||||
!vibevoice-spike/*.mp3
|
||||
@@ -6,10 +6,25 @@ Audio processing demos: WhisperX, Demucs, and TTS technology proofs-of-concept.
|
||||
|
||||
- `whisperx/` — speech-to-text with word-level alignment and diarization
|
||||
- `demucs/` — source separation (vocals/instrumentals stem splitting)
|
||||
- `tts/` — text-to-speech service demos
|
||||
- `tts/` — text-to-speech service demos (voice cloning via MOSS-TTS)
|
||||
- `auk/` — voice *editing* demos (emotion/pitch/speed/content editing on existing recordings,
|
||||
as opposed to `tts/`'s clone-and-generate approach)
|
||||
- `webui/` — interactive pipeline studio chaining demucs -> AuK -> MOSS-TTS with previews
|
||||
|
||||
Each subdirectory has its own README with setup and run instructions.
|
||||
|
||||
## Requirements
|
||||
|
||||
Some demos are GPU-accelerated and are best run on a CUDA-capable machine (e.g. an RTX 3090).
|
||||
|
||||
## Planned: full audio-translation demo
|
||||
|
||||
Chain the three demos together on `media-files/` into an end-to-end pipeline:
|
||||
|
||||
1. `demucs` — separate the source clip into vocals / instrumental stems
|
||||
2. `whisperx` — transcribe the isolated vocal stem, then machine-translate the transcript
|
||||
3. `tts` — clone the original speaker's voice (from the isolated vocal stem) and synthesize
|
||||
the translated text in that voice, then remix with the original instrumental stem
|
||||
|
||||
Stem separation and transcription are already working end to end (see `demucs/README.md` and
|
||||
`whisperx/README.md`); translation and voice-cloning TTS are not yet implemented.
|
||||
@@ -1 +0,0 @@
|
||||
Steve can edit.
|
||||
@@ -0,0 +1,67 @@
|
||||
# auk
|
||||
|
||||
Voice-*editing* demos using [AuK](https://github.com/Tencent-Hunyuan/AuK) (Tencent-Hunyuan) — a
|
||||
1.5B foundation model for speech generation **and editing**. Unlike MOSS-TTS's `instruction`
|
||||
field (steers style at generation time, from a reference clip), AuK edits an *existing*
|
||||
recording directly: same speaker, same words, same duration, different delivery. It also does
|
||||
content editing (rewrite/insert/remove words), pitch/speed/volume editing, de-accenting, and
|
||||
speech enhancement/separation — all through one natural-language instruction interface.
|
||||
|
||||
## Demo
|
||||
|
||||
`emotion_edit_demo.py` takes the same public-domain narrator clip used by the whisperx/tts demos
|
||||
(`tts/reference/narrator_ref_en.wav`, 11.7s, isolated via demucs) and edits its emotion to
|
||||
"excited" while preserving the voice, words, and exact duration.
|
||||
|
||||
### Setup
|
||||
|
||||
AuK is vendored outside this repo (large third-party project, editable install), same pattern as
|
||||
MOSS-TTS:
|
||||
|
||||
```bash
|
||||
git clone https://github.com/Tencent-Hunyuan/AuK.git /path/to/vendor/AuK
|
||||
python3 -m venv .venv && . .venv/bin/activate
|
||||
pip install -e /path/to/vendor/AuK
|
||||
|
||||
# Two runtime deps AuK needs but doesn't declare (see Gotchas):
|
||||
pip install audioread "huggingface_hub<1.0,>=0.34.0"
|
||||
|
||||
# Model weights (~17GB total)
|
||||
pip install -U "huggingface_hub[cli]"
|
||||
hf download tencent/AuK --local-dir ./ckpts/AuK
|
||||
hf download Qwen/Qwen2.5-Omni-3B --local-dir ./ckpts/Qwen2.5-Omni-3B
|
||||
```
|
||||
|
||||
### Running
|
||||
|
||||
```bash
|
||||
python3 emotion_edit_demo.py
|
||||
```
|
||||
|
||||
Output goes to `narrator_excited.wav` (24kHz mono, ~11.7s — exact source duration preserved).
|
||||
|
||||
## Gotchas found running this on an RTX 3090
|
||||
|
||||
- **`qwen_omni_utils` needs `audioread`, but nothing declares it as a dependency** — same class
|
||||
of packaging gap as demucs's missing `numpy` earlier in this repo. Install it explicitly or
|
||||
the first real inference call fails with `ModuleNotFoundError: No module named 'audioread'`
|
||||
(model loading itself succeeds first, so this only surfaces once generation actually starts).
|
||||
- **`pip install "huggingface_hub[cli]"` breaks `transformers`** — it pulls `huggingface_hub`
|
||||
2.x-style 1.31.0, but `transformers` (installed as an AuK dependency) requires `<1.0`. Only
|
||||
needed transiently to fetch the weights; downgrade back to `<1.0,>=0.34.0` before running
|
||||
inference, or install the CLI in a separate throwaway environment.
|
||||
- **`--cpu_offload` is not optional on a 24GB card** — AuK's own documented VRAM figures
|
||||
(24.78–25.00GiB *without* offload) exceed the RTX 3090's 24GB entirely, even dedicating the
|
||||
whole card. Always pass `--cpu_offload` (or `cpu_offload=True` in the Python API).
|
||||
- **Real practical length limit is much shorter than it looks: ~25–30s, not 5 minutes.** AuK's
|
||||
ComfyUI docs mention a "30-second source/reference-plus-target budget" as if it were a
|
||||
ComfyUI-specific constraint — it isn't. A 25s clip worked fine even with `--cpu_offload`; an
|
||||
80s clip OOM'd (tried to allocate another 8.9GB mid-attention on top of the ~17GB already in
|
||||
use) because attention memory scales fast with sequence length. Editing a full multi-minute
|
||||
podcast take means chunking it into ≤~25s segments and concatenating, not a single pass —
|
||||
worth planning for prosody continuity across chunk boundaries.
|
||||
- **Default checkpoint path** baked into `auk-infer`/`AukInfer` points at wherever you cloned
|
||||
the vendor repo, not this directory — always pass `--ckpt`/`--qwen_path` (CLI) or
|
||||
`config_path`/`ckpt_path`/`qwen_path` (Python API) explicitly.
|
||||
- **Output is 24kHz mono**, notably lower fidelity than MOSS-TTS's 48kHz stereo output — worth
|
||||
factoring in if AuK-edited audio needs to sit alongside MOSS-TTS output in the same pipeline.
|
||||
@@ -0,0 +1,47 @@
|
||||
"""
|
||||
Voice-editing demo using Tencent's AuK (https://github.com/Tencent-Hunyuan/AuK).
|
||||
|
||||
Unlike MOSS-TTS's `instruction` field (steers style at generation time),
|
||||
AuK edits emotion on an *existing* recording directly - same speaker, same
|
||||
words, same duration, different delivery. Demonstrates on the public-domain
|
||||
narrator clip already used by the whisperx/tts demos.
|
||||
|
||||
Run from the auk/ directory with its .venv activated.
|
||||
"""
|
||||
|
||||
from pathlib import Path
|
||||
|
||||
from auk.infer.infer_auk import AukInfer, save_audio
|
||||
|
||||
HERE = Path(__file__).parent
|
||||
CONFIG = HERE / "ckpts" / "AuK" / "config.yaml"
|
||||
CKPT = HERE / "ckpts" / "AuK" / "auk_base.safetensors"
|
||||
QWEN_PATH = HERE / "ckpts" / "Qwen2.5-Omni-3B"
|
||||
INPUT_AUDIO = HERE.parent / "tts" / "reference" / "narrator_ref_en.wav"
|
||||
OUTPUT_PATH = HERE / "narrator_excited.wav"
|
||||
|
||||
INSTRUCTION = "Change the emotion to excited."
|
||||
|
||||
|
||||
def main() -> None:
|
||||
engine = AukInfer(
|
||||
str(CONFIG), str(CKPT), qwen_path=str(QWEN_PATH), cpu_offload=True
|
||||
)
|
||||
|
||||
messages = [
|
||||
{
|
||||
"role": "user",
|
||||
"content": [
|
||||
{"type": "text", "text": INSTRUCTION},
|
||||
{"type": "audio", "audio": str(INPUT_AUDIO)},
|
||||
],
|
||||
}
|
||||
]
|
||||
|
||||
audio, sr = engine.generate(messages)
|
||||
save_audio(audio, sr, str(OUTPUT_PATH))
|
||||
print(f"[INFO] Saved {OUTPUT_PATH}")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Binary file not shown.
@@ -1,3 +1,30 @@
|
||||
# demucs
|
||||
|
||||
Source separation demos using [Demucs](https://github.com/facebookresearch/demucs) — splitting audio into stems (vocals, drums, bass, other).
|
||||
|
||||
## Demo run
|
||||
|
||||
Ran two-stem separation (vocals vs. everything else) on an RTX 3090 against
|
||||
`media-files/audio/service-mbrs-ntscrm-01840194-01840194.m4a`:
|
||||
|
||||
```
|
||||
python3 -m demucs --two-stems=vocals -n htdemucs \
|
||||
-o separated \
|
||||
../media-files/audio/service-mbrs-ntscrm-01840194-01840194.m4a
|
||||
```
|
||||
|
||||
Took ~12s for 11 minutes of audio. Outputs `vocals.wav` and `no_vocals.wav` (44.1kHz stereo PCM,
|
||||
duration matches source) under `separated/htdemucs/<track-name>/` — gitignored, left on the GPU
|
||||
box at `/root/projects/audio-demo/repo/demucs/separated/`.
|
||||
|
||||
Full-length MP3 versions (128kbps, ~10MB each) are committed as `vocals.mp3` and
|
||||
`no_vocals.mp3` in this directory so both stems are reviewable directly from Gitea without
|
||||
needing local playback or GPU-box access.
|
||||
|
||||
**Known gotcha:** demucs 4.1.0's package metadata doesn't declare `numpy` as a dependency even
|
||||
though `demucs/transformer.py` imports it directly — `pip install demucs` alone leaves the env
|
||||
broken (`ModuleNotFoundError: No module named 'numpy'` at runtime). Install `numpy` explicitly
|
||||
alongside it.
|
||||
|
||||
The isolated `vocals.wav` is intended as the clean reference/source audio for a voice-cloning TTS
|
||||
step (see top-level README for the planned audio-translation pipeline).
|
||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,82 @@
|
||||
"""
|
||||
Mastering chain for generated TTS/voice clips: fixes the "tinny" spectral
|
||||
imbalance common to neural vocoder output (excess 3-6kHz presence energy,
|
||||
starved low end relative to a naturally-recorded voice - see the project's
|
||||
spectral comparison: raw recordings skew toward 200-1000Hz, generated clips
|
||||
dump ~35% of their energy into 3-6kHz) and adds the density/space that
|
||||
reads as "produced" rather than dry/synthetic.
|
||||
|
||||
Chain order matters: EQ before compression (so the compressor reacts to
|
||||
the corrected tonal balance, not the raw tinny one), reverb after
|
||||
compression (so the room tail doesn't get squashed), limiter last.
|
||||
"""
|
||||
|
||||
import argparse
|
||||
|
||||
import numpy as np
|
||||
import soundfile as sf
|
||||
from pedalboard import (
|
||||
Compressor,
|
||||
HighpassFilter,
|
||||
HighShelfFilter,
|
||||
Limiter,
|
||||
LowShelfFilter,
|
||||
PeakFilter,
|
||||
Pedalboard,
|
||||
Reverb,
|
||||
)
|
||||
|
||||
|
||||
def build_chain(
|
||||
warmth_db: float,
|
||||
presence_cut_db: float,
|
||||
air_db: float,
|
||||
comp_ratio: float,
|
||||
reverb_wet: float,
|
||||
) -> Pedalboard:
|
||||
return Pedalboard([
|
||||
HighpassFilter(cutoff_frequency_hz=60),
|
||||
LowShelfFilter(cutoff_frequency_hz=150, gain_db=warmth_db, q=0.7),
|
||||
PeakFilter(cutoff_frequency_hz=3800, gain_db=presence_cut_db, q=1.0),
|
||||
HighShelfFilter(cutoff_frequency_hz=6500, gain_db=air_db, q=0.7),
|
||||
Compressor(threshold_db=-20, ratio=comp_ratio, attack_ms=12, release_ms=120),
|
||||
Reverb(room_size=0.08, damping=0.85, wet_level=reverb_wet, dry_level=1.0 - reverb_wet),
|
||||
Limiter(threshold_db=-1.0, release_ms=100),
|
||||
])
|
||||
|
||||
|
||||
def main() -> None:
|
||||
parser = argparse.ArgumentParser(description="Apply a studio mastering chain to a voice clip")
|
||||
parser.add_argument("--input", required=True)
|
||||
parser.add_argument("--output", required=True)
|
||||
parser.add_argument("--warmth-db", type=float, default=5.5, help="Low-shelf boost @150Hz")
|
||||
parser.add_argument("--presence-cut-db", type=float, default=-5.0, help="Peak cut @3.8kHz (the tinny band)")
|
||||
parser.add_argument("--air-db", type=float, default=-4.5, help="High-shelf @6.5kHz, for softness")
|
||||
parser.add_argument("--comp-ratio", type=float, default=2.5)
|
||||
parser.add_argument("--reverb-wet", type=float, default=0.025)
|
||||
args = parser.parse_args()
|
||||
|
||||
audio, sr = sf.read(args.input, always_2d=True)
|
||||
audio = audio.T.astype(np.float32) # pedalboard wants (channels, samples)
|
||||
|
||||
board = build_chain(
|
||||
args.warmth_db, args.presence_cut_db, args.air_db, args.comp_ratio, args.reverb_wet
|
||||
)
|
||||
processed = board(audio, sr)
|
||||
|
||||
# pedalboard's Limiter is attack/release-based, not a true brick-wall
|
||||
# limiter - fast transients can still punch through its threshold (seen
|
||||
# in practice: in-memory peaks hit 0dBFS despite threshold_db=-1.0,
|
||||
# producing audible clipping distortion on playback). Hard safety
|
||||
# ceiling here guarantees the written file never clips regardless.
|
||||
target_peak = 10 ** (-1.0 / 20)
|
||||
peak = np.max(np.abs(processed))
|
||||
if peak > target_peak:
|
||||
processed = processed * (target_peak / peak)
|
||||
|
||||
sf.write(args.output, processed.T, sr)
|
||||
print(f"[INFO] Saved {args.output}")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -0,0 +1,32 @@
|
||||
"""
|
||||
Stable Audio 3 Small-SFX CLI: generate a sound effect/ambience clip from a
|
||||
text description. Runs on CPU by design - this checkpoint is the
|
||||
"lightweight, no GPU required" model in Stable Audio 3's lineup, so it
|
||||
never contends with ComfyUI/other models for VRAM (unlike generate_sfx.py's
|
||||
MOSS-SoundEffect, which needs the 3090 and ComfyUI's memory freed first).
|
||||
"""
|
||||
|
||||
import argparse
|
||||
|
||||
import torchaudio
|
||||
from stable_audio_3 import StableAudioModel
|
||||
|
||||
|
||||
def main() -> None:
|
||||
parser = argparse.ArgumentParser(description="Stable Audio 3 Small-SFX text-to-sound-effect")
|
||||
parser.add_argument("--text", required=True, help="Description of the sound effect/ambience")
|
||||
parser.add_argument("--output", required=True, help="Output wav path")
|
||||
parser.add_argument("--duration", type=float, default=10.0, help="Clip duration in seconds (max 120)")
|
||||
parser.add_argument("--seed", type=int, default=-1, help="Random seed, or -1 for random")
|
||||
args = parser.parse_args()
|
||||
|
||||
model = StableAudioModel.from_pretrained("small-sfx", device="cpu")
|
||||
sample_rate = model.model.sample_rate
|
||||
|
||||
audio = model.generate(prompt=args.text, duration=args.duration, seed=args.seed)
|
||||
torchaudio.save(args.output, audio[0].cpu(), sample_rate)
|
||||
print(f"[INFO] Saved {args.output}")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
+109
@@ -0,0 +1,109 @@
|
||||
"""
|
||||
Generic MOSS-TTS zero-shot cloning CLI: clone the voice in --reference and
|
||||
say --text in it. Used directly, and as the final stage of webui/app.py.
|
||||
"""
|
||||
|
||||
import argparse
|
||||
import importlib.util
|
||||
|
||||
import soundfile as sf
|
||||
import torch
|
||||
from transformers import AutoModel, AutoProcessor
|
||||
|
||||
PRETRAINED = "OpenMOSS-Team/MOSS-TTS-Local-Transformer-v1.5"
|
||||
|
||||
|
||||
def resolve_attn_implementation(device: str, dtype: torch.dtype) -> str:
|
||||
if (
|
||||
device == "cuda"
|
||||
and importlib.util.find_spec("flash_attn") is not None
|
||||
and dtype in {torch.float16, torch.bfloat16}
|
||||
):
|
||||
major, _ = torch.cuda.get_device_capability()
|
||||
if major >= 8:
|
||||
return "flash_attention_2"
|
||||
return "sdpa" if device == "cuda" else "eager"
|
||||
|
||||
|
||||
def main() -> None:
|
||||
parser = argparse.ArgumentParser(description="MOSS-TTS zero-shot voice cloning")
|
||||
parser.add_argument("--text", required=True, help="Text to synthesize")
|
||||
parser.add_argument("--reference", required=True, help="Reference audio path")
|
||||
parser.add_argument("--output", required=True, help="Output wav path")
|
||||
parser.add_argument("--language", default="English", help="Language tag")
|
||||
parser.add_argument(
|
||||
"--instruction", default=None,
|
||||
help='Style/delivery instruction (e.g. "Change the emotion to excited."). '
|
||||
"Undocumented MOSS-TTS field for this checkpoint - confirmed to work for "
|
||||
"emotion in testing, passed through as-is.",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--seed", type=int, default=None,
|
||||
help="Random seed for reproducibility. Unset = nondeterministic.",
|
||||
)
|
||||
parser.add_argument("--audio_temperature", type=float, default=1.7)
|
||||
parser.add_argument("--audio_top_p", type=float, default=0.8)
|
||||
parser.add_argument("--audio_top_k", type=int, default=25)
|
||||
parser.add_argument("--audio_repetition_penalty", type=float, default=1.0)
|
||||
parser.add_argument("--max_new_tokens", type=int, default=4096)
|
||||
args = parser.parse_args()
|
||||
|
||||
device = "cuda" if torch.cuda.is_available() else "cpu"
|
||||
dtype = torch.bfloat16 if device == "cuda" else torch.float32
|
||||
|
||||
if args.seed is not None:
|
||||
torch.manual_seed(args.seed)
|
||||
if device == "cuda":
|
||||
torch.cuda.manual_seed_all(args.seed)
|
||||
|
||||
torch.backends.cuda.enable_cudnn_sdp(False)
|
||||
torch.backends.cuda.enable_flash_sdp(True)
|
||||
torch.backends.cuda.enable_mem_efficient_sdp(True)
|
||||
torch.backends.cuda.enable_math_sdp(True)
|
||||
|
||||
attn_implementation = resolve_attn_implementation(device, dtype)
|
||||
print(f"[INFO] attn_implementation={attn_implementation}")
|
||||
|
||||
processor = AutoProcessor.from_pretrained(PRETRAINED, trust_remote_code=True)
|
||||
processor.audio_tokenizer = processor.audio_tokenizer.to(device)
|
||||
|
||||
model = AutoModel.from_pretrained(
|
||||
PRETRAINED,
|
||||
trust_remote_code=True,
|
||||
attn_implementation=attn_implementation,
|
||||
dtype=dtype,
|
||||
).to(device)
|
||||
model.eval()
|
||||
|
||||
conversation = [
|
||||
processor.build_user_message(
|
||||
text=args.text,
|
||||
language=args.language,
|
||||
reference=[args.reference],
|
||||
instruction=args.instruction,
|
||||
)
|
||||
]
|
||||
|
||||
with torch.no_grad():
|
||||
batch = processor([conversation], mode="generation")
|
||||
outputs = model.generate(
|
||||
input_ids=batch["input_ids"].to(device),
|
||||
attention_mask=batch["attention_mask"].to(device),
|
||||
max_new_tokens=args.max_new_tokens,
|
||||
do_sample=True,
|
||||
audio_temperature=args.audio_temperature,
|
||||
audio_top_p=args.audio_top_p,
|
||||
audio_top_k=args.audio_top_k,
|
||||
audio_repetition_penalty=args.audio_repetition_penalty,
|
||||
)
|
||||
message = processor.decode(outputs)[0]
|
||||
audio = message.audio_codes_list[0]
|
||||
data = audio.detach().cpu().to(torch.float32).numpy()
|
||||
if data.ndim == 2:
|
||||
data = data.T
|
||||
sf.write(args.output, data, processor.model_config.sampling_rate)
|
||||
print(f"[INFO] Saved {args.output}")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -0,0 +1,99 @@
|
||||
"""
|
||||
MOSS-SoundEffect CLI: generate an ambient/sound-effect clip from a text
|
||||
description. Sibling of generate.py (MOSS-TTS voice cloning) - same
|
||||
backend setup and model-loading pattern, different checkpoint and a
|
||||
text-only build_user_message call (no reference audio, no cloning).
|
||||
"""
|
||||
|
||||
import argparse
|
||||
import importlib.util
|
||||
import os
|
||||
|
||||
# This checkpoint's weights alone use ~22.3GB of this box's ~23.56GB usable
|
||||
# VRAM, leaving generate()'s own small allocations (a vocab-sized mask
|
||||
# tensor, etc.) no room without this - confirmed via OOM otherwise. Must be
|
||||
# set before torch's CUDA allocator initializes, so it's set here rather
|
||||
# than relying on the caller's shell environment.
|
||||
os.environ.setdefault("PYTORCH_ALLOC_CONF", "expandable_segments:True")
|
||||
os.environ.setdefault("PYTORCH_CUDA_ALLOC_CONF", "expandable_segments:True")
|
||||
|
||||
import soundfile as sf
|
||||
import torch
|
||||
from transformers import AutoModel, AutoProcessor
|
||||
|
||||
PRETRAINED = "OpenMOSS-Team/MOSS-SoundEffect"
|
||||
|
||||
|
||||
def resolve_attn_implementation(device: str, dtype: torch.dtype) -> str:
|
||||
if (
|
||||
device == "cuda"
|
||||
and importlib.util.find_spec("flash_attn") is not None
|
||||
and dtype in {torch.float16, torch.bfloat16}
|
||||
):
|
||||
major, _ = torch.cuda.get_device_capability()
|
||||
if major >= 8:
|
||||
return "flash_attention_2"
|
||||
return "sdpa" if device == "cuda" else "eager"
|
||||
|
||||
|
||||
def main() -> None:
|
||||
parser = argparse.ArgumentParser(description="MOSS-SoundEffect text-to-sound-effect")
|
||||
parser.add_argument("--text", required=True, help="Description of the sound effect/ambience")
|
||||
parser.add_argument("--output", required=True, help="Output wav path")
|
||||
parser.add_argument(
|
||||
"--seed", type=int, default=None,
|
||||
help="Random seed for reproducibility. Unset = nondeterministic.",
|
||||
)
|
||||
parser.add_argument("--max_new_tokens", type=int, default=4096)
|
||||
args = parser.parse_args()
|
||||
|
||||
device = "cuda" if torch.cuda.is_available() else "cpu"
|
||||
dtype = torch.bfloat16 if device == "cuda" else torch.float32
|
||||
|
||||
if args.seed is not None:
|
||||
torch.manual_seed(args.seed)
|
||||
if device == "cuda":
|
||||
torch.cuda.manual_seed_all(args.seed)
|
||||
|
||||
torch.backends.cuda.enable_cudnn_sdp(False)
|
||||
torch.backends.cuda.enable_flash_sdp(True)
|
||||
torch.backends.cuda.enable_mem_efficient_sdp(True)
|
||||
torch.backends.cuda.enable_math_sdp(True)
|
||||
|
||||
attn_implementation = resolve_attn_implementation(device, dtype)
|
||||
print(f"[INFO] attn_implementation={attn_implementation}")
|
||||
|
||||
processor = AutoProcessor.from_pretrained(PRETRAINED, trust_remote_code=True)
|
||||
processor.audio_tokenizer = processor.audio_tokenizer.to(device)
|
||||
|
||||
model = AutoModel.from_pretrained(
|
||||
PRETRAINED,
|
||||
trust_remote_code=True,
|
||||
attn_implementation=attn_implementation,
|
||||
dtype=dtype,
|
||||
).to(device)
|
||||
model.eval()
|
||||
|
||||
conversation = [processor.build_user_message(ambient_sound=args.text)]
|
||||
|
||||
with torch.no_grad():
|
||||
batch = processor([conversation], mode="generation")
|
||||
# This checkpoint's generate() doesn't accept the TTS model's sampling
|
||||
# kwargs (do_sample/audio_temperature/etc raise TypeError) - matches
|
||||
# the official README example, which only passes these three.
|
||||
outputs = model.generate(
|
||||
input_ids=batch["input_ids"].to(device),
|
||||
attention_mask=batch["attention_mask"].to(device),
|
||||
max_new_tokens=args.max_new_tokens,
|
||||
)
|
||||
message = processor.decode(outputs)[0]
|
||||
audio = message.audio_codes_list[0]
|
||||
data = audio.detach().cpu().to(torch.float32).numpy()
|
||||
if data.ndim == 2:
|
||||
data = data.T
|
||||
sf.write(args.output, data, processor.model_config.sampling_rate)
|
||||
print(f"[INFO] Saved {args.output}")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -0,0 +1,52 @@
|
||||
# VibeVoice (community fork) 4-person podcast spike
|
||||
|
||||
Standalone experiment, not integrated into the webui or the production
|
||||
pipeline. Tests whether VibeVoice (https://github.com/vibevoice-community/VibeVoice)
|
||||
can generate a 4-speaker podcast scene in one pass, cloning our four
|
||||
established character voices (Kevin, Marge, Terry, Priya) from their
|
||||
existing approved `reference_audio` in the-service-station repo.
|
||||
|
||||
- `scripts/trailer_promo_4speaker.txt` - the test script: the real
|
||||
"sausage rolls" trailer scene from `the-service-station/scripts/trailer-promo.md`,
|
||||
converted from our `[Character|tags]` format to VibeVoices required
|
||||
`Speaker N: ...` plain-text format (tags dropped - VibeVoice has no
|
||||
per-line emotion/timing control).
|
||||
- `trailer_promo_4speaker_vibevoice-1.5b.mp3` - the generated result
|
||||
(VibeVoice-1.5B, seed 42). 47s of audio generated in 14.5s (RTF 0.31x).
|
||||
|
||||
Setup lives outside this repo (not committed): `.venv/` here is a fresh
|
||||
isolated venv (`pip install -e /root/projects/VibeVoice`, pinned
|
||||
`transformers==4.51.3`), pointed at the already-downloaded
|
||||
`VibeVoice-1.5B` weights under `/root/projects/ComfyUI/models/tts/VibeVoice/`.
|
||||
|
||||
## Findings (2026-09-30)
|
||||
|
||||
Whisper-transcript check against the script: mostly faithful, not
|
||||
word-perfect. Two small unscripted insertions ("I am here!" before Priyas
|
||||
line, "For me," before Marges reply) and one substitution ("He will." ->
|
||||
"You will."). No repetition/collapse like the AuK chain-corruption bug -
|
||||
just minor ad-libbing, not catastrophic.
|
||||
|
||||
No audible AI disclaimer or obvious background music in this run - both
|
||||
are documented risks for this model family (see
|
||||
`the-service-station/research/vibevoice-2026-08-21.md` and
|
||||
`vibevoice-community-fork-2026-08-21.md`), so treat this one clean run as
|
||||
encouraging, not conclusive.
|
||||
|
||||
Steves call after listening: pursue 7B (weights already downloaded, same
|
||||
venv/script, swap `--model_path`) or not worth it given the limitations
|
||||
the prior research already flagged.
|
||||
|
||||
## 7B result (2026-09-30, same script/seed/voices)
|
||||
|
||||
`trailer_promo_4speaker_vibevoice-7b.mp3` - VibeVoice-7B, same seed (42),
|
||||
same script, same reference voices. 34.8s of audio generated in 22.2s
|
||||
(RTF 0.64x - still faster than real-time, just less headroom than 1.5B).
|
||||
|
||||
Whisper-transcript check: cleaner than 1.5B - neither of 1.5Bs unscripted
|
||||
insertions ("I am here!", "For me,") appeared, and "He will." came through
|
||||
exactly right this time (1.5B had drifted it to "You will."). One real
|
||||
deviation: Marges defensive line "I get one fact wrong per episode."
|
||||
came out as a question, "Can I get one fact wrong per episode?" - changes
|
||||
the delivery/meaning, not just wording. Still no audible disclaimer and
|
||||
nothing that reads as injected background music.
|
||||
@@ -0,0 +1,9 @@
|
||||
Speaker 1: The Service Station. Three facts, one car park, and absolutely no reason to be in a hurry.
|
||||
Speaker 2: Except for me, obviously. I'm always in a hurry.
|
||||
Speaker 3: I had a Sinclair Spectrum in 1984, and I will find a way to bring it up.
|
||||
Speaker 1: He will.
|
||||
Speaker 4: I still don't understand why the sausage rolls are relevant, but here we are.
|
||||
Speaker 2: They're always relevant, Priya.
|
||||
Speaker 1: Every week: one underdog, one argument, and one fact Marge gets wrong.
|
||||
Speaker 2: I get one fact wrong per episode. Tops.
|
||||
Speaker 3: It's usually about football.
|
||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,56 @@
|
||||
# webui
|
||||
|
||||
A pipeline studio: strip a voice with **demucs**, edit it with **AuK** (emotion, pitch, speed,
|
||||
free-form instructions — with preview and undo/reset), then generate new speech in that voice
|
||||
with **MOSS-TTS**.
|
||||
|
||||
## Why this exists
|
||||
|
||||
Manually chaining demucs → AuK → MOSS-TTS across three separate venvs (via SSH one-off scripts)
|
||||
worked but made it slow to experiment — especially with AuK's pitch/emotion controls, where you
|
||||
really want to preview a result and back out if it's wrong (see the pitch-overshoot findings in
|
||||
`auk/README.md`) rather than committing to a specific edit blind.
|
||||
|
||||
## Architecture
|
||||
|
||||
A single lightweight Gradio app (`app.py`) that **shells out** to each tool's own isolated venv
|
||||
via subprocess, rather than merging their dependencies into one environment — MOSS-TTS pins
|
||||
`transformers==5.0.0`, AuK needs `4.57.6`; they can't coexist in one venv. This app's own venv
|
||||
only needs `gradio` itself.
|
||||
|
||||
Each stage's output becomes the next stage's input by filesystem path; a `history` list backs
|
||||
the undo/reset buttons in the voice editor.
|
||||
|
||||
## Setup
|
||||
|
||||
```bash
|
||||
python3 -m venv .venv && . .venv/bin/activate
|
||||
pip install gradio
|
||||
```
|
||||
|
||||
Assumes `demucs/`, `auk/`, and `tts/` (siblings in this repo) already have their own working
|
||||
venvs and, for `auk/`, downloaded model weights — see their READMEs.
|
||||
|
||||
## Running
|
||||
|
||||
```bash
|
||||
python3 app.py
|
||||
```
|
||||
|
||||
Serves on `0.0.0.0:7860`. The app automatically calls ComfyUI's `/free` endpoint (if its queue
|
||||
is empty) before each heavy step, to reduce GPU contention on a shared box — see the DNS/routing
|
||||
and GPU-contention notes earlier in this project's history for why that matters here.
|
||||
|
||||
## Known limitations (inherited from the underlying tools)
|
||||
|
||||
- **AuK's real usable clip length is ~25-30s**, not several minutes — feeding it a long recording
|
||||
will OOM even with `--cpu_offload` (see `auk/README.md`). This app doesn't chunk long inputs
|
||||
automatically; keep reference clips short.
|
||||
- **AuK's pitch-editing instruction-following is unreliable** — even "1 semitone" has measured
|
||||
out at ~4+ semitones of actual shift in testing. The UI surfaces a warning; preview before
|
||||
trusting a pitch edit.
|
||||
- Each stage is a blocking subprocess call (model load + inference each time) — the UI will
|
||||
appear to hang for anywhere from ~10s to a couple of minutes per click, with no progress bar
|
||||
yet.
|
||||
- No queueing/locking across browser tabs or concurrent users — this is a single-GPU box, so two
|
||||
simultaneous generations will contend for VRAM.
|
||||
+1106
File diff suppressed because it is too large.
Load diff
@@ -1,19 +0,0 @@
|
||||
# whisperx
|
||||
|
||||
Speech-to-text demos using [WhisperX](https://github.com/m-bain/whisperX) — fast transcription with word-level timestamps and speaker diarization.
|
||||
|
||||
## Demo run
|
||||
|
||||
Ran on an RTX 3090 against `media-files/audio/service-mbrs-ntscrm-01840194-01840194.m4a`
|
||||
(audio track extracted from the sample video in `media-files/video/`):
|
||||
|
||||
```
|
||||
whisperx media-files/audio/service-mbrs-ntscrm-01840194-01840194.m4a \
|
||||
--model medium \
|
||||
--output_dir whisperx/transcripts \
|
||||
--output_format all \
|
||||
--compute_type float16
|
||||
```
|
||||
|
||||
Outputs (json/srt/tsv/txt/vtt) are in `whisperx/transcripts/`. Language auto-detected as English;
|
||||
sentence-level timestamps aligned via wav2vec2.
|
||||
@@ -1 +0,0 @@
|
||||
{"segments": [{"start": 0.847, "end": 3.369, "text": " from the Library of Congress in Washington, D.C.", "words": [{"word": "from", "start": 0.847, "end": 1.007, "score": 0.795}, {"word": "the", "start": 1.027, "end": 1.107, "score": 0.832}, {"word": "Library", "start": 1.147, "end": 1.647, "score": 0.894}, {"word": "of", "start": 1.668, "end": 1.748, "score": 0.5}, {"word": "Congress", "start": 1.808, "end": 2.268, "score": 0.771}, {"word": "in", "start": 2.448, "end": 2.528, "score": 0.832}, {"word": "Washington,", "start": 2.568, "end": 3.088, "score": 0.869}, {"word": "D.C.", "start": 3.128, "end": 3.369, "score": 0.953}], "avg_logprob": -0.08811598557692307}, {"start": 35.875, "end": 47.583, "text": " We shall show you in this film typical examples of children who have been well brought up, the kind who grow up to be strong, healthy, and happy like these young folks.", "words": [{"word": "We", "start": 35.875, "end": 35.975, "score": 0.999}, {"word": "shall", "start": 36.016, "end": 36.216, "score": 0.867}, {"word": "show", "start": 36.276, "end": 36.516, "score": 0.9}, {"word": "you", "start": 36.576, "end": 36.756, "score": 0.863}, {"word": "in", "start": 36.916, "end": 36.996, "score": 0.842}, {"word": "this", "start": 37.016, "end": 37.196, "score": 0.881}, {"word": "film", "start": 37.336, "end": 37.697, "score": 0.696}, {"word": "typical", "start": 37.717, "end": 38.377, "score": 0.661}, {"word": "examples", "start": 38.437, "end": 38.917, "score": 0.572}, {"word": "of", "start": 38.977, "end": 39.057, "score": 0.46}, {"word": "children", "start": 39.138, "end": 39.578, "score": 0.933}, {"word": "who", "start": 39.618, "end": 39.718, "score": 0.904}, {"word": "have", "start": 39.738, "end": 39.858, "score": 0.783}, {"word": "been", "start": 39.898, "end": 40.058, "score": 0.751}, {"word": "well", "start": 40.118, "end": 40.358, "score": 0.852}, {"word": "brought", "start": 40.398, "end": 40.658, "score": 0.853}, {"word": "up,", "start": 40.719, "end": 40.819, "score": 0.938}, {"word": "the", "start": 41.499, "end": 41.599, "score": 0.665}, {"word": "kind", "start": 41.639, "end": 41.979, "score": 0.835}, {"word": "who", "start": 41.999, "end": 42.079, "score": 0.147}, {"word": "grow", "start": 42.139, "end": 42.38, "score": 0.699}, {"word": "up", "start": 42.42, "end": 42.5, "score": 0.956}, {"word": "to", "start": 42.52, "end": 42.7, "score": 0.404}, {"word": "be", "start": 42.72, "end": 42.88, "score": 0.83}, {"word": "strong,", "start": 42.9, "end": 43.4, "score": 0.659}, {"word": "healthy,", "start": 43.881, "end": 44.321, "score": 0.857}, {"word": "and", "start": 44.441, "end": 44.521, "score": 0.982}, {"word": "happy", "start": 44.581, "end": 44.941, "score": 0.986}, {"word": "like", "start": 45.382, "end": 45.582, "score": 0.888}, {"word": "these", "start": 45.662, "end": 45.942, "score": 0.704}, {"word": "young", "start": 46.002, "end": 46.262, "score": 0.663}, {"word": "folks.", "start": 46.302, "end": 47.583, "score": 0.617}], "avg_logprob": -0.06059027806752258}, {"start": 47.603, "end": 61.552, "text": "Sturdy growth, joyousness, contentment in life, and vigorous health for the children of today will build men and women of tomorrow with strength of body, nerve, and mind, and thus a better chance to get the most out of life.", "words": [{"word": "Sturdy", "start": 47.603, "end": 47.963, "score": 0.622}, {"word": "growth,", "start": 48.043, "end": 48.584, "score": 0.655}, {"word": "joyousness,", "start": 48.744, "end": 49.404, "score": 0.463}, {"word": "contentment", "start": 49.584, "end": 50.185, "score": 0.867}, {"word": "in", "start": 50.225, "end": 50.305, "score": 0.93}, {"word": "life,", "start": 50.365, "end": 50.645, "score": 0.935}, {"word": "and", "start": 50.725, "end": 50.825, "score": 0.805}, {"word": "vigorous", "start": 50.905, "end": 51.285, "score": 0.552}, {"word": "health", "start": 51.325, "end": 51.626, "score": 0.541}, {"word": "for", "start": 51.766, "end": 51.886, "score": 0.57}, {"word": "the", "start": 51.906, "end": 51.966, "score": 0.992}, {"word": "children", "start": 52.026, "end": 52.306, "score": 0.891}, {"word": "of", "start": 52.346, "end": 52.386, "score": 0.997}, {"word": "today", "start": 52.446, "end": 52.826, "score": 0.762}, {"word": "will", "start": 52.846, "end": 53.587, "score": 0.406}, {"word": "build", "start": 53.607, "end": 53.927, "score": 0.762}, {"word": "men", "start": 54.047, "end": 54.247, "score": 0.916}, {"word": "and", "start": 54.287, "end": 54.367, "score": 0.847}, {"word": "women", "start": 54.427, "end": 54.667, "score": 0.873}, {"word": "of", "start": 54.688, "end": 54.748, "score": 0.592}, {"word": "tomorrow", "start": 54.808, "end": 55.308, "score": 0.833}, {"word": "with", "start": 55.428, "end": 55.568, "score": 0.986}, {"word": "strength", "start": 55.628, "end": 55.968, "score": 0.814}, {"word": "of", "start": 56.008, "end": 56.068, "score": 0.748}, {"word": "body,", "start": 56.168, "end": 56.509, "score": 0.993}, {"Line truncated
|
||||
@@ -1,380 +0,0 @@
|
||||
1
|
||||
00:00:00,847 --> 00:00:03,369
|
||||
from the Library of Congress in Washington, D.C.
|
||||
|
||||
2
|
||||
00:00:35,875 --> 00:00:47,583
|
||||
We shall show you in this film typical examples of children who have been well brought up, the kind who grow up to be strong, healthy, and happy like these young folks.
|
||||
|
||||
3
|
||||
00:00:47,603 --> 00:01:01,552
|
||||
Sturdy growth, joyousness, contentment in life, and vigorous health for the children of today will build men and women of tomorrow with strength of body, nerve, and mind, and thus a better chance to get the most out of life.
|
||||
|
||||
4
|
||||
00:01:14,263 --> 00:01:22,830
|
||||
These healthy children are not all from well-to-do homes, but from babyhood have had the right food, sunshine, companionship, and intelligent care.
|
||||
|
||||
5
|
||||
00:01:23,510 --> 00:01:25,572
|
||||
Your child can have all of this too.
|
||||
|
||||
6
|
||||
00:01:25,972 --> 00:01:28,454
|
||||
Do you really see your child when you look at him?
|
||||
|
||||
7
|
||||
00:01:29,875 --> 00:01:31,717
|
||||
Look at David, age nine.
|
||||
|
||||
8
|
||||
00:01:32,137 --> 00:01:33,358
|
||||
How straight he stands.
|
||||
|
||||
9
|
||||
00:01:34,122 --> 00:01:40,427
|
||||
Note his glossy hair, his good color, his broad chest with room for his lungs to breathe.
|
||||
|
||||
10
|
||||
00:01:41,448 --> 00:01:50,715
|
||||
David has none of those enlargements of bones of shoulder, chest, ribs, knees, and ankles due to poor bone growth.
|
||||
|
||||
11
|
||||
00:01:51,356 --> 00:01:52,917
|
||||
He has well-shaped knees.
|
||||
|
||||
12
|
||||
00:01:53,898 --> 00:01:55,419
|
||||
He stands on straight legs.
|
||||
|
||||
13
|
||||
00:01:56,080 --> 00:02:03,686
|
||||
He has beautiful feet with small ankle bones and fine arches, straight toes, not kinked under like some of ours.
|
||||
|
||||
14
|
||||
00:02:04,220 --> 00:02:12,004
|
||||
He has good muscles and uses them well, and is well because his parents have given him a chance from infancy.
|
||||
|
||||
15
|
||||
00:02:18,348 --> 00:02:21,670
|
||||
Like David, little Milo has been breastfed since birth.
|
||||
|
||||
16
|
||||
00:02:22,570 --> 00:02:24,911
|
||||
Breast food is baby's best food.
|
||||
|
||||
17
|
||||
00:02:26,312 --> 00:02:31,215
|
||||
Milo, three months getting his daily exercise, already he raises himself up.
|
||||
|
||||
18
|
||||
00:02:32,894 --> 00:02:34,795
|
||||
Helen getting her sun bath.
|
||||
|
||||
19
|
||||
00:02:35,395 --> 00:02:37,496
|
||||
At three months, her back is well shaped.
|
||||
|
||||
20
|
||||
00:02:37,996 --> 00:02:39,177
|
||||
She holds her head erect.
|
||||
|
||||
21
|
||||
00:02:39,757 --> 00:02:43,139
|
||||
The straight lines down her side show good development.
|
||||
|
||||
22
|
||||
00:02:45,920 --> 00:02:48,341
|
||||
When baby is ready, he'll pull himself up.
|
||||
|
||||
23
|
||||
00:02:49,382 --> 00:02:52,023
|
||||
Seven-month-old Bill delights in doing this.
|
||||
|
||||
24
|
||||
00:02:52,883 --> 00:02:56,785
|
||||
Don't jump your baby up and down until he does it for himself.
|
||||
|
||||
25
|
||||
00:02:58,618 --> 00:03:03,361
|
||||
At 10 months, small bone, beautifully developed genes gets her exercise.
|
||||
|
||||
26
|
||||
00:03:03,802 --> 00:03:06,063
|
||||
Give babies plenty of space to creep.
|
||||
|
||||
27
|
||||
00:03:07,604 --> 00:03:11,887
|
||||
At 13 months, Ann thrills her parents by taking her first step alone.
|
||||
|
||||
28
|
||||
00:03:12,507 --> 00:03:16,950
|
||||
Look at her broad chest and fairly flat tummy, though she has just had her dinner.
|
||||
|
||||
29
|
||||
00:03:17,951 --> 00:03:19,872
|
||||
Ann loves to stand holding to the buggy.
|
||||
|
||||
30
|
||||
00:03:20,333 --> 00:03:24,616
|
||||
Note her nice straight back, her straight lines down her side showing good development.
|
||||
|
||||
31
|
||||
00:03:25,196 --> 00:03:26,677
|
||||
She has a well-shaped head,
|
||||
|
||||
32
|
||||
00:03:27,150 --> 00:03:29,692
|
||||
good color and abundant glossy curls.
|
||||
|
||||
33
|
||||
00:03:37,098 --> 00:03:39,820
|
||||
Jimmy, the same age as Ann, is stockier built.
|
||||
|
||||
34
|
||||
00:03:40,041 --> 00:03:41,602
|
||||
His bones and muscles are heavier.
|
||||
|
||||
35
|
||||
00:03:41,962 --> 00:03:45,265
|
||||
He walked sooner, partly because he had more chance to creep.
|
||||
|
||||
36
|
||||
00:03:47,867 --> 00:03:52,751
|
||||
All these preschool children have been well fed since birth and have good appetites.
|
||||
|
||||
37
|
||||
00:03:56,623 --> 00:03:59,224
|
||||
Agnes and Carl both two and a half years.
|
||||
|
||||
38
|
||||
00:03:59,764 --> 00:04:04,566
|
||||
Carl has a well-shaped head, glossy hair, and very good color.
|
||||
|
||||
39
|
||||
00:04:05,126 --> 00:04:10,568
|
||||
As he watches his dandelion sail away presently, see what fine teeth he has.
|
||||
|
||||
40
|
||||
00:04:11,068 --> 00:04:18,791
|
||||
How straight and even they are in his broad, well-developed jaw, which gives plenty of room for his second teeth.
|
||||
|
||||
41
|
||||
00:04:22,051 --> 00:04:27,192
|
||||
Joyous fairy like Patsy with Carly's beautifully developed child who rejoices in the activity.
|
||||
|
||||
42
|
||||
00:04:27,652 --> 00:04:29,913
|
||||
Patsy at four years knows her foods.
|
||||
|
||||
43
|
||||
00:04:30,313 --> 00:04:36,835
|
||||
She said to her aunt, I mustn't drink cocoa, tea, coffee, cola, nothing but milk.
|
||||
|
||||
44
|
||||
00:04:42,676 --> 00:04:46,237
|
||||
Patsy is going to serve milk to her little friends.
|
||||
|
||||
45
|
||||
00:04:47,317 --> 00:04:51,258
|
||||
Patsy and dark haired Marilyn are both four years old.
|
||||
|
||||
46
|
||||
00:05:02,408 --> 00:05:07,652
|
||||
Bobby Six and his sister Irene Four have well-grown bones and strong muscles.
|
||||
|
||||
47
|
||||
00:05:08,452 --> 00:05:10,153
|
||||
What good control they have of them.
|
||||
|
||||
48
|
||||
00:05:10,854 --> 00:05:15,737
|
||||
Bobby's perfectly developed chest and ribs give plenty of room for breathing.
|
||||
|
||||
49
|
||||
00:05:18,359 --> 00:05:24,744
|
||||
Bobby also, you will note, has well-spaced, even teeth in a well-developed jaw.
|
||||
|
||||
50
|
||||
00:05:26,980 --> 00:05:30,301
|
||||
Note these happy seven to 11-year-old children.
|
||||
|
||||
51
|
||||
00:05:31,061 --> 00:05:37,484
|
||||
Barbara, standing erect in the foreground calling to Joan, is well-developed, tall, with broad shoulders.
|
||||
|
||||
52
|
||||
00:05:38,344 --> 00:05:41,305
|
||||
Barbara and Joan are both seven years old.
|
||||
|
||||
53
|
||||
00:05:42,125 --> 00:05:45,967
|
||||
Joan, too, is well-developed, but short and stalky.
|
||||
|
||||
54
|
||||
00:05:46,847 --> 00:05:49,828
|
||||
This older group shows differences in size and build.
|
||||
|
||||
55
|
||||
00:05:50,128 --> 00:05:54,110
|
||||
Harriet, the little one in the center, is 11 years old, and Marilyn, the largest, 13.
|
||||
|
||||
56
|
||||
00:05:58,040 --> 00:06:01,062
|
||||
This is David, nine years old, and Don, twelve.
|
||||
|
||||
57
|
||||
00:06:01,442 --> 00:06:03,183
|
||||
Don is a thin, wiry type.
|
||||
|
||||
58
|
||||
00:06:03,723 --> 00:06:05,864
|
||||
David, whom we have met before, is heavy.
|
||||
|
||||
59
|
||||
00:06:12,248 --> 00:06:25,975
|
||||
Jean, eleven years old, shows beautiful development and excellent control of her muscles, and is a lovely-looking creature, because from infancy, Jean has had everything that helps to make a beautiful human being.
|
||||
|
||||
60
|
||||
00:06:32,601 --> 00:06:37,683
|
||||
Alan and his sister Betty illustrate the racehorse type with long, slender bones and muscles.
|
||||
|
||||
61
|
||||
00:06:38,243 --> 00:06:43,006
|
||||
Both are still growing rapidly and need plenty of the right kind of food and rest.
|
||||
|
||||
62
|
||||
00:06:44,146 --> 00:06:49,849
|
||||
Alan shows excellent control of his long, slender muscles, carries himself well and breathes well.
|
||||
|
||||
63
|
||||
00:06:50,509 --> 00:06:55,272
|
||||
Alan's charming smile as he chins shows vitality and joy in living.
|
||||
|
||||
64
|
||||
00:06:56,586 --> 00:07:01,171
|
||||
These children, helping mother pick vegetables, get many kinds of nourishment.
|
||||
|
||||
65
|
||||
00:07:01,731 --> 00:07:05,775
|
||||
Fresh air, sunshine, vegetables, eggs, too.
|
||||
|
||||
66
|
||||
00:07:07,136 --> 00:07:11,761
|
||||
Now, note the following necessary foods.
|
||||
|
||||
67
|
||||
00:07:14,003 --> 00:07:16,866
|
||||
Milk, the best bone building food for all ages.
|
||||
|
||||
68
|
||||
00:07:18,167 --> 00:07:20,610
|
||||
Oranges, an excellent source of vitamin C.
|
||||
|
||||
69
|
||||
00:07:26,008 --> 00:07:29,830
|
||||
Also cabbage and tomatoes, cabbage usually not for two years.
|
||||
|
||||
70
|
||||
00:07:30,911 --> 00:07:34,153
|
||||
Potato is a cheap source of iron, vitamin C, and energy.
|
||||
|
||||
71
|
||||
00:07:34,953 --> 00:07:37,995
|
||||
Green and yellow vegetables, strained of course for baby.
|
||||
|
||||
72
|
||||
00:07:43,559 --> 00:07:46,520
|
||||
Dried beans for blood and muscle, not for young children.
|
||||
|
||||
73
|
||||
00:07:48,382 --> 00:07:50,743
|
||||
This cut of beef costs little.
|
||||
|
||||
74
|
||||
00:07:51,373 --> 00:07:55,977
|
||||
Pig's liver at 12 cents a pound has all this cut has, plus all the vitamins.
|
||||
|
||||
75
|
||||
00:07:56,417 --> 00:07:57,758
|
||||
Strained liver for baby.
|
||||
|
||||
76
|
||||
00:07:58,639 --> 00:08:00,901
|
||||
Dried fruits strained, of course, for baby.
|
||||
|
||||
77
|
||||
00:08:04,945 --> 00:08:05,985
|
||||
Fresh fruits too.
|
||||
|
||||
78
|
||||
00:08:08,868 --> 00:08:10,790
|
||||
Bread whole-grained after two years.
|
||||
|
||||
79
|
||||
00:08:16,414 --> 00:08:19,497
|
||||
Whole-grained cereal like rolled oats with milk is fine for breakfast.
|
||||
|
||||
80
|
||||
00:08:20,341 --> 00:08:21,261
|
||||
Strain for baby.
|
||||
|
||||
81
|
||||
00:08:23,603 --> 00:08:25,884
|
||||
Eggs, one a day for each child.
|
||||
|
||||
82
|
||||
00:08:31,806 --> 00:08:35,168
|
||||
Salmon or other fat sea fish, a cheap form of protein food.
|
||||
|
||||
83
|
||||
00:08:35,648 --> 00:08:40,050
|
||||
The strained oil can take the place of some of your cod liver oil, even for baby.
|
||||
|
||||
84
|
||||
00:08:41,571 --> 00:08:46,853
|
||||
Bacon, an appetizing energy food, especially for older growing boys and girls.
|
||||
|
||||
85
|
||||
00:08:50,540 --> 00:08:52,181
|
||||
should give more than just energy.
|
||||
|
||||
86
|
||||
00:08:52,581 --> 00:08:55,363
|
||||
Molasses and brown sugar give some iron also.
|
||||
|
||||
87
|
||||
00:08:55,844 --> 00:08:56,964
|
||||
White sugar does not.
|
||||
|
||||
88
|
||||
00:09:00,046 --> 00:09:03,629
|
||||
Well-nurtured children become healthy and happy grown-ups.
|
||||
|
||||
89
|
||||
00:09:04,429 --> 00:09:20,180
|
||||
An abundant and properly balanced diet, based on the foods just seen, plus plenty of sunlight and play and a due portion of the milk of human kindness, makes children grow into healthy, well-balanced, efficient citizens.
|
||||
|
||||
90
|
||||
00:09:31,286 --> 00:09:35,067
|
||||
All the youngsters seen in these pictures have had such care.
|
||||
|
||||
91
|
||||
00:09:45,970 --> 00:09:50,992
|
||||
We would see to it that the boys and girls in our homes and on our playgrounds
|
||||
|
||||
92
|
||||
00:09:51,523 --> 00:10:06,536
|
||||
have the inexpensive yet priceless advantages these youngsters have had and are thus well fitted to take their places in the ranks of those who do the everyday work of the world, the work on which our national welfare depends.
|
||||
|
||||
93
|
||||
00:10:19,102 --> 00:10:20,624
|
||||
Oh, my God.
|
||||
|
||||
94
|
||||
00:10:52,411 --> 00:10:55,504
|
||||
This has been a presentation of the Library of Congress.
|
||||
|
||||
95
|
||||
00:10:56,106 --> 00:10:57,953
|
||||
Visit us at loc.gov.
|
||||
|
||||
@@ -1,96 +0,0 @@
|
||||
start end text
|
||||
847 3369 from the Library of Congress in Washington, D.C.
|
||||
35875 47583 We shall show you in this film typical examples of children who have been well brought up, the kind who grow up to be strong, healthy, and happy like these young folks.
|
||||
47603 61552 Sturdy growth, joyousness, contentment in life, and vigorous health for the children of today will build men and women of tomorrow with strength of body, nerve, and mind, and thus a better chance to get the most out of life.
|
||||
74263 82830 These healthy children are not all from well-to-do homes, but from babyhood have had the right food, sunshine, companionship, and intelligent care.
|
||||
83510 85572 Your child can have all of this too.
|
||||
85972 88454 Do you really see your child when you look at him?
|
||||
89875 91717 Look at David, age nine.
|
||||
92137 93358 How straight he stands.
|
||||
94122 100427 Note his glossy hair, his good color, his broad chest with room for his lungs to breathe.
|
||||
101448 110715 David has none of those enlargements of bones of shoulder, chest, ribs, knees, and ankles due to poor bone growth.
|
||||
111356 112917 He has well-shaped knees.
|
||||
113898 115419 He stands on straight legs.
|
||||
116080 123686 He has beautiful feet with small ankle bones and fine arches, straight toes, not kinked under like some of ours.
|
||||
124220 132004 He has good muscles and uses them well, and is well because his parents have given him a chance from infancy.
|
||||
138348 141670 Like David, little Milo has been breastfed since birth.
|
||||
142570 144911 Breast food is baby's best food.
|
||||
146312 151215 Milo, three months getting his daily exercise, already he raises himself up.
|
||||
152894 154795 Helen getting her sun bath.
|
||||
155395 157496 At three months, her back is well shaped.
|
||||
157996 159177 She holds her head erect.
|
||||
159757 163139 The straight lines down her side show good development.
|
||||
165920 168341 When baby is ready, he'll pull himself up.
|
||||
169382 172023 Seven-month-old Bill delights in doing this.
|
||||
172883 176785 Don't jump your baby up and down until he does it for himself.
|
||||
178618 183361 At 10 months, small bone, beautifully developed genes gets her exercise.
|
||||
183802 186063 Give babies plenty of space to creep.
|
||||
187604 191887 At 13 months, Ann thrills her parents by taking her first step alone.
|
||||
192507 196950 Look at her broad chest and fairly flat tummy, though she has just had her dinner.
|
||||
197951 199872 Ann loves to stand holding to the buggy.
|
||||
200333 204616 Note her nice straight back, her straight lines down her side showing good development.
|
||||
205196 206677 She has a well-shaped head,
|
||||
207150 209692 good color and abundant glossy curls.
|
||||
217098 219820 Jimmy, the same age as Ann, is stockier built.
|
||||
220041 221602 His bones and muscles are heavier.
|
||||
221962 225265 He walked sooner, partly because he had more chance to creep.
|
||||
227867 232751 All these preschool children have been well fed since birth and have good appetites.
|
||||
236623 239224 Agnes and Carl both two and a half years.
|
||||
239764 244566 Carl has a well-shaped head, glossy hair, and very good color.
|
||||
245126 250568 As he watches his dandelion sail away presently, see what fine teeth he has.
|
||||
251068 258791 How straight and even they are in his broad, well-developed jaw, which gives plenty of room for his second teeth.
|
||||
262051 267192 Joyous fairy like Patsy with Carly's beautifully developed child who rejoices in the activity.
|
||||
267652 269913 Patsy at four years knows her foods.
|
||||
270313 276835 She said to her aunt, I mustn't drink cocoa, tea, coffee, cola, nothing but milk.
|
||||
282676 286237 Patsy is going to serve milk to her little friends.
|
||||
287317 291258 Patsy and dark haired Marilyn are both four years old.
|
||||
302408 307652 Bobby Six and his sister Irene Four have well-grown bones and strong muscles.
|
||||
308452 310153 What good control they have of them.
|
||||
310854 315737 Bobby's perfectly developed chest and ribs give plenty of room for breathing.
|
||||
318359 324744 Bobby also, you will note, has well-spaced, even teeth in a well-developed jaw.
|
||||
326980 330301 Note these happy seven to 11-year-old children.
|
||||
331061 337484 Barbara, standing erect in the foreground calling to Joan, is well-developed, tall, with broad shoulders.
|
||||
338344 341305 Barbara and Joan are both seven years old.
|
||||
342125 345967 Joan, too, is well-developed, but short and stalky.
|
||||
346847 349828 This older group shows differences in size and build.
|
||||
350128 354110 Harriet, the little one in the center, is 11 years old, and Marilyn, the largest, 13.
|
||||
358040 361062 This is David, nine years old, and Don, twelve.
|
||||
361442 363183 Don is a thin, wiry type.
|
||||
363723 365864 David, whom we have met before, is heavy.
|
||||
372248 385975 Jean, eleven years old, shows beautiful development and excellent control of her muscles, and is a lovely-looking creature, because from infancy, Jean has had everything that helps to make a beautiful human being.
|
||||
392601 397683 Alan and his sister Betty illustrate the racehorse type with long, slender bones and muscles.
|
||||
398243 403006 Both are still growing rapidly and need plenty of the right kind of food and rest.
|
||||
404146 409849 Alan shows excellent control of his long, slender muscles, carries himself well and breathes well.
|
||||
410509 415272 Alan's charming smile as he chins shows vitality and joy in living.
|
||||
416586 421171 These children, helping mother pick vegetables, get many kinds of nourishment.
|
||||
421731 425775 Fresh air, sunshine, vegetables, eggs, too.
|
||||
427136 431761 Now, note the following necessary foods.
|
||||
434003 436866 Milk, the best bone building food for all ages.
|
||||
438167 440610 Oranges, an excellent source of vitamin C.
|
||||
446008 449830 Also cabbage and tomatoes, cabbage usually not for two years.
|
||||
450911 454153 Potato is a cheap source of iron, vitamin C, and energy.
|
||||
454953 457995 Green and yellow vegetables, strained of course for baby.
|
||||
463559 466520 Dried beans for blood and muscle, not for young children.
|
||||
468382 470743 This cut of beef costs little.
|
||||
471373 475977 Pig's liver at 12 cents a pound has all this cut has, plus all the vitamins.
|
||||
476417 477758 Strained liver for baby.
|
||||
478639 480901 Dried fruits strained, of course, for baby.
|
||||
484945 485985 Fresh fruits too.
|
||||
488868 490790 Bread whole-grained after two years.
|
||||
496414 499497 Whole-grained cereal like rolled oats with milk is fine for breakfast.
|
||||
500341 501261 Strain for baby.
|
||||
503603 505884 Eggs, one a day for each child.
|
||||
511806 515168 Salmon or other fat sea fish, a cheap form of protein food.
|
||||
515648 520050 The strained oil can take the place of some of your cod liver oil, even for baby.
|
||||
521571 526853 Bacon, an appetizing energy food, especially for older growing boys and girls.
|
||||
530540 532181 should give more than just energy.
|
||||
532581 535363 Molasses and brown sugar give some iron also.
|
||||
535844 536964 White sugar does not.
|
||||
540046 543629 Well-nurtured children become healthy and happy grown-ups.
|
||||
544429 560180 An abundant and properly balanced diet, based on the foods just seen, plus plenty of sunlight and play and a due portion of the milk of human kindness, makes children grow into healthy, well-balanced, efficient citizens.
|
||||
571286 575067 All the youngsters seen in these pictures have had such care.
|
||||
585970 590992 We would see to it that the boys and girls in our homes and on our playgrounds
|
||||
591523 606536 have the inexpensive yet priceless advantages these youngsters have had and are thus well fitted to take their places in the ranks of those who do the everyday work of the world, the work on which our national welfare depends.
|
||||
619102 620624 Oh, my God.
|
||||
652411 655504 This has been a presentation of the Library of Congress.
|
||||
656106 657953 Visit us at loc.gov.
|
||||
|
@@ -1,95 +0,0 @@
|
||||
from the Library of Congress in Washington, D.C.
|
||||
We shall show you in this film typical examples of children who have been well brought up, the kind who grow up to be strong, healthy, and happy like these young folks.
|
||||
Sturdy growth, joyousness, contentment in life, and vigorous health for the children of today will build men and women of tomorrow with strength of body, nerve, and mind, and thus a better chance to get the most out of life.
|
||||
These healthy children are not all from well-to-do homes, but from babyhood have had the right food, sunshine, companionship, and intelligent care.
|
||||
Your child can have all of this too.
|
||||
Do you really see your child when you look at him?
|
||||
Look at David, age nine.
|
||||
How straight he stands.
|
||||
Note his glossy hair, his good color, his broad chest with room for his lungs to breathe.
|
||||
David has none of those enlargements of bones of shoulder, chest, ribs, knees, and ankles due to poor bone growth.
|
||||
He has well-shaped knees.
|
||||
He stands on straight legs.
|
||||
He has beautiful feet with small ankle bones and fine arches, straight toes, not kinked under like some of ours.
|
||||
He has good muscles and uses them well, and is well because his parents have given him a chance from infancy.
|
||||
Like David, little Milo has been breastfed since birth.
|
||||
Breast food is baby's best food.
|
||||
Milo, three months getting his daily exercise, already he raises himself up.
|
||||
Helen getting her sun bath.
|
||||
At three months, her back is well shaped.
|
||||
She holds her head erect.
|
||||
The straight lines down her side show good development.
|
||||
When baby is ready, he'll pull himself up.
|
||||
Seven-month-old Bill delights in doing this.
|
||||
Don't jump your baby up and down until he does it for himself.
|
||||
At 10 months, small bone, beautifully developed genes gets her exercise.
|
||||
Give babies plenty of space to creep.
|
||||
At 13 months, Ann thrills her parents by taking her first step alone.
|
||||
Look at her broad chest and fairly flat tummy, though she has just had her dinner.
|
||||
Ann loves to stand holding to the buggy.
|
||||
Note her nice straight back, her straight lines down her side showing good development.
|
||||
She has a well-shaped head,
|
||||
good color and abundant glossy curls.
|
||||
Jimmy, the same age as Ann, is stockier built.
|
||||
His bones and muscles are heavier.
|
||||
He walked sooner, partly because he had more chance to creep.
|
||||
All these preschool children have been well fed since birth and have good appetites.
|
||||
Agnes and Carl both two and a half years.
|
||||
Carl has a well-shaped head, glossy hair, and very good color.
|
||||
As he watches his dandelion sail away presently, see what fine teeth he has.
|
||||
How straight and even they are in his broad, well-developed jaw, which gives plenty of room for his second teeth.
|
||||
Joyous fairy like Patsy with Carly's beautifully developed child who rejoices in the activity.
|
||||
Patsy at four years knows her foods.
|
||||
She said to her aunt, I mustn't drink cocoa, tea, coffee, cola, nothing but milk.
|
||||
Patsy is going to serve milk to her little friends.
|
||||
Patsy and dark haired Marilyn are both four years old.
|
||||
Bobby Six and his sister Irene Four have well-grown bones and strong muscles.
|
||||
What good control they have of them.
|
||||
Bobby's perfectly developed chest and ribs give plenty of room for breathing.
|
||||
Bobby also, you will note, has well-spaced, even teeth in a well-developed jaw.
|
||||
Note these happy seven to 11-year-old children.
|
||||
Barbara, standing erect in the foreground calling to Joan, is well-developed, tall, with broad shoulders.
|
||||
Barbara and Joan are both seven years old.
|
||||
Joan, too, is well-developed, but short and stalky.
|
||||
This older group shows differences in size and build.
|
||||
Harriet, the little one in the center, is 11 years old, and Marilyn, the largest, 13.
|
||||
This is David, nine years old, and Don, twelve.
|
||||
Don is a thin, wiry type.
|
||||
David, whom we have met before, is heavy.
|
||||
Jean, eleven years old, shows beautiful development and excellent control of her muscles, and is a lovely-looking creature, because from infancy, Jean has had everything that helps to make a beautiful human being.
|
||||
Alan and his sister Betty illustrate the racehorse type with long, slender bones and muscles.
|
||||
Both are still growing rapidly and need plenty of the right kind of food and rest.
|
||||
Alan shows excellent control of his long, slender muscles, carries himself well and breathes well.
|
||||
Alan's charming smile as he chins shows vitality and joy in living.
|
||||
These children, helping mother pick vegetables, get many kinds of nourishment.
|
||||
Fresh air, sunshine, vegetables, eggs, too.
|
||||
Now, note the following necessary foods.
|
||||
Milk, the best bone building food for all ages.
|
||||
Oranges, an excellent source of vitamin C.
|
||||
Also cabbage and tomatoes, cabbage usually not for two years.
|
||||
Potato is a cheap source of iron, vitamin C, and energy.
|
||||
Green and yellow vegetables, strained of course for baby.
|
||||
Dried beans for blood and muscle, not for young children.
|
||||
This cut of beef costs little.
|
||||
Pig's liver at 12 cents a pound has all this cut has, plus all the vitamins.
|
||||
Strained liver for baby.
|
||||
Dried fruits strained, of course, for baby.
|
||||
Fresh fruits too.
|
||||
Bread whole-grained after two years.
|
||||
Whole-grained cereal like rolled oats with milk is fine for breakfast.
|
||||
Strain for baby.
|
||||
Eggs, one a day for each child.
|
||||
Salmon or other fat sea fish, a cheap form of protein food.
|
||||
The strained oil can take the place of some of your cod liver oil, even for baby.
|
||||
Bacon, an appetizing energy food, especially for older growing boys and girls.
|
||||
should give more than just energy.
|
||||
Molasses and brown sugar give some iron also.
|
||||
White sugar does not.
|
||||
Well-nurtured children become healthy and happy grown-ups.
|
||||
An abundant and properly balanced diet, based on the foods just seen, plus plenty of sunlight and play and a due portion of the milk of human kindness, makes children grow into healthy, well-balanced, efficient citizens.
|
||||
All the youngsters seen in these pictures have had such care.
|
||||
We would see to it that the boys and girls in our homes and on our playgrounds
|
||||
have the inexpensive yet priceless advantages these youngsters have had and are thus well fitted to take their places in the ranks of those who do the everyday work of the world, the work on which our national welfare depends.
|
||||
Oh, my God.
|
||||
This has been a presentation of the Library of Congress.
|
||||
Visit us at loc.gov.
|
||||
@@ -1,287 +0,0 @@
|
||||
WEBVTT
|
||||
|
||||
00:00.847 --> 00:03.369
|
||||
from the Library of Congress in Washington, D.C.
|
||||
|
||||
00:35.875 --> 00:47.583
|
||||
We shall show you in this film typical examples of children who have been well brought up, the kind who grow up to be strong, healthy, and happy like these young folks.
|
||||
|
||||
00:47.603 --> 01:01.552
|
||||
Sturdy growth, joyousness, contentment in life, and vigorous health for the children of today will build men and women of tomorrow with strength of body, nerve, and mind, and thus a better chance to get the most out of life.
|
||||
|
||||
01:14.263 --> 01:22.830
|
||||
These healthy children are not all from well-to-do homes, but from babyhood have had the right food, sunshine, companionship, and intelligent care.
|
||||
|
||||
01:23.510 --> 01:25.572
|
||||
Your child can have all of this too.
|
||||
|
||||
01:25.972 --> 01:28.454
|
||||
Do you really see your child when you look at him?
|
||||
|
||||
01:29.875 --> 01:31.717
|
||||
Look at David, age nine.
|
||||
|
||||
01:32.137 --> 01:33.358
|
||||
How straight he stands.
|
||||
|
||||
01:34.122 --> 01:40.427
|
||||
Note his glossy hair, his good color, his broad chest with room for his lungs to breathe.
|
||||
|
||||
01:41.448 --> 01:50.715
|
||||
David has none of those enlargements of bones of shoulder, chest, ribs, knees, and ankles due to poor bone growth.
|
||||
|
||||
01:51.356 --> 01:52.917
|
||||
He has well-shaped knees.
|
||||
|
||||
01:53.898 --> 01:55.419
|
||||
He stands on straight legs.
|
||||
|
||||
01:56.080 --> 02:03.686
|
||||
He has beautiful feet with small ankle bones and fine arches, straight toes, not kinked under like some of ours.
|
||||
|
||||
02:04.220 --> 02:12.004
|
||||
He has good muscles and uses them well, and is well because his parents have given him a chance from infancy.
|
||||
|
||||
02:18.348 --> 02:21.670
|
||||
Like David, little Milo has been breastfed since birth.
|
||||
|
||||
02:22.570 --> 02:24.911
|
||||
Breast food is baby's best food.
|
||||
|
||||
02:26.312 --> 02:31.215
|
||||
Milo, three months getting his daily exercise, already he raises himself up.
|
||||
|
||||
02:32.894 --> 02:34.795
|
||||
Helen getting her sun bath.
|
||||
|
||||
02:35.395 --> 02:37.496
|
||||
At three months, her back is well shaped.
|
||||
|
||||
02:37.996 --> 02:39.177
|
||||
She holds her head erect.
|
||||
|
||||
02:39.757 --> 02:43.139
|
||||
The straight lines down her side show good development.
|
||||
|
||||
02:45.920 --> 02:48.341
|
||||
When baby is ready, he'll pull himself up.
|
||||
|
||||
02:49.382 --> 02:52.023
|
||||
Seven-month-old Bill delights in doing this.
|
||||
|
||||
02:52.883 --> 02:56.785
|
||||
Don't jump your baby up and down until he does it for himself.
|
||||
|
||||
02:58.618 --> 03:03.361
|
||||
At 10 months, small bone, beautifully developed genes gets her exercise.
|
||||
|
||||
03:03.802 --> 03:06.063
|
||||
Give babies plenty of space to creep.
|
||||
|
||||
03:07.604 --> 03:11.887
|
||||
At 13 months, Ann thrills her parents by taking her first step alone.
|
||||
|
||||
03:12.507 --> 03:16.950
|
||||
Look at her broad chest and fairly flat tummy, though she has just had her dinner.
|
||||
|
||||
03:17.951 --> 03:19.872
|
||||
Ann loves to stand holding to the buggy.
|
||||
|
||||
03:20.333 --> 03:24.616
|
||||
Note her nice straight back, her straight lines down her side showing good development.
|
||||
|
||||
03:25.196 --> 03:26.677
|
||||
She has a well-shaped head,
|
||||
|
||||
03:27.150 --> 03:29.692
|
||||
good color and abundant glossy curls.
|
||||
|
||||
03:37.098 --> 03:39.820
|
||||
Jimmy, the same age as Ann, is stockier built.
|
||||
|
||||
03:40.041 --> 03:41.602
|
||||
His bones and muscles are heavier.
|
||||
|
||||
03:41.962 --> 03:45.265
|
||||
He walked sooner, partly because he had more chance to creep.
|
||||
|
||||
03:47.867 --> 03:52.751
|
||||
All these preschool children have been well fed since birth and have good appetites.
|
||||
|
||||
03:56.623 --> 03:59.224
|
||||
Agnes and Carl both two and a half years.
|
||||
|
||||
03:59.764 --> 04:04.566
|
||||
Carl has a well-shaped head, glossy hair, and very good color.
|
||||
|
||||
04:05.126 --> 04:10.568
|
||||
As he watches his dandelion sail away presently, see what fine teeth he has.
|
||||
|
||||
04:11.068 --> 04:18.791
|
||||
How straight and even they are in his broad, well-developed jaw, which gives plenty of room for his second teeth.
|
||||
|
||||
04:22.051 --> 04:27.192
|
||||
Joyous fairy like Patsy with Carly's beautifully developed child who rejoices in the activity.
|
||||
|
||||
04:27.652 --> 04:29.913
|
||||
Patsy at four years knows her foods.
|
||||
|
||||
04:30.313 --> 04:36.835
|
||||
She said to her aunt, I mustn't drink cocoa, tea, coffee, cola, nothing but milk.
|
||||
|
||||
04:42.676 --> 04:46.237
|
||||
Patsy is going to serve milk to her little friends.
|
||||
|
||||
04:47.317 --> 04:51.258
|
||||
Patsy and dark haired Marilyn are both four years old.
|
||||
|
||||
05:02.408 --> 05:07.652
|
||||
Bobby Six and his sister Irene Four have well-grown bones and strong muscles.
|
||||
|
||||
05:08.452 --> 05:10.153
|
||||
What good control they have of them.
|
||||
|
||||
05:10.854 --> 05:15.737
|
||||
Bobby's perfectly developed chest and ribs give plenty of room for breathing.
|
||||
|
||||
05:18.359 --> 05:24.744
|
||||
Bobby also, you will note, has well-spaced, even teeth in a well-developed jaw.
|
||||
|
||||
05:26.980 --> 05:30.301
|
||||
Note these happy seven to 11-year-old children.
|
||||
|
||||
05:31.061 --> 05:37.484
|
||||
Barbara, standing erect in the foreground calling to Joan, is well-developed, tall, with broad shoulders.
|
||||
|
||||
05:38.344 --> 05:41.305
|
||||
Barbara and Joan are both seven years old.
|
||||
|
||||
05:42.125 --> 05:45.967
|
||||
Joan, too, is well-developed, but short and stalky.
|
||||
|
||||
05:46.847 --> 05:49.828
|
||||
This older group shows differences in size and build.
|
||||
|
||||
05:50.128 --> 05:54.110
|
||||
Harriet, the little one in the center, is 11 years old, and Marilyn, the largest, 13.
|
||||
|
||||
05:58.040 --> 06:01.062
|
||||
This is David, nine years old, and Don, twelve.
|
||||
|
||||
06:01.442 --> 06:03.183
|
||||
Don is a thin, wiry type.
|
||||
|
||||
06:03.723 --> 06:05.864
|
||||
David, whom we have met before, is heavy.
|
||||
|
||||
06:12.248 --> 06:25.975
|
||||
Jean, eleven years old, shows beautiful development and excellent control of her muscles, and is a lovely-looking creature, because from infancy, Jean has had everything that helps to make a beautiful human being.
|
||||
|
||||
06:32.601 --> 06:37.683
|
||||
Alan and his sister Betty illustrate the racehorse type with long, slender bones and muscles.
|
||||
|
||||
06:38.243 --> 06:43.006
|
||||
Both are still growing rapidly and need plenty of the right kind of food and rest.
|
||||
|
||||
06:44.146 --> 06:49.849
|
||||
Alan shows excellent control of his long, slender muscles, carries himself well and breathes well.
|
||||
|
||||
06:50.509 --> 06:55.272
|
||||
Alan's charming smile as he chins shows vitality and joy in living.
|
||||
|
||||
06:56.586 --> 07:01.171
|
||||
These children, helping mother pick vegetables, get many kinds of nourishment.
|
||||
|
||||
07:01.731 --> 07:05.775
|
||||
Fresh air, sunshine, vegetables, eggs, too.
|
||||
|
||||
07:07.136 --> 07:11.761
|
||||
Now, note the following necessary foods.
|
||||
|
||||
07:14.003 --> 07:16.866
|
||||
Milk, the best bone building food for all ages.
|
||||
|
||||
07:18.167 --> 07:20.610
|
||||
Oranges, an excellent source of vitamin C.
|
||||
|
||||
07:26.008 --> 07:29.830
|
||||
Also cabbage and tomatoes, cabbage usually not for two years.
|
||||
|
||||
07:30.911 --> 07:34.153
|
||||
Potato is a cheap source of iron, vitamin C, and energy.
|
||||
|
||||
07:34.953 --> 07:37.995
|
||||
Green and yellow vegetables, strained of course for baby.
|
||||
|
||||
07:43.559 --> 07:46.520
|
||||
Dried beans for blood and muscle, not for young children.
|
||||
|
||||
07:48.382 --> 07:50.743
|
||||
This cut of beef costs little.
|
||||
|
||||
07:51.373 --> 07:55.977
|
||||
Pig's liver at 12 cents a pound has all this cut has, plus all the vitamins.
|
||||
|
||||
07:56.417 --> 07:57.758
|
||||
Strained liver for baby.
|
||||
|
||||
07:58.639 --> 08:00.901
|
||||
Dried fruits strained, of course, for baby.
|
||||
|
||||
08:04.945 --> 08:05.985
|
||||
Fresh fruits too.
|
||||
|
||||
08:08.868 --> 08:10.790
|
||||
Bread whole-grained after two years.
|
||||
|
||||
08:16.414 --> 08:19.497
|
||||
Whole-grained cereal like rolled oats with milk is fine for breakfast.
|
||||
|
||||
08:20.341 --> 08:21.261
|
||||
Strain for baby.
|
||||
|
||||
08:23.603 --> 08:25.884
|
||||
Eggs, one a day for each child.
|
||||
|
||||
08:31.806 --> 08:35.168
|
||||
Salmon or other fat sea fish, a cheap form of protein food.
|
||||
|
||||
08:35.648 --> 08:40.050
|
||||
The strained oil can take the place of some of your cod liver oil, even for baby.
|
||||
|
||||
08:41.571 --> 08:46.853
|
||||
Bacon, an appetizing energy food, especially for older growing boys and girls.
|
||||
|
||||
08:50.540 --> 08:52.181
|
||||
should give more than just energy.
|
||||
|
||||
08:52.581 --> 08:55.363
|
||||
Molasses and brown sugar give some iron also.
|
||||
|
||||
08:55.844 --> 08:56.964
|
||||
White sugar does not.
|
||||
|
||||
09:00.046 --> 09:03.629
|
||||
Well-nurtured children become healthy and happy grown-ups.
|
||||
|
||||
09:04.429 --> 09:20.180
|
||||
An abundant and properly balanced diet, based on the foods just seen, plus plenty of sunlight and play and a due portion of the milk of human kindness, makes children grow into healthy, well-balanced, efficient citizens.
|
||||
|
||||
09:31.286 --> 09:35.067
|
||||
All the youngsters seen in these pictures have had such care.
|
||||
|
||||
09:45.970 --> 09:50.992
|
||||
We would see to it that the boys and girls in our homes and on our playgrounds
|
||||
|
||||
09:51.523 --> 10:06.536
|
||||
have the inexpensive yet priceless advantages these youngsters have had and are thus well fitted to take their places in the ranks of those who do the everyday work of the world, the work on which our national welfare depends.
|
||||
|
||||
10:19.102 --> 10:20.624
|
||||
Oh, my God.
|
||||
|
||||
10:52.411 --> 10:55.504
|
||||
This has been a presentation of the Library of Congress.
|
||||
|
||||
10:56.106 --> 10:57.953
|
||||
Visit us at loc.gov.
|
||||
|
||||
Reference in new issue
Block a user