Aktywne Wpisy
niegwynebleid +639
Zauważyliście, że w postapokaliptycznych światach nikt nie p--------a na rowerach?
Walka o samochody, benzyny, akumulatory, a jak nie ma to ubierają cichobieżki palestyńskie, ubierają plecak, który jest mniejszy i bardziej pusty niż plecak przedszkolaka wysłanego na jeden dzień na wycieczkę, i nawet czapki nie biorą.
Albo konia, jak oni nigdy obroku nie mają.
A rower jest świetny - prędkość wzrasta gwałtownie, można załadować zapasami jak konia, ominie zakorkowane miejsca, można go przenieść,
Walka o samochody, benzyny, akumulatory, a jak nie ma to ubierają cichobieżki palestyńskie, ubierają plecak, który jest mniejszy i bardziej pusty niż plecak przedszkolaka wysłanego na jeden dzień na wycieczkę, i nawet czapki nie biorą.
Albo konia, jak oni nigdy obroku nie mają.
A rower jest świetny - prędkość wzrasta gwałtownie, można załadować zapasami jak konia, ominie zakorkowane miejsca, można go przenieść,
Kunszt +119
Idea jest prosta, zatrzymanie wiecznej pętli gdy model zwróci: HasRemainingChunks = False
import os
import json
from datetime import datetime
import typing_extensions as typing
import google.generativeai as genai
from google.generativeai.types import file_types
genai.configure(api_key=os.getenv("GEMINI_API_KEY"))
audio_file_path = os.path.join(os.path.dirname(__file__), "audio.m4a")
audio_info_file_path = os.path.join(os.path.dirname(__file__), "audio.txt")
if not os.path.exists(audio_info_file_path):
with open(audio_info_file_path, "w", encoding="utf-8") as f:
sample_audio = genai.upload_file(audio_file_path)
f.write(str(sample_audio.to_dict()))
else:
with open(audio_info_file_path, "r", encoding="utf-8") as f:
audio_dict = eval(f.read())
expiration_time = datetime.fromisoformat(audio_dict["expiration_time"]).replace(tzinfo=datetime.now().tzinfo)
if expiration_time < datetime.now():
sample_audio = genai.upload_file(audio_file_path)
with open(audio_info_file_path, "w", encoding="utf-8") as f:
f.write(str(sample_audio.to_dict()))
else:
sample_audio = file_types.File(audio_dict)
class Chunk(typing.TypedDict):
chunk: str
has_remaining_chunks: bool
model = genai.GenerativeModel("models/gemini-1.5-flash", generation_config=genai.GenerationConfig(max_output_tokens=8192, temperature=0.2, response_mime_type="application/json", response_schema=Chunk))
chat = model.start_chat(history=[{"role": "user", "parts": [sample_audio]}])
response = chat.send_message(
"Please generate a transcript of the audio file in Polish, ensuring to correct any grammatical errors without changing the meaning. Each chunk should be as long as possible."
)
response_dict = json.loads(response.text)
transcript = response_dict["chunk"]
while response_dict["has_remaining_chunks"]:
response = chat.send_message("continue")
response_dict = json.loads(response.text)
transcript += f" {response_dict['chunk']}"
#sztucznainteligencja #ai #python #gemini #audio #programowanie
https://youtu.be/EPf05l4xF0E Drobne błędy typu "arkush" zamiast "arkusz" prawdopodobnie dlatego, że zadałem pytanie w języku angielskim. Pierwszy lepszy prompt wygenerowany przez gpt-4o-mini, a chyba każdy wie, że pisanie dobrego promptu jest kluczowe. Myślę, że ta transkrypcja jest znacznie lepsza od automatycznej transkrypcji z YouTube oraz co najmniej porównywalna z Whisperem.
https://x.com/OfficialLoganK/status/1833572986923732996
https://x.com/OfficialLoganK/status/1838611060649054448