Closed zhuligs closed 9 months ago
现在是用最新版本吗?应该是会请求录音权限的,可以查一下录音权限是否正常
是从 github 拉下来的最新版。录音权限应该是正常的。 我下载编译好的版本,Mac 总是提示“ enjoy” is damaged and can’t be opened. You should move it to the Trash.”
我把从 terminal 启动后的信息贴出来,也许有些有用的信息。
`✔ Checking your system ✔ Locating application ✔ Loading configuration ✔ Preparing native dependencies: 1 / 1 [0.4s] ✔ Running generateAssets hook ⠙ [plugin-vite] Launching dev servers for renderer process code ◼ [plugin-vite] Compiling main process code [vite-plugin-static-copy] Collected 11 items. ✔ [plugin-vite] Launching dev servers for renderer process code [0.1s] ⠹ [plugin-vite] Compiling main process code vite v4.5.1 building for development...
watching for file changes... vite v4.5.1 building for development...
watching for file changes...
build started...
✔ [plugin-vite] Launching dev servers for renderer process code [0.1s] ⠼ [plugin-vite] Compiling main process code ✔ [plugin-vite] Launching dev servers for renderer process code [0.1s] ✔ [plugin-vite] Launching dev servers for renderer process code [0.1s] ⠋ [plugin-vite] Compiling main process code computing gzip size (6)...[vite-plugin-static-copy] Copied 15 items. .vite/build/main.js 0.47 kB │ gzip: 0.19 kB .vite/build/api_chain-2100207d.js 3.42 kB │ gzip: 1.20 kB .vite/build/few_shot-2e7084df.js 3.71 kB │ gzip: 1.14 kB .vite/build/vector_db_qa-0da115c4.js 3.99 kB │ gzip: 1.37 kB .vite/build/sequential_chain-bc3d0ecc.js 5.46 kB │ gzip: 1.68 kB .vite/build/combine_docs_chain-e8457423.js 7.82 kB │ gzip: 1.72 kB ✔ [plugin-vite] Launching dev servers for renderer process code [0.1s] ✔ [plugin-vite] Compiling main process code [6s]
2024-02-08 08:58:30.184 Electron[73745:8991778] WARNING: Secure coding is automatically enabled for restorable state! However, not on all supported macOS versions of this application. Opt-in to secure coding explicitly by implementing NSApplicationDelegate.applicationSupportsSecureRestorableState:. 08:58:32.472 (settings) › ffmpeg config { os: 'darwin', arch: 'arm64', commandExists: true, ffmpegPath: '/opt/homebrew/bin/ffmpeg', ffprobePath: '/opt/homebrew/bin/ffprobe', ready: true } 08:58:32.517 (whisper) › stderr usage: /Users/li/zice/hack/everyone-can-use-english/enjoy/.vite/build/lib/whisper/main [options] file0.wav file1.wav ...
options: -h, --help [default] show this help message and exit -t N, --threads N [4 ] number of threads to use during computation -p N, --processors N [1 ] number of processors to use during computation -ot N, --offset-t N [0 ] time offset in milliseconds -on N, --offset-n N [0 ] segment index offset -d N, --duration N [0 ] duration of audio to process in milliseconds -mc N, --max-context N [-1 ] maximum number of text context tokens to store -ml N, --max-len N [0 ] maximum segment length in characters -sow, --split-on-word [false ] split on word rather than on token -bo N, --best-of N [5 ] number of best candidates to keep -bs N, --beam-size N [5 ] beam size for beam search -wt N, --word-thold N [0.01 ] word timestamp probability threshold -et N, --entropy-thold N [2.40 ] entropy threshold for decoder fail -lpt N, --logprob-thold N [-1.00 ] log probability threshold for decoder fail -debug, --debug-mode [false ] enable debug mode (eg. dump log_mel) -tr, --translate [false ] translate from source language to english -di, --diarize [false ] stereo audio diarization -tdrz, --tinydiarize [false ] enable tinydiarize (requires a tdrz model) -nf, --no-fallback [false ] do not use temperature fallback while decoding -otxt, --output-txt [false ] output result in a text file -ovtt, --output-vtt [false ] output result in a vtt file -osrt, --output-srt [false ] output result in a srt file -olrc, --output-lrc [false ] output result in a lrc file -owts, --output-words [false ] output script for generating karaoke video -fp, --font-path [/System/Library/Fonts/Supplemental/Courier New Bold.ttf] path to a monospace font for karaoke video -ocsv, --output-csv [false ] output result in a CSV file -oj, --output-json [false ] output result in a JSON file -ojf, --output-json-full [false ] include more information in the JSON file -of FNAME, --output-file FNAME [ ] output file path (without file extension) -ps, --print-special [false ] print special tokens -pc, --print-colors [false ] print colors -pp, --print-progress [false ] print progress -nt, --no-timestamps [false ] do not print timestamps -l LANG, --language LANG [en ] spoken language ('auto' for auto-detect) -dl, --detect-language [false ] exit after automatically detecting language --prompt PROMPT [ ] initial prompt -m FNAME, --model FNAME [models/ggml-base.en.bin] model path -f FNAME, --file FNAME [ ] input WAV file path -oved D, --ov-e-device DNAME [CPU ] the OpenVINO device used for encode inference -ls, --log-score [false ] log best decoder scores of tokens -ng, --no-gpu [false ] disable GPU
08:58:32.518 (whisper) › stderr usage: /Users/li/zice/hack/everyone-can-use-english/enjoy/.vite/build/lib/whisper/main [options] file0.wav file1.wav ...
options: -h, --help [default] show this help message and exit -t N, --threads N [4 ] number of threads to use during computation -p N, --processors N [1 ] number of processors to use during computation -ot N, --offset-t N [0 ] time offset in milliseconds -on N, --offset-n N [0 ] segment index offset -d N, --duration N [0 ] duration of audio to process in milliseconds -mc N, --max-context N [-1 ] maximum number of text context tokens to store -ml N, --max-len N [0 ] maximum segment length in characters -sow, --split-on-word [false ] split on word rather than on token -bo N, --best-of N [5 ] number of best candidates to keep -bs N, --beam-size N [5 ] beam size for beam search -wt N, --word-thold N [0.01 ] word timestamp probability threshold -et N, --entropy-thold N [2.40 ] entropy threshold for decoder fail -lpt N, --logprob-thold N [-1.00 ] log probability threshold for decoder fail -debug, --debug-mode [false ] enable debug mode (eg. dump log_mel) -tr, --translate [false ] translate from source language to english -di, --diarize [false ] stereo audio diarization -tdrz, --tinydiarize [false ] enable tinydiarize (requires a tdrz model) -nf, --no-fallback [false ] do not use temperature fallback while decoding -otxt, --output-txt [false ] output result in a text file -ovtt, --output-vtt [false ] output result in a vtt file -osrt, --output-srt [false ] output result in a srt file -olrc, --output-lrc [false ] output result in a lrc file -owts, --output-words [false ] output script for generating karaoke video -fp, --font-path [/System/Library/Fonts/Supplemental/Courier New Bold.ttf] path to a monospace font for karaoke video -ocsv, --output-csv [false ] output result in a CSV file -oj, --output-json [false ] output result in a JSON file -ojf, --output-json-full [false ] include more information in the JSON file -of FNAME, --output-file FNAME [ ] output file path (without file extension) -ps, --print-special [false ] print special tokens -pc, --print-colors [false ] print colors -pp, --print-progress [false ] print progress -nt, --no-timestamps [false ] do not print timestamps -l LANG, --language LANG [en ] spoken language ('auto' for auto-detect) -dl, --detect-language [false ] exit after automatically detecting language --prompt PROMPT [ ] initial prompt -m FNAME, --model FNAME [models/ggml-base.en.bin] model path -f FNAME, --file FNAME [ ] input WAV file path -oved D, --ov-e-device DNAME [CPU ] the OpenVINO device used for encode inference -ls, --log-score [false ] log best decoder scores of tokens -ng, --no-gpu [false ] disable GPU
08:58:32.518 (whisper) › stderr usage: /Users/li/zice/hack/everyone-can-use-english/enjoy/.vite/build/lib/whisper/main [options] file0.wav file1.wav ...
options: -h, --help [default] show this help message and exit -t N, --threads N [4 ] number of threads to use during computation -p N, --processors N [1 ] number of processors to use during computation -ot N, --offset-t N [0 ] time offset in milliseconds -on N, --offset-n N [0 ] segment index offset -d N, --duration N [0 ] duration of audio to process in milliseconds -mc N, --max-context N [-1 ] maximum number of text context tokens to store -ml N, --max-len N [0 ] maximum segment length in characters -sow, --split-on-word [false ] split on word rather than on token -bo N, --best-of N [5 ] number of best candidates to keep -bs N, --beam-size N [5 ] beam size for beam search -wt N, --word-thold N [0.01 ] word timestamp probability threshold -et N, --entropy-thold N [2.40 ] entropy threshold for decoder fail -lpt N, --logprob-thold N [-1.00 ] log probability threshold for decoder fail -debug, --debug-mode [false ] enable debug mode (eg. dump log_mel) -tr, --translate [false ] translate from source language to english -di, --diarize [false ] stereo audio diarization -tdrz, --tinydiarize [false ] enable tinydiarize (requires a tdrz model) -nf, --no-fallback [false ] do not use temperature fallback while decoding -otxt, --output-txt [false ] output result in a text file -ovtt, --output-vtt [false ] output result in a vtt file -osrt, --output-srt [false ] output result in a srt file -olrc, --output-lrc [false ] output result in a lrc file -owts, --output-words [false ] output script for generating karaoke video -fp, --font-path [/System/Library/Fonts/Supplemental/Courier New Bold.ttf] path to a monospace font for karaoke video -ocsv, --output-csv [false ] output result in a CSV file -oj, --output-json [false ] output result in a JSON file -ojf, --output-json-full [false ] include more information in the JSON file -of FNAME, --output-file FNAME [ ] output file path (without file extension) -ps, --print-special [false ] print special tokens -pc, --print-colors [false ] print colors -pp, --print-progress [false ] print progress -nt, --no-timestamps [false ] do not print timestamps -l LANG, --language LANG [en ] spoken language ('auto' for auto-detect) -dl, --detect-language [false ] exit after automatically detecting language --prompt PROMPT [ ] initial prompt -m FNAME, --model FNAME [models/ggml-base.en.bin] model path -f FNAME, --file FNAME [ ] input WAV file path -oved D, --ov-e-device DNAME [CPU ] the OpenVINO device used for encode inference -ls, --log-score [false ] log best decoder scores of tokens -ng, --no-gpu [false ] disable GPU
Executing (default): SELECT name FROM sqlite_master WHERE type='table' AND name='SequelizeMeta';
Executing (default): PRAGMA INDEX_LIST(SequelizeMeta
)
Executing (default): PRAGMA INDEX_INFO(sqlite_autoindex_SequelizeMeta_1
)
Executing (default): SELECT name
FROM SequelizeMeta
AS SequelizeMeta
ORDER BY SequelizeMeta
.name
ASC;
Executing (default): PRAGMA foreign_keys = false;
Executing (default): SELECT name FROM sqlite_master WHERE type='table' AND name='conversations';
Executing (default): PRAGMA INDEX_LIST(conversations
)
Executing (default): PRAGMA INDEX_INFO(sqlite_autoindex_conversations_1
)
Executing (default): SELECT name FROM sqlite_master WHERE type='table' AND name='messages';
Executing (default): PRAGMA INDEX_LIST(messages
)
Executing (default): PRAGMA INDEX_INFO(sqlite_autoindex_messages_1
)
Executing (default): SELECT name FROM sqlite_master WHERE type='table' AND name='speeches';
Executing (default): PRAGMA INDEX_LIST(speeches
)
Executing (default): PRAGMA INDEX_INFO(sqlite_autoindex_speeches_1
)
Executing (default): SELECT name FROM sqlite_master WHERE type='table' AND name='audios';
Executing (default): PRAGMA INDEX_LIST(audios
)
Executing (default): PRAGMA INDEX_INFO(sqlite_autoindex_audios_1
)
Executing (default): PRAGMA INDEX_INFO(sqlite_autoindex_audios_2
)
Executing (default): SELECT name FROM sqlite_master WHERE type='table' AND name='cache_objects';
Executing (default): PRAGMA INDEX_LIST(cache_objects
)
Executing (default): PRAGMA INDEX_INFO(sqlite_autoindex_cache_objects_1
)
Executing (default): SELECT name FROM sqlite_master WHERE type='table' AND name='pronunciation_assessments';
Executing (default): PRAGMA INDEX_LIST(pronunciation_assessments
)
Executing (default): PRAGMA INDEX_INFO(sqlite_autoindex_pronunciation_assessments_1
)
Executing (default): SELECT name FROM sqlite_master WHERE type='table' AND name='recordings';
Executing (default): PRAGMA INDEX_LIST(recordings
)
Executing (default): PRAGMA INDEX_INFO(sqlite_autoindex_recordings_1
)
Executing (default): SELECT name FROM sqlite_master WHERE type='table' AND name='transcriptions';
Executing (default): PRAGMA INDEX_LIST(transcriptions
)
Executing (default): PRAGMA INDEX_INFO(sqlite_autoindex_transcriptions_1
)
Executing (default): SELECT name FROM sqlite_master WHERE type='table' AND name='videos';
Executing (default): PRAGMA INDEX_LIST(videos
)
Executing (default): PRAGMA INDEX_INFO(sqlite_autoindex_videos_1
)
Executing (default): PRAGMA INDEX_INFO(sqlite_autoindex_videos_2
)
Executing (default): SELECT name FROM sqlite_master WHERE type='table' AND name='SequelizeMeta';
Executing (default): PRAGMA INDEX_LIST(SequelizeMeta
)
Executing (default): PRAGMA INDEX_INFO(sqlite_autoindex_SequelizeMeta_1
)
Executing (default): SELECT 1+1 AS result
Executing (default): VACUUM
Executing (default): SELECT id
, target_id
AS targetId
, target_type
AS targetType
, target_md5
AS targetMd5
, state
, engine
, model
, result
, synced_at
AS syncedAt
, created_at
AS createdAt
, updated_at
AS updatedAt
FROM transcriptions
AS Transcription
WHERE Transcription
.state
= 'processing';
Executing (default): SELECT Audio
.id
, Audio
.source
, Audio
.md5
, Audio
.name
, Audio
.description
, Audio
.metadata
, Audio
.cover_url
AS coverUrl
, Audio
.recordings_count
AS recordingsCount
, Audio
.recordings_duration
AS recordingsDuration
, Audio
.synced_at
AS syncedAt
, Audio
.uploaded_at
AS uploadedAt
, Audio
.created_at
AS createdAt
, Audio
.updated_at
AS updatedAt
, transcription
.id
AS transcription.id
, transcription
.target_id
AS transcription.targetId
, transcription
.target_type
AS transcription.targetType
, transcription
.target_md5
AS transcription.targetMd5
, transcription
.state
AS transcription.state
, transcription
.engine
AS transcription.engine
, transcription
.model
AS transcription.model
, transcription
.result
AS transcription.result
, transcription
.synced_at
AS transcription.syncedAt
, transcription
.created_at
AS transcription.createdAt
, transcription
.updated_at
AS transcription.updatedAt
FROM audios
AS Audio
LEFT OUTER JOIN transcriptions
AS transcription
ON Audio
.id
= transcription
.target_id
AND (transcription
.target_type
= 'Audio' AND transcription
.target_type
= 'Audio') ORDER BY updatedAt
DESC LIMIT 10;
Executing (default): SELECT Video
.id
, Video
.source
, Video
.md5
, Video
.name
, Video
.description
, Video
.metadata
, Video
.cover_url
AS coverUrl
, Video
.recordings_count
AS recordingsCount
, Video
.recordings_duration
AS recordingsDuration
, Video
.synced_at
AS syncedAt
, Video
.uploaded_at
AS uploadedAt
, Video
.created_at
AS createdAt
, Video
.updated_at
AS updatedAt
, transcription
.id
AS transcription.id
, transcription
.target_id
AS transcription.targetId
, transcription
.target_type
AS transcription.targetType
, transcription
.target_md5
AS transcription.targetMd5
, transcription
.state
AS transcription.state
, transcription
.engine
AS transcription.engine
, transcription
.model
AS transcription.model
, transcription
.result
AS transcription.result
, transcription
.synced_at
AS transcription.syncedAt
, transcription
.created_at
AS transcription.createdAt
, transcription
.updated_at
AS transcription.updatedAt
FROM videos
AS Video
LEFT OUTER JOIN transcriptions
AS transcription
ON Video
.id
= transcription
.target_id
AND (transcription
.target_type
= 'Video' AND transcription
.target_type
= 'Video') ORDER BY updatedAt
DESC LIMIT 10;
Executing (default): SELECT id
, key
, value
, ttl
, created_at
AS createdAt
, updated_at
AS updatedAt
FROM cache_objects
AS CacheObject
WHERE CacheObject
.key
= 'audible-books' LIMIT 1;
Executing (default): SELECT id
, key
, value
, ttl
, created_at
AS createdAt
, updated_at
AS updatedAt
FROM cache_objects
AS CacheObject
WHERE CacheObject
.key
= 'ted-talks' LIMIT 1;
Executing (default): SELECT id
, key
, value
, ttl
, created_at
AS createdAt
, updated_at
AS updatedAt
FROM cache_objects
AS CacheObject
WHERE CacheObject
.key
= 'ted-ideas' LIMIT 1;
Executing (default): DELETE FROM cache_objects
WHERE id
= '2a18301f-2dfd-47b1-924e-942284458868'
Executing (default): DELETE FROM cache_objects
WHERE id
= '0b1eed4d-8594-409c-944d-f36052ccaade'
Executing (default): DELETE FROM cache_objects
WHERE id
= '54932a9f-00c7-41bd-992c-0975d1f291e9'
08:58:33.296 (providers/audible-provider) › Scraping https://www.audible.com/adblbestsellers?searchCategory=&page=1&pageSize=20
08:58:33.299 (providers/ted-provider) › started scraping https://ted.com/talks
08:58:33.301 (providers/ted-provider) › started scraping https://ideas.ted.com
08:58:34.486 (providers/ted-provider) › finished scraping https://ideas.ted.com
Executing (default): SELECT id
, key
, value
, ttl
, created_at
AS createdAt
, updated_at
AS updatedAt
FROM cache_objects
AS CacheObject
WHERE CacheObject
.key
= 'ted-ideas' LIMIT 1;
Executing (default): INSERT INTO cache_objects
(id
,key
,value
,ttl
,created_at
,updated_at
) VALUES ($1,$2,$3,$4,$5,$6);
08:58:34.571 (providers/ted-provider) › finished scraping https://ted.com/talks
Executing (default): SELECT id
, key
, value
, ttl
, created_at
AS createdAt
, updated_at
AS updatedAt
FROM cache_objects
AS CacheObject
WHERE CacheObject
.key
= 'ted-talks' LIMIT 1;
Executing (default): INSERT INTO cache_objects
(id
,key
,value
,ttl
,created_at
,updated_at
) VALUES ($1,$2,$3,$4,$5,$6);
Executing (default): SELECT id
, key
, value
, ttl
, created_at
AS createdAt
, updated_at
AS updatedAt
FROM cache_objects
AS CacheObject
WHERE CacheObject
.key
= 'audible-books' LIMIT 1;
Executing (default): INSERT INTO cache_objects
(id
,key
,value
,ttl
,created_at
,updated_at
) VALUES ($1,$2,$3,$4,$5,$6);
Executing (default): SELECT id
, source
, md5
, name
, description
, metadata
, cover_url
AS coverUrl
, recordings_count
AS recordingsCount
, recordings_duration
AS recordingsDuration
, synced_at
AS syncedAt
, uploaded_at
AS uploadedAt
, created_at
AS createdAt
, updated_at
AS updatedAt
FROM audios
AS Audio
WHERE Audio
.id
= '8350884b-aa4a-527a-b85b-76109f8deffb';
Executing (default): SELECT Recording
.id
, Recording
.target_id
AS targetId
, Recording
.target_type
AS targetType
, Recording
.md5
, Recording
.filename
, Recording
.reference_id
AS referenceId
, Recording
.reference_text
AS referenceText
, Recording
.duration
, Recording
.synced_at
AS syncedAt
, Recording
.uploaded_at
AS uploadedAt
, Recording
.created_at
AS createdAt
, Recording
.updated_at
AS updatedAt
, pronunciationAssessment
.id
AS pronunciationAssessment.id
, pronunciationAssessment
.target_id
AS pronunciationAssessment.targetId
, pronunciationAssessment
.target_type
AS pronunciationAssessment.targetType
, pronunciationAssessment
.reference_text
AS pronunciationAssessment.referenceText
, pronunciationAssessment
.accuracy_score
AS pronunciationAssessment.accuracyScore
, pronunciationAssessment
.completeness_score
AS pronunciationAssessment.completenessScore
, pronunciationAssessment
.fluency_score
AS pronunciationAssessment.fluencyScore
, pronunciationAssessment
.prosody_score
AS pronunciationAssessment.prosodyScore
, pronunciationAssessment
.pronunciation_score
AS pronunciationAssessment.pronunciationScore
, pronunciationAssessment
.grammar_score
AS pronunciationAssessment.grammarScore
, pronunciationAssessment
.vocabulary_score
AS pronunciationAssessment.vocabularyScore
, pronunciationAssessment
.topic_score
AS pronunciationAssessment.topicScore
, pronunciationAssessment
.result
AS pronunciationAssessment.result
, pronunciationAssessment
.synced_at
AS pronunciationAssessment.syncedAt
, pronunciationAssessment
.created_at
AS pronunciationAssessment.createdAt
, pronunciationAssessment
.updated_at
AS pronunciationAssessment.updatedAt
FROM recordings
AS Recording
LEFT OUTER JOIN pronunciation_assessments
AS pronunciationAssessment
ON Recording
.id
= pronunciationAssessment
.target_id
WHERE Recording
.target_id
= '8350884b-aa4a-527a-b85b-76109f8deffb' AND Recording
.target_type
= 'Audio' AND Recording
.reference_id
= 0 ORDER BY createdAt
DESC LIMIT 0, 10;
Executing (default): SELECT target_id
AS targetId
, target_type
AS targetType
, reference_id
AS referenceId
, reference_text
AS referenceText
, COUNT(reference_id
) AS count
, SUM(duration
) AS duration
FROM recordings
AS Recording
WHERE Recording
.target_id
= '8350884b-aa4a-527a-b85b-76109f8deffb' AND Recording
.target_type
= 'Audio' GROUP BY referenceId
ORDER BY referenceId
ASC;
Executing (default): SELECT id
, source
, md5
, name
, description
, metadata
, cover_url
AS coverUrl
, recordings_count
AS recordingsCount
, recordings_duration
AS recordingsDuration
, synced_at
AS syncedAt
, uploaded_at
AS uploadedAt
, created_at
AS createdAt
, updated_at
AS updatedAt
FROM audios
AS Audio
WHERE Audio
.id
= '8350884b-aa4a-527a-b85b-76109f8deffb';
Executing (21e79ebc-afd8-46a2-b33a-e68526722628): BEGIN DEFERRED TRANSACTION;
Executing (21e79ebc-afd8-46a2-b33a-e68526722628): SELECT id
, target_id
AS targetId
, target_type
AS targetType
, target_md5
AS targetMd5
, state
, engine
, model
, result
, synced_at
AS syncedAt
, created_at
AS createdAt
, updated_at
AS updatedAt
FROM transcriptions
AS Transcription
WHERE Transcription
.target_id
= '8350884b-aa4a-527a-b85b-76109f8deffb' AND Transcription
.target_type
= 'Audio' LIMIT 1;
Executing (21e79ebc-afd8-46a2-b33a-e68526722628): COMMIT;`
是从 github 拉下来的最新版。录音权限应该是正常的。 我下载编译好的版本,Mac 总是提示“ enjoy” is damaged and can’t be opened. You should move it to the Trash.”
你试一下自己编译。
yarn make:enjoy
编译完成后,在 enjoy/out/
文件夹下面找到编译好的文件打开试试看
多谢导演。 我自己编译的版本,可以打开,录音也没有问题。
不知道为什么 yarn start:enjoy 打开之后就不能录音。
在很早之前的版本是没有问题的。 自从某次升级之后(记不清是哪次升级了),录音之后就看不到自己的录音文件了。就像完全没有录音一样。 自己试了把软件删掉重装也没有用。
就如下面这个截图,录音之后,下面仍然是空白。